Funktionsweise von Sessions

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Original geschrieben von christian000

    also speichere ich meine Sessionid in der DB und überprüfe ob diese noch gültig ist, und sollte hierbei noch einen zeit"check" miteinbauen.
    warum muss man die session-id in db überprüfen?
    session ist ausgedacht um dir alles bequemer zu machen.
    PHP selbst übernimmt die session-verwaltung.
    Nutze das einfach.

    <<(Bietet hierbei PHP eine funktion um eine expired-time festzulegen ?)
    >>
    wenn du mit cookie-basierenden session arbeitest, dann einfach
    http://de2.php.net/manual/de/functio...kie-params.php

    wenn du dich doch entscheidest, deine session-daten in DB abzuspeichern,
    dann schau dir das an
    http://de2.php.net/manual/de/functio...ve-handler.php
    Slava
    bituniverse.com

    Kommentar


    • #17
      so also nun habe ich mich mal versucht mit den genialen sessions:

      rausgekommen ist :

      1) meine funktion zum checken ob der username/passwort stimmen
      PHP-Code:
      function checklogin($username,$passwort)
      {
          
      $passwort md5($passwort);
          
      $sql "SELECT * from user WHERE username='".$username."'";
          
      $result mysql_query($sql);
          
      $row mysql_fetch_array($result);
          if (
      $row['passwort'] == $passwort)    return TRUE;

      meine index.php

      PHP-Code:
      <?php
      session_start
      ();
      include (
      "inc/config.php");
      include (
      "theme/".$theme."/header.php");
      include (
      "theme/".$theme."/links.php");

      switch(
      $_GET['section'])
      {
      case 
      'news':     include("news.php"); break;
      case 
      'admin':    include("admin/admin.php"); break;
      default : include(
      "news.php");
      }

      include (
      "theme/".$theme."/footer.php");
      ?>
      und meine admin.php

      PHP-Code:
      <?php
      echo $_SESSION['username']    ;     
      if(
      checklogin($_POST['username'],$_POST['passwort']) OR isset($_SESSION['username']))
      {
          
      $_SESSION['username'] = $_POST['username'];
          echo 
      '<br><br><br><center><table width="500" align="center" border="0">
          <tr>
          <td align="center" colspan="5"><b>NEWS-VERWALTUNG</b></td>
          </tr>
          <tr>
          <td align="center"><a href="index.php?section=admin&action=news"><img src=images/icons/edit.png border="0"></a></td>
          <td align="center"><img src=images/icons/view.png border="0"></td>
          <td align="center"><img src=images/icons/delete.png border="0"></td>
          <td align="center"><img src=images/icons/config.png border="0"></td>
          </tr> 
          <tr>
          <td align="center">News<br>verwalten</td>
          <td align="center">Kommentare<br>verwalten</td>
          <td align="center">IP Bannen</td>
          <td align="center">Konfigurieren</td>
          </tr>
          </table></center>'
      ;
      }
      else
      {
          if(isset(
      $_POST['login'])) echo '<center><br><br><div class=fehlermeldung><b>Fehler:<br>Username oder Passwort falsch</b></div></center>';
          echo 
      '<center><br><br><br>
          <form action="index.php?section=admin" method="POST">
          <table width="200" align="center">
          <tr> 
          <td>Login:</td>
          <td><input type="text" name="username"></td>
          <tr>
          <tr>
          <td>Passwort:</td>
          <td><input type="password" name="passwort"></td>
          <tr>
          <tr>
          <td colspan="2" align="center"><input type="submit" name="login"></td>
          <tr>
          </table></form></center>
          '
      ;
      }
      ?>
      So,..
      nur wird meine $_SESSION - variable "nicht gespeichert" dh. rufe ich meine index.php?section=admin 2x hintereinander auf bin ich wieder beim login.

      Kann mir da mal wer nen denkanstoss geben ?
      danke

      Kommentar


      • #18
        Was ja auch vollkommen Vernünftig ist.

        Wenn du die Seite Reloadest werden die POST variablen vergessen.

        somit wird beim zweiten auruf
        PHP-Code:
        $_SESSION['username'] = $_POST['username']; 
        auf Leer gesetzt weil POST nichts mehr enthält.

        das ist das was ich jedenfalls ganz offensichtlich sehe ansonsten verschliesst sich mir der gesammte sinn.

        vieleicht hilft es dir wenn du vor
        PHP-Code:
        $_SESSION['username'] = $_POST['username']; 
        noch ein echo schreibst.
        PHP-Code:
        echo $_SESSION['username'] = $_POST['username']; 
        Bitte Beachten.
        Foren-Regeln
        Danke

        Kommentar


        • #19
          ahh stimmt.. danke !

          Kommentar


          • #20
            PHP-Code:
            if(isset($_POST['login'])) $_SESSION['username'] = $_POST['username']; 
            Prüfen ob das login formular abgesendet wurde,.. schwups und es funktioniert ;-)

            Kommentar

            Lädt...
            X