Andreas: Session

Hallo,
ich schaffe es einfach nicht eine Variable in einer Session zu speichern und gleichzietig diese wieder zu verwenden.
Den Anfang des Script habe ich mal herauskopiert.

Das Problem ist wenn ich session_start() oben wieder einfüge komme ich immer wieder auf die Passwort Abfrage.

Ich hoffe ihr könnt mir helfen damit ich endlich verstehe wie man mit Session arbeitet.

Die Variable password kommt von einem Eingabefeld.

<?
include("server.php");

if(isset($pp_logout))
{
session_destroy();
echo "gelöscht";
}

openmysql();
$sql="select * from admin";
$result=mysql_query($sql);
$zeile = mysql_fetch_array($result);

$db_pass = "$zeile[pass]";
mysql_close ($db);

if($db_pass == $password)
{
session_start();
session_register(password);
echo "registriert";

openmysql();

hier dann der rest vom Script.....

MfG. Andreas

  1. Hallo,

    Wenn du mit Sessions arbeitest, dann solltest du folgenden Aufbau unbedingt beachten.

    Als allererstes muss das session_start() kommen.
    Dann kommen die Session Variablen( session_register() ).
    und dann kannst du erst die Session wieder löschen ( session_destroy() ).
    Jedoch solltest du vorher session_unset() ausführen.

    Nach dem session_register('password') musst du natürlich etwas in die variable reinschreiben wie $_SESSION['password']=$db_pass;

    Hoffe ich konnte Dir weiterhelfen.

    1. Hallo,
      danke für die schnelle Antwort nun funktioniert es!

      MfG. Andreas

    2. Hallo,

      das ist aber nicht mehr ganz so aktuell...

      Du solltest session_register() und session_unregister() usw. gar nicht benutzen, sondern nur noch das Superglobale Array

      $_SESSION[]

      also
      -----------------------
      <?php  #### hiervor steht absolut nix, auch keine Leerzeile ! ####

      session_start();

      if (strlen(SID)> 0)
      {
        $_SESSION["username"] = $_POST["username"]; ### kommt aus dem Form
        echo "Session wurde neu gestartet";
      }
      else
      {
        echo "Session mit User {$_SESSION["username"]} wird fortgesetzt.";
      }

      ....

      ?>
      -------------------

      Das Array $_SESSION[] wird am Ende des Scripts oder bei plötzlichem Abbruch oder bei gewolltem Abbruch (exit) automatisch in der Sessiondatei  /tmp/sess_1234567890ABCDEFG1234567890ABCDEFG

      gespeichert.

      Hinter sess_ steht die Sessionnummer, also nicht DIESE Zahlenfolge ;-)

      Ich würde den Pfad für die Sessiondateien verlegen in:

      /tmp/session/...

      aber nicht tiefer, sonst funktioniert der Garbage Collector nicht mehr.

      Grüße

      Tom