Cookies

Arantis

Grünschnabel
Hallo


ich hab da mal ne Frage... undzwar habe ich meine seite über tabellen aufgebaut und mit includes und switch auswahl...
Ich wollte jetzt wohl gerne cookies einbauen da ich momentan nur mit sessions arbeite..
meine frage nun wie und wo baue ich denn am besten auf meiner seite cookies ein...
ich habe sie im loginbereich eingebaut aber das geht nicht weil er dann meckert das der header schon gesendet wurde... dann habe ich den cookie in der index nach ganz oben gesetzt. was aber auch nicht geht denn er bekommt keine variablenwerte in den cookie.. bzw wenn ich auf logout gehe löscht er den cookie wieder... im logout habe ich
folgenden code stehen

ob_start ();
session_start ();
session_unset ();
session_destroy ();
ob_end_flush ();

kann da jemand helfen?
 
du darfst ein cookie nur dann setzen, wenn das script noch keine ausgaben vorher gemacht hat. deshalb hast du den "header allready set" bekommen.

du musst also darauf achten, dass du den cookie dann setzt, wenn deine variablen schon gefüllt, aber noch keine ausgabe geschehen ist.

das selbe gilt auch, wenn du dateien includest, die ausgaben machen können.

zum löschen:
ich glaube, man kann normale cookies nicht löschen (bin mir allerdings nicht ganz sicher).
du kannst aber nach dem logout die werte des cookies mit NULL überschreiben. demnach sind sie genauso wertlos und werden eh gelöscht, wenn der user seinen browser schliesst - wenn du keine lebensdauer angegeben hast.

mfg
sven
 
Das ist kein Problem

1.
ob_start (); // setzen
session_start (); // sessiontart
session_unset (); // ok
if (bla) { setcookie(); echo "Ein Cookie wurde angelegt"; ob_end_flush(); Exit; }
session_destroy (); // ok
ob_end_flush (); // ok


Aber du darfst nicht wegheadern sobald dein Cookie gesetzt wurde!
Du kannst aber trotzdem headern, in dem du im echo HTML spezifisches neuladen der Seite bewirkst.

als

echo '
<html>
<head>
<meta http-equiv="refresh" content="1; url=http://www.planethtml.de">
</head>
<body>

Sie werden automatisch weitergeleitet...
falls ihr Browser keine Weiterleitung unterstützt ...<br>
</body>
</html>';

Hier sollte dir einleuchten, dass bei dieser Methoder der Browser des Gastes autmatisch neuladen wird. Durch diese Methode kannst du dir ein header, der nicht sein darf erschummeln. Und diese Methode wird bei den meisten angewendet!
 
Zuletzt bearbeitet von einem Moderator:
Zurück