Variablen in Cookie speichern PHP 

Status
Für weitere Antworten geschlossen.

heilmefe

Registered +
Registriert
Nov. 2006
Beiträge
134
Auf meiner Seite hab ich ein Login Script das die Variablen in der Session speichert. Das funktioniert ganz gut aber ich brauche eine Funktion mit der man auch nach dem Browser neustart eingeloggt bleibt. Das heisst Cookie.

Kann mir jemand sagen wie ich Variablen in nem neuen Cookie speichern kann oder sogar gleich die ganze Session?

MfG Heilmefe
 
Mithilfe von
PHP:
setcookie("MeinVariablenName", "Wert")
kannst du Cookies setzen, in der Variable
PHP:
$_COOKIE['MeinVariablenName']
ist der Wert dieser Variable in einem der übergebenen Cookies gespeichert und du kannst ihn auslesen.

Näheres dazu findest du hier (Allg. über Cookies):
#php/QuakeNet Tutorial - Cookies

Hier (Allg. Dok. über Cookies):
PHP: Cookies - Manual

Hier (Dok der Setcookie Funktion):
PHP: setcookie - Manual

Hier (Cookies in Verbindung mit Sessions):
#php/QuakeNet Tutorial - Sessions
 
Mithilfe von
PHP:
setcookie("MeinVariablenName", "Wert")
kannst du Cookies setzen, in der Variable
PHP:
$_COOKIE['MeinVariablenName']
ist der Wert dieser Variable in einem der übergebenen Cookies gespeichert und du kannst ihn auslesen.

Näheres dazu findest du hier (Allg. über Cookies):
#php/QuakeNet Tutorial - Cookies

Hier (Allg. Dok. über Cookies):
PHP: Cookies - Manual

Hier (Dok der Setcookie Funktion):
PHP: setcookie - Manual

Hier (Cookies in Verbindung mit Sessions):
#php/QuakeNet Tutorial - Sessions
Da kommt immer
Warning: Cannot add header information - headers already sent by (output started at /mnt/web1/42/16/5156016/htdocs/index.php:11) in /mnt/web1/42/16/5156016/htdocs/dateien/Benutzer.php on line 211

Warning: Cannot add header information - headers already sent by (output started at /mnt/web1/42/16/5156016/htdocs/index.php:11) in /mnt/web1/42/16/5156016/htdocs/dateien/Benutzer.php on line 212

Benutzer.php ist die Datei mit den Login Scripten und index ist halt der Index da wird eine Session gestartet (session_start()) macht das was?
In linie 211 bzw 212 von Benutzer.php steht
PHP:
setcookie("username", $username);
setcookie("rang",$rang);
 
Mussu Augen aufmachen :)

Da steht "headers already sent" in der Fehlermeldung.

Im 2. Absatz, 1. Zeile des 1. Links steht:
Die Anfrage, dass der User einen Cookie setzten soll, kann man nur im Header machen. Im eigentlichen Content sind ja die HTML-Elemente, da hat ein Cookie nichts zu suchen.

M.a.W:
auf deiner Seite darf nicht ein Fünkchen HTML vorkommen (Dazu gehört auch z.B. ein echo in PHP) bevor die Cookies gesetzt wurden. Wie hier im FSB gibt es meißtens Formulare die Benutzerdaten auslesen, durch das klicken auf "login" wird ein PHP Script gestartet, dass die eingegebenen Daten überprüft, dann (wenn gewollt) ein Cookie gesetzt und erst dann kommt der HTML Header (Der meißt mit dem DOCTYPE beginnt)

Ansonsten such mal nach der Fehlermeldung in Google:
"headers already sent" cookie - Google-Suche

Oder du guckst hier:
PHP: PHP benutzen - Manual
 
oder am anfang einfach einfügen:
ob_start();

und am ende:
ob_end_flush();

Das sollte normalerweise die Header-Fehlermeldung verhindern...
 
Jetzt speichert er die Cookies aber beim nächsten Browserstart sind se wieder weg.
 
Das liegt daran, weil du dir nicht die TUTs durchgelesen hast :P

Die Syntax heißt ja
Code:
 ( string $name [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly]]]]]] )
Aha, wir sehen ein "expire", was bei dir auf 0 gesetzt wurde, da nicht angegeben.
Du musst dort ein Timestamp platzieren also zum Beispiel time()+60 (Hält ne Minute)
Jetzt kannst du dir halt das Leben einfach machen und zum Beispiel
setcookie('name','wert',time()+(60*60*24)); benutzen. Das wäre dann ein Tag.

Gruß
Broken Sword
 
keine reaktion des themenstarters!? :mad:

@threadstarters: postet doch bitte in zukunft, wenn ein thema geschlossen werden kann! THX!

~ C L O S E D ~

ceeyaa.mex
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten