Session geht nicht!
Samuel Vogel
- php
0 Tom
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);
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!
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