Autor Zpráva
Jirka ze Slezska
Profil *
Zdravím, implementoval jsem tento Secure login do CMS. Všechno funguje skvěle do té doby, než přejdu na nějakou stránku, kde mám již implementován nějaký kod k editaci a spojením s databází. Pokaždé se to stává se stránkou pro úpravu článků. Přihlásím se -> kliknu na editaci článku -> kliknu na něco jinýho a už jsem venku ze systému (loggout). Kód stránky s editací článku níže:
<?php
  include "includes/db_connect.php";
  include "includes/functions.php";
  sec_session_start();
  $page = $_SERVER['REQUEST_URI'];
  if(login_check($mysqli) == true) {
    include "includes/admin-header.php";
    $dotaz = new mysqli(HOST, USER, PASSWORD, DATABASE);
    if(empty($_GET['id'])){
      $stmt_articles = $dotaz->prepare("SELECT id, title, text FROM articles ORDER BY id DESC LIMIT 1");
      $stmt_articles->execute();
      $stmt_articles->store_result();
      $stmt_articles->bind_result($id_article, $title, $text);
      $stmt_articles->fetch();
    } else {
      $id=$_GET['id'];
      if($stmt_articles = $dotaz->prepare("SELECT id, title, text FROM articles WHERE id = ? LIMIT 1")) { 
      $stmt_articles->bind_param('i', $id);
      $stmt_articles->execute();
      $stmt_articles->store_result();
      $stmt_articles->bind_result($id_article, $title, $text);
      $stmt_articles->fetch();
      }
    } 
?>
  <div id='editation'>
    <div class='edit-title'>
      EDITACE: <a href="#" class='active'>ČLÁNKY</a> / <a href="#">NASTAVENÍ</a> <a href="#">NÁHLED</a>
    </div>
    <div class='edit-submenu'>
      <?php
        $dotaz2 = new mysqli(HOST, USER, PASSWORD, DATABASE);
        if($stmt_vypis = $dotaz2->prepare("SELECT id, title, text FROM articles ORDER BY id DESC LIMIT 0,8")) { 
          //do prepare se imho pouzije limit ?,? a pak se to bude bindovat pokazde jinymi cisly pro scrollovani?
          //$stmt_articles->bind_param('i', $id);
          $stmt_vypis->execute();
          $stmt_vypis->store_result();
          $stmt_vypis->bind_result($id_a, $titulek, $s_text);
          while($stmt_vypis->fetch()){
            echo "<a class='item' href=\"clanky.php?id=".$id_a."\">
                    <img src=\"http://25.media.tumblr.com/avatar_6feb8634e3d0_128.png\"/>
                    <p class='item-title'>".substr($titulek, 0, 20)."</p>
                    <p class='item-author'>Admin</p>
                    <div>
                      <p class='item-teaser'>".substr(strip_tags($s_text), 0, 20)."</p>
                      <p class='item-time'>Před 2 dny</p>
                    </div>
                </a>";            
          }
        }
      ?>
    </div>
    <script type="text/javascript">
      $(document).ready(function(){
        $(".edit-submenu").niceScroll({cursorcolor:"rgba(0, 0, 0, 0.6)"});
      });
    </script>
    <form action="clanky.php" method="post">
      <input type="text" size="80" name="title" value="<?php echo "$title"; ?>" />
      <textarea name="text" cols="100" rows="30"><?php echo "$text"; ?></textarea>
    </form>
  </div>
<?php
    include "includes/admin-footer.php";
  } else {
    if(!headers_sent()){
      header('Location: ./index.php?error=1');
    }
  }
?>
Tori
Profil
Startujete na všech stránkách session? Není to odlišností funkce sec_session_start od standardní session_start - např. to přenastavení session.name?
Jirka ze Slezska
Profil *
Já nevím, implementoval jsem to tak, jak je popsáno. V komentářích nikdo nepíše, že by s tím měl problém... Session na každé stránce startuji.
Tori
Profil
Jirka ze Slezska:
Session na každé stránce startuji.
Čím, session_start, nebo tou sec_session_start? edit: Aha, už to vidím, že všude používají tu svou funkci, takže zřejmě i vy. Tím to tedy nebude.
Jirka ze Slezska
Profil *
Jo, přesně tak tu funkci používám i já ... nemůže to dělat nějak to mysqli stmt? protože na stránkách, kde nic ještě nemám, mě to z cms nevyhazuje ...
peta
Profil
Nedavno jsem resil odlogovani session (cookies) v IE stranky ve frame. IE takovou stranku nepovazoval za dostatecne duveryhodnou, pokud mu to tam extra neposles pomoci header.
header('P3P: CP="CAO PSA OUR"');    // aby session fungovala spravne v iframe v IE
session_start();

Zkus ten kod ulozit nekam bokem a radek po radku to kopiruj do ciste stranky a testuj. Zjistis, kterym radkem problem vznika.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: