cookie fehler....
miZ3ro
- php
Hallo... Ich bin gerad dabei das erste mal ein cookie zu setzen und versteh das irgendwie nicht so ganz. Hab mir zwar die php hilfe durch gelesen aber ok :-(
Ich hab versucht so ein cookie zu setzen:
$test='hallo';
setcookie ("Testcookie", $test);
Warning: Cannot modify header information - headers already sent by (output started at /home/familie-/public_html/test2.php:3) in /home/familie-/public_html/test2.php on line 66
Mach ich irgendwas falsch?
Und wenn ich schonmal ein Topic offen hab:
Wie kann ich denn noch einen zweiten Wert dem cookie hinzufügen?
Und kann ich die Werte wieder so abrufen:
$test=$_COOKIE['test'];
Oder wie geht das sonst?
Also danke schonmal für jede Hilfe.
Hallo,
mit Cookies kenn ich micht auch nichts so aus, aber evt. gehts so:
Du musst er in der php.ini bestimmen wohin der die Cookies speichert.
Dort ist irgendwo nen eintrag wegen Cookies. Dort musst du einen Pfad zu nem Ordner angeben
MFG
Andavos
Halihallo Andavos
mit Cookies kenn ich micht auch nichts so aus, aber evt. gehts so:
Du musst er in der php.ini bestimmen wohin der die Cookies speichert.
Du verwechselst Cookies mit Sessions.
Dort ist irgendwo nen eintrag wegen Cookies. Dort musst du einen Pfad zu nem Ordner angeben
So? - Beweise ;-)
Viele Grüsse
Philipp
Hallo,
ist war ja nur ne idee von mir ;)
Denn die Fehlermeldung sieht fast so aus, wie die, die ich bekommen habe, als ich Sessions genutzt habe.
MFG
Andavos
Halihallo Andavos
Denn die Fehlermeldung sieht fast so aus, wie die, die ich bekommen habe, als ich Sessions genutzt habe.
Ja, das ist sogar gut möglich. Um den Benutzer bzw. die Session eindeutig zu
identifizieren, braucht das Script eine SessionID und -Key. Diese können u.a. in einem
Cookie gespeichert sein => Selbe Fehlermeldung, aber dennoch ein reines Cookie-Problem,
mit Sessions hat dies nichts zu tun.
Viele Grüsse
Philipp
Ich blick das mit serialize nicht....
Ich weiß jetzt das ich das so serializen kann:
setcookie('cookiename',urlencode(serialize($cookie)));
Das Problem ist das ich keinen Plan hab wie ich jetzt 2 Variablen in $cookie unterbringen soll.....
Kann mir da nicht jemand helfen bitte?
Danke
Ich blick das mit serialize nicht....
Ich weiß jetzt das ich das so serializen kann:
setcookie('cookiename',urlencode(serialize($cookie)));Das Problem ist das ich keinen Plan hab wie ich jetzt 2 Variablen in $cookie unterbringen soll.....
cookie definieren:
$cookie = array('Wert1','was auch immer');
cookie setzen:
setcookie('myCookie',urlencode(serialize($cookie)));
cookie lesen:
$cookie = urldecode(unserialize($_COOKIE['myCookie']));
Kurze Erklärung:
"serialize" macht aus Variablen diverser Typen, einfache Strings. In diesen Zeichenketten steht dann der Variablentyp, die Länge und der Wert (hier zB.: 'Wert1' oder 'was auch immer'). Wenn man diesen string dann wieder mit unserialize zurückverwandelt bekommt man wieder die Ausgangsvariable vom selben Typ (hier: Array).
alle Beispiele ungetestet dürften aber so stimmen, hoffe ich
schöne Grüße
FICHTL
Halihallo FICHTL
cookie setzen:
setcookie('myCookie',urlencode(serialize($cookie)));
cookie lesen:
$cookie = urldecode(unserialize($_COOKIE['myCookie']));
Auf die Verkettung der Funktionen achten:
Encoding: urlencode(serialize($cookie_value))
Decoding: unserialize(urldecode($cookie_value))
kleiner aber feiner Unterschied :-)
alle Beispiele ungetestet dürften aber so stimmen, hoffe ich
IMHO stimmt das (auch ungetestet), bis auf die inverse Verkettung der Funktionen.
Viele Grüsse
Philipp
Halihallo miZ3ro
$test='hallo';
setcookie ("Testcookie", $test);
Warning: Cannot modify header information - headers already sent by (output started at /home/familie-/public_html/test2.php:3) in /home/familie-/public_html/test2.php on line 66
Cookies werden im HTTP-Header übertragen, falls bereits Daten ausgegeben wurden und sei
es nur das <html> oder sonst was, _wurde_ der Header bereits ausgegeben. Setzte den
Cookie ganz am Anfang des Scriptes, wo noch nix anderes ausgegeben wurde (weder das
umgebende HTML, noch echo-Anweisungen des Scriptes).
Wie kann ich denn noch einen zweiten Wert dem cookie hinzufügen?
Aus http://www.php.net/setcookie:
"Namen von Cookies können auch als Arraynamen gesetzt werden und stehen dann in Ihren Skripten als Arrays zu Verfügung, während sie auf dem System des Benutzers separat abgespeichert werden. Um ein Cookie mit mehreren Namen und Werten zu setzen, erwägen Sie auch den Einsatz von explode() bzw. serialize()."
=> http://www.php.net/serialize (auch Kommentare lesen! - (strip|add)slashes).
Und kann ich die Werte wieder so abrufen:
$test=$_COOKIE['test'];
Oder wie geht das sonst?
Yo.
Viele Grüsse
Philipp
Danke erstmal für die Antworten...
Also mein englisch ist zwar grottenschlecht :p aber ich werd das mit dem serialize schon verstehen. die grundidee ist mir auch klar ;-)
zu dem cookie erstellen: ich hab das jetzt ganz am anfang und trotzdem wird kein cookie erstellt. dann hab ich einfach mal das zeug aus der hilfe kopiert:
<?php
$value = 'something from somewhere';
setcookie ("TestCookie", $value);
setcookie ("TestCookie", $value, time()+3600); /* verfällt in 1 Stunde */
setcookie ("TestCookie", $value, time()+3600, "/~rasmus/", ".utoronto.ca",1);
?>
und es geht. und sobald ich das mit dem time wegmache gehts wieder nicht :-( wie kann ich das denn machen das das für immer da bleibt?
danke
Halihallo miZ3ro
und es geht. und sobald ich das mit dem time wegmache gehts wieder nicht :-( wie kann ich das denn machen das das für immer da bleibt?
Wie meinst du das "für immer da bleibt"? - Wenn die Timestamp für expires nicht gesetzt
ist, ist es ein sogenannter Session-Cookie, der solange existiert, wie das Browserfenster
offen bleibt. Schliesst man das Fenster, verfällt der Cookie automatisch. Ausweg ist wie
vermutet ein Cookie-expires zu setzen, um explizit den Verfallszeitpunkt anzugeben.
Viele Grüsse
Philipp