Cookies
Andreas
- php
Hallo,
wie kann ich ein Cookie absetzten?
Probiere es mit folgendem Code ohne Erfolg:
$cookie = '123456789';
$Cookie_Length = 180;
$ctime = time() + (60 * $Cookie_Length);
$cookiename = "CommunityAward";
setCookie($cookiename, $cookie, $ctime, "www.access-o-mania.de");
Nach dem Absetzen finde ich im Cookie-Verzeichnis das abgesetzte Cookie nicht. Was mache ich falsch?
Andreas
hi,
Nach dem Absetzen finde ich im Cookie-Verzeichnis das abgesetzte Cookie nicht. Was mache ich falsch?
was sagt denn dein browser dazu, wenn du ihn so einstellst, dass er beim empfangen eines cookies bei dir nachfragt, was er damit machen soll?
gruß,
wahsaga
Hallo,
...wenn du ihn so einstellst, dass er beim empfangen eines cookies bei dir nachfragt, was er damit machen soll?
Äh - was meinst du damit?
Wo kann ich was einstellen?
Andreas
hi,
...wenn du ihn so einstellst, dass er beim empfangen eines cookies bei dir nachfragt, was er damit machen soll?
Äh - was meinst du damit?
Wo kann ich was einstellen?
in jedem guten browser kannst du einstellen, dass beim beim empfang eines cookies gefragt werden möchtest, was damit gemacht werden soll.
schau in die doku deines browsers.
gruß,
wahsaga
Hi,
habe im IE 6.x Nachfrage bei Cookies eingestellt.
Trotztdempassiert nichts wenn ich das Cookie absetze.
Ich hab irgenwo mal gelesen, dass Cockies nicht mitten im Body abgesetzt werden können. Stimmt das?
Andreas
abend,
wie dir der Geistige Hohlraum bereits sagte:http://de.php.net/manual/de/function.setcookie.php
musst doch nur lesen!
auszug:
[..] setcookie() definiert ein mit den HTTP Header-Informationen zu übertragendes Cookie.[..]
---------------------------------------^^^^
mfg,
(tanz das)
Z.N.S.
Hallo,
[..] setcookie() definiert ein mit den HTTP Header-Informationen zu übertragendes Cookie.[..]
Nun lässt mich nicht doof sterben, wieso geht es nicht, was fehlt, was ist falsch?
Das muss doch für euch eine simple Frage sein.
Andreas
Nun lässt mich nicht doof sterben, wieso geht es nicht, was fehlt, was ist falsch?
Die Header müssen logischerweise als erstes gesendet werden. Wenn Du schon irgendwas anderes an den Browser geschickt hast, dann kannst Du keine Header mehr senden.
Der Aufruf zum Senden des Cookies muß also als erstes auf deiner Seite erfolgen. Wenn da nur ein Leerzeichen vor deinem PHP-Bereich ist, dann funktioniert es nicht mehr.
Gruß, rob
Der Aufruf zum Senden des Cookies muß also als erstes auf deiner Seite erfolgen. Wenn da nur ein Leerzeichen vor deinem PHP-Bereich ist, dann funktioniert es nicht mehr.
Das ist erstens nicht grundsätzlich so, sondern Einstellungssache (Caching) und zweitens meiner Meinung nach nicht sein Problem, denn dann hätte er sich wahrscheinlich über eine Meldung "Cannot send..." beschwert.
hi,
Das ist erstens nicht grundsätzlich so, sondern Einstellungssache (Caching)
caching?
output buffering wäre m.E. der korrekte begriff.
gruß,
wahsaga
Äh - was meinst du damit?
Wo kann ich was einstellen?
Du scheinst mir, ein Nutzer des Internet Explorers auf Windows zu sein :)
Ja, auch dort kann man das einstellen. Du kannst irgendwo in den Einstellungen die "automatische Cookiebehandlung" deaktivieren und angeben, daß Du vor der Annahme von Cookies gefragt werden willst.
Gruß, rob
setCookie($cookiename, $cookie, $ctime, "www.access-o-mania.de");
Nach dem Absetzen finde ich im Cookie-Verzeichnis das abgesetzte Cookie nicht. Was mache ich falsch?
Du hast die Anleitung nicht genau genug gelesen. Vergleiche Deinen Aufruf mit der erwarteten Parameterliste, so wie sie in http://de.php.net/manual/de/function.setcookie.php angegeben ist.
Beachte darüber hinaus, dass einige Parameter optional sind und als Vorgabe Daten der aktuellen URL benutzen.
Hast Du sichergestellt, dass du den Cookie VOR einem etwaigen HTML-Teil in Deiner PHP-Datei angegeben hast?
Falls nicht, koennte es daran liegen:
(wenn ich jetzt was erzaehle, was du schon weisst, einfach überlesen):
<mit-halbwissen-prahl>
Dein Webserver baut ja einen Header um die Ausgabe deines PHP-Skriptes drumrum, also wenn Du mit deinem PHP-Skript ausgibst
<html>
<head> <title> foobar </title></head>
<body> bla </body>
</html>
macht dein Server etwas wie das folgende draus:
HTTP/1.1. OK
Connection Close
Date: ....
Server: ...
Content-type: text/html
<html>
....
</html>
Cookies muss der server in den oberen Teil reinpopeln - wenn du deinen Cookie-Aufurf also irgendwo inmitten der seite stehen hast, also irgendwie so:
echo <html>
echo <body>
...
setcookie
...
echo </body>
ist das zu spät für ihn. Dann hat er sein Geblubber mit HTTP/1.1 bla...schon geschrieben.
Deswegen muessen Cookies anweisungen so früh wie möglich im PHP-Skript stehen, jedenfalls bevor Du noch irgendwelche Ausgaben machst.
</mit-halbwissen-prahl>
Wenns daran nicht liegt, kann es ggf. damit zusammenhängen, dass du lokal testest - ich glaube mich zu erinnern, dass ich mal so ein Problem hatte. Abhilfe: Das ganze auf einem entfernten Webserver (!= deinem eigenen Rechner) ausprobieren.
Hoffe, ich konnte weiterhelfen (auch wenn ich von PHP keine Ahnung hab *rot-werd*)
Ciao,
Jörg