Session-Problem

Sebastian Wramba

Erfahrenes Mitglied
Hiho,

ich hab mal was mit Sessions versucht... so siehts aus:

PHP:
<?
session_start();
if(!$SID) {
$SID = session_id();
header("Location: index.php?SID=".$SID);
}
?>

(kann man das auch "besser" lösen?)
Nun mein Problem ist, das folgende Meldungen erscheinen:


Warning: open(/tmp\sess_40bc8a8bc5e287c1452030f237d18b56, O_RDWR) failed: m (2) in C:\apache\htdocs\5\index.php on line 2

Warning: Cannot add header information - headers already sent by (output started at C:\apache\htdocs\5\index.php:2) in C:\apache\htdocs\5\index.php on line 5

Warning: open(/tmp\sess_40bc8a8bc5e287c1452030f237d18b56, O_RDWR) failed: m (2) in Unknown on line 0

Warning: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0


ich denke, ich muss irgendwas in der php.ini bei dem session.save_path umstellen, nur wie muss ich den einstellen?
 
also zu problem Nr.1:
in der php.ini steht das:

session.save_path = c:/apache/tmp <---- dieser pfad

du musst hier einfach einen ordner auf deiner festplatte eingeben(der existiert!) in dem die sessions gespeichert werden.

zu problem Nr.2
du kannst den header nicht 2.mal senden(logisch =) also machst du einfach einen puffer:
<? ob_start(); ?>//am anfang des codes
//programmcode
<? ob_end_flush(); ?> // am ende des codes

(kann man das auch "besser" lösen?)
Ja kann man:
In der php.ini ist der standart wert -enable-tras-sid(oder so)
eingestellt, d.h das die SID immer entweder per cookie oder als url anhang dazugesetzt wird. Also brauchst du nur session_start(); in der index.php machen...

Noch fragen? :smoke:
 
jo vielen dank schonmal
also ist das praktisch schwachsinn die SID über die adresszeile weiterzugeben, wenn das cookie-setzen als standard in der php.ini eingestellt ist...
 
wenn du -enable-trans-sid eingestellt hast, und dann noch hinter jeden link nen <? echo $SID ?> machst: JA
ob du -enable-trans-sid an hast erfährst du mit phpinfo();
 
Zurück