PHPSESSID-Prob

spaudanjo

Mitglied
Hi!

Ich hab nen kleines Problem mit freidenker.net, bei manchen Clients gibt er folgende Fehlermeldung aus:

----------------------------------------------------------------------------------------------------------------------------------------------------

Warning: session_start(): The session id contains invalid characters, valid
characters are only a-z, A-Z and 0-9 in /home/htdocs/web22/html/index.php on
line 5

Warning: session_start(): Cannot send session cookie - headers already sent by
(output started at /home/htdocs/web22/html/index.php:5) in /home/htdocs/web22/
html/index.php on line 5

Warning: session_start(): Cannot send session cache limiter - headers already
sent (output started at /home/htdocs/web22/html/index.php:5) in /home/htdocs/
web22/html/index.php on line 5

Warning: Cannot modify header information - headers already sent by (output
started at /home/htdocs/web22/html/index.php:5) in /home/htdocs/web22/html/
index.php on line 7

-------------------------------------------------------------------------------------------------------------------------------------------------


Ich habe schon in mehreren Foren nach dem Prob gesucht, bin allerdings immer auf die gleichen Probleme gestoßen ("man darf keine dateien vor session_start an den client schicken, ect), aber nicht auf meins.
Und wenn ich in Google die Fehlermeldung eingebe, bekomme ich natürlich keine Hilfeseiten, sondern nur Seiten, die das gleiche Prob haben wie ich.

Der Fehler muss wohl irgendwas mit der PHPSESSION an sich zu tun haben (invalid characters !?).


Ich hoffe, mir kann jemand helfen.

MfG, spaudanjo.
 
Als aller erstes solltest du
PHP:
ob_start();
stehen haben und dann den restlichen Code!

und ganz am Ende
PHP:
ob_end_flush();
Das sollte dein Prob. lösen!
 
Hatte das Prob auch schon öfters.
Bevor du irgendetwas schreibst, solltest du session_start() benutzen.
Es darf rein gar nichts vorher stehen (außer "<?php")
 
Langi hat gesagt.:
Hatte das Prob auch schon öfters.
Bevor du irgendetwas schreibst, solltest du session_start() benutzen.
Es darf rein gar nichts vorher stehen (außer "<?php")
Natürlich darf zwischen <?php und session_start() etwas stehen. Es darf nur keine Ausgabe erfolgen.
 
thx erstmal für die heftig schnellen antworten.

code kommt:

PHP:
<?

include ( "lib/include/MysqlConnect.inc.php" ); 

session_id(); 


setcookie ( "PHPSESSID", $PHPSESSID, time()+60*60*24*30, "/", "freidenker.net", 0 ); 

...

?>

die PHPSESSID ist bei manchen clients leider einfach leer, und ich weiß nicht worans liegt.

mfg, spaudanjo.
 
Warum so umständlich?
Die Session wird mit [phpf]session_start[/phpf] gestartet oder wieder aufgenommen. Wenn Du eine Eigene Session-ID vergeben willst, verwendest Du vor session_start die Funktion [phpf]session_id[/phpf], aber bitte gemäß Referenz. Und willst Du die Cookie-Parameter der Session ändern, nimmst Du einfach [phpf]session_set_cookie_params[/phpf].

Sven
 
Zurück