Samuel Vogel: Session geht nicht!

Hallo,

Ich hab grad ein Problem mit den Sessions in einem Projekt von mir. Die Session_id wird richtig eiergegeben aber trotzdem sind die Session-Variablen nicht merh da. Die Session_id erstell ich mir selber aus microtime(), da PHP mich nicht mag (keine Session_ids mehr erstellt automatisch, aber in den anderen projekten die noch euf meinem Server liegen geht das erstellen trotzdem).
Hier mein Code:
login.php (wie der Name schon sagt - Die datei überprüft das pw und den namen):
      session_unset();
      session_destroy();
      session_start();

$microtime = microtime();
      $sid = md5($microtime);
      session_id($sid);

$expire = time()+60*60*24*14;
      setcookie("user_id", $_SESSION['user_id']);
      setcookie("passwd", $passwd);
      setcookie("sid", $sid);
      $_SESSION['user_id'] = $user_data['id'];

global.php (ist in jeder Seite includet):
ini_set("session.auto_start", 0);
ini_set("session.use_cookies", 1);
ini_set("session.use_only_cookies", 0);

Session initialisieren

if(!empty($_GET['sid'])) $sid = $_GET['sid'];
elseif(!empty($_COOKIE['sid'])) $sid = $_COOKIE['sid'];
if(!empty($sid)) {
  session_start();
  session_name("sid");
  $sid = "sid=".$sid;
}

Ich raff das ned! Warum wird die sid richtig übergeben aber die Vars nicht!

  1. Hello,

    Chaos!

    login.php (wie der Name schon sagt - Die datei überprüft das pw und den namen):
          session_unset();
          session_destroy();
          session_start();

    Eine Sessionvariablen (im RAM) können erst gelöscht werden (unset), wenn sie existieren. Sie existieren aber erst nach dem session_start(). Und die Sessiondatei kann nur dann gelöscht werden (destroy), wenn die namentlich benannt werden kann.

    Wenn Du alle Fehlermeldungen eingeschaltet hast, solltest Du eigentlich den Screen damit voll haben:

    Schreib Dir mal in jedes Script (zum Debuggen) an den Anfang:

    ini_set("track_errors","1");
    error_reporting(E_ALL);

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

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau