Session ID Fehlermeldung

A5 Infoschlampe

Erfahrenes Mitglied
Hi,

woran liegt es denn dass diese Fehlmeldung erscheint wenn ich die index.php aufrufe auf dem localhost?

das mit den session hab ich noch nicht ganz so gecheckt, hab zwar den vorherigen beitrag (paar threads weiter unten) gelesen, aber die hilfe auf php.net ist doch relativ unverständlich formuliert,also jedenfalls nicht anfängerfreundlich! vielleicht kann ja jemand noch in anfängrich was zu den session,session start und session register sagen :)

thx,.. achso bevor ichs vergesse, hier die eigentlich fehlermeldung:

Warning: Cannot send session cookie - headers already sent by (output started at c:\programme\apache group\apache\htdocs\discoguide24.de\first\index.php4:4) in c:\programme\apache group\apache\htdocs\discoguide24.de\first\index.php4 on line 12

Warning: Cannot send session cache limiter - headers already sent (output started at c:\programme\apache group\apache\htdocs\discoguide24.de\first\index.php4:4) in c:\programme\apache group\apache\htdocs\discoguide24.de\first\index.php4 on line 12

Warning: open(C:\PHP\sessiondata\sess_ac4f1f0d73e71a93a2043150fd52d6d8, O_RDWR) failed: m (2) in c:\programme\apache group\apache\htdocs\discoguide24.de\first\index.php4 on line 12
 
Du musst cookies setzen / header senden bevor du irgendetwas anderes ausgibst.

dein code muss also etwa so aussehen...
PHP:
1. <?php
2. setcookie(...wasauchimmer...);
3. ?>
4. <html>
5. <head>
6. ... undsoweiter ...

In anderen Worten, wenn du ein echo, oder eine andere ausgabe (wie puren HTML code) vor dem cookie setzn hast, wirst du imer einen Fehler erhalten.

Mitten in der Datei einen cookie setzen ist nur mit Javascript möglich.

Happy Coding,
ya Storm
 
Hups, war von der Fehlermeldung so fasziniert, dass ich die eigentliche Frage übersehen habe...

Mit sessions (Die Cookies setzen, um die ID zu speichern) verhält es sich ganz genauso.

Also einfach als erstes die session starten und alles sollte klappen.

Greetz,
ya Storm
 
session_register:
Registriert eine Session Variable und legt automatisch eine Session an wenn es keine gibt.

session_start:
Started die Session!

session_unregister:
macht die registrierung einer session Var ungueltig. Rueckgabe bei Erfolg True

session_id:
liefert die id der session

session_destroy
loescht alle Daten jedoch nicht die Session Datei

dann gibts noch

session_encode : Codiert
session_decode : decodiert

session_module_name : liefert name des session modul (normal files)
session_name : liefert den namen der aktuellen session
session_save_path: liefert den pfad der akt. sessiondatei
session_set_savehandler:zum erstellen von Funktionen um z.b. Sessiondatein automatisch in der mysql db zu speichern usw.
session_unset: aehnlich session_destroy jedoch wird die Session nicht komplett beendet sondern aufrecht erhalten nur die vars derigistriert.

so wenn ich nicht was vergessen hab sind das alle session funktionen :)
 
Besserwisser :p

Wenn Du Output buffering einschaltest, werden die Daten erst nach dem flush übermittelt (also wenn das output buffering wieder beendet wird).

Da Header und Cookie Daten aber kein eigentlicher "Output" sind, werden diese Funktionen direkt an den Browser geschickt. Im Endeffekt sendest Du den Cookie also doch vor allem anderen.

Funktionieren tut's mit beiden methoden (output buffer, oder cookie vor allem anderen) allerdings bekommst du die fehlermeldungen beim buffering nicht in den laufenden code geschrieben, sondern als einzige ausgabe. Finde ich persönlich nicht so übersichtlich.
Aber wie das beim programmieren immer ist, sollte jeder seinen eigenen lieblingsweg finden.

Happy codin',
ya Storm
 

Neue Beiträge

Zurück