Hallo
Ich habe anhand des Buches "PHP 4 - Grundlagen und Profiwissen" Von J. Krause versucht, meine "eigene Session" zu erstellen. Ich habe den Code aus dem Beispiel im Buch übernommen und ihn auf mein Script angepasst. Doch irgendwie ist etwas faul. Nicht nur, dass die open-Funktion keine session_id findet, es wird auch folgendes angezeigt:
// ****************
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at [...]header/functions_session.php:21) in [...]header/functions_session.php on line 96
// ****************
In function_session.php befinden sich die Funktionen (hee) und folgendes:
// ****************
// Session setzten
session_module_name("user");
session_set_save_handler('ses_open', 'ses_close', 'ses_read', 'ses_write', 'ses_destroy', 'ses_gc');
session_name('SESSION');
// Datenbankverbindung
$conn=mysql_connect($mhost, $muser, $mpass);
mysql_select_db($mbase, $conn);
session_start();
$sid=session_id();
mysql_close($conn);
// ****************
in line 96 steht eben dieses session_start(); (siehe oben)
weiter oben steht die open-funktion (line 21 beinhaltet merkwürdigerweise meine test-anweisung: "echo $string" (siehe unten))
// ****************
function ses_open($sespath, $sesname) {
global $conn, $timer;
$fdb = new database;
$sid=session_id();
$string="select * from ".$fdb->tsession." where DID
='".$sid."'";
$rs=mysql_query($string, $conn);
if(mysql_num_rows($rs)==0) $string="insert into ".$fdb->tsession." set DID
='".$sid."' and Dtime
='".$timer."'";
else $string="update ".$fdb->tsession." set Dtime
='".$timer."' where DID
='".$sid."'";
echo $string;
return @mysql_query($string,$conn);
}
[...]
// ****************
Weiß jemand von euch, woran es liegen könnte, bzw. was ich falsch gemacht habe?
Vielen Dank und liebe grüße
Rüdiger