Kai Böhm: Session wird nicht richtig registriert.

Irgendwas funzt bei meinen Sessions nicht. Die Variablen $pass, $pass2, $user, $prename, $name bekomme ich über eine Änderungsformular. Damit diese Werte auf dem Formular dann zur Verfügung stehen, muss ich sie in die bestehende Session schreiben. Das funktioniert mit $name und $prename auch, aber die anderen Variablen übernimmt das Script nicht. In der Datenbank werden die Einträge aber trotzdem gemacht.

<?
 session_start();
 $pass = $_GET[pass];
 $pass2 = $_GET[pass2];
 if (($pass == $pass2) && ($pass != "")) {
  $user = $_GET["user"];
  $prename= $_GET["prename"];
  $name = $_GET["name"];
  session_unregister(pass);
  session_unregister(user);
  session_unregister(prename);
  session_unregister(name);
  session_register(pass);
  session_register(user);
  session_register(prename);
  session_register(name);

include ("include/db_connect.inc");
  $query = "UPDATE tfm_setup SET id='$_SESSION[id]',  email='$_GET[user]',  password='$_GET[pass]',  prename='$_GET[prename]',  name='$_GET[name]',  status='$_SESSION[status]' WHERE id='$_SESSION[id]'";
  $result = mysql_query($query, $dbh);

header('Location: http://'.getenv('HTTP_HOST').'/forge/setup/index.php?mode=3');

if (!($result)) {
   echo "Geht nicht.";
  }
 }
 else {
  echo "Das Passwort stimmt nicht überein, bitte noch mal versuchen.";
 }
?>

  1. Guten Tag,

    versuchs mal so:

    <?
    session_start();
    $pass = $_GET["pass"];
    $pass2 = $_GET["pass2"];

    if (($pass == $pass2) && ($pass != ""))
    {
      $user = $_GET["user"];
      $prename= $_GET["prename"];
      $name = $_GET["name"];

    $_SESSION["pass"]=$pass;
      $_SESSION["user"]=$user;);
      $_SESSION["prename"]=$prename;
      $_SESSION["name"]=$name;

    include ("include/db_connect.inc");
      $query = "UPDATE tfm_setup SET id='{$_SESSION["id"]}',  email='{$_GET["user"]}',    password='{$_GET["pass"]}',  prename='{$_GET["prename"]}',  name='{$_GET["name"]}',  status='{$_SESSION["status"]}' WHERE id='{$_SESSION["id"]}'";

    $result = mysql_query($query, $dbh);

    header('Location: http://'.getenv('HTTP_HOST').'/forge/setup/index.php?mode=3');

    if (!($result))
      {
        echo "Geht nicht.";
      }
    }
    else
    {
      echo "Das Passwort stimmt nicht überein, bitte noch mal versuchen.";
    }
    ?>

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    1. Hallo Tom,

      danke für die Antwort. So geht's. :-) Wäre ich nicht drauf gekommen, dass es so einfach geht.

      Viele Grüße

      Kai