Probleme mit Cookies

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
roderiganuras

Probleme mit Cookies

Beitrag von roderiganuras »

ich bin mit meiner website von funpic auf eine eigene webspace umgezogen
Meine cookies werden nicht gesetzt. ich bekomme die fehlermeldung:

Code: Alles auswählen

Du bist der 
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web5/html/HTML/main.php:16) in /var/www/web5/html/HTML/main.php on line 88
8. Besucher der Seite
url: http://heusspower.ultracoder.de
queltext:http://heusspower.ultracoder.de/HTML/quell.txt
früher hatte ich webspace bei funpic.de da ging dieser script perfekt
woran liegt das/kann das liegen???
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

RTFM: KB:headers_already_sent
KB:knigge
roderiganuras

Beitrag von roderiganuras »

aber in dem script stimmt doch alles :cry:
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag von punkface »

Wenn alles stimmen würde, würde auch keine Fehlermeldung angezeigt, oder? ;)

Aus dem PHP Handbuch für die von dir verwendete Funktion setcookie()
setcookie() definiert ein mit den HTTP Header-Informationen zu übertragendes Cookie. Wie andere Header auch, müssen Cookies vor jeglicher Ausgabe Ihres Skriptes gesendet werden (dies ist eine Einschränkung des Protokolls). Das bedeutet, dass Sie diese Funktione aufrufen müssen, bevor Sie eine Ausgabe, dazu zählen auch <html>- oder <head>-Tags sowie jede Art von Whitespaces, übermitteln.
Für Abhilfe siehe auch: setcookie erste Anmerkung
roderiganuras

Beitrag von roderiganuras »

ok, aber wieso ging das auf funpic problemlos?
roderiganuras

Es geht immer noch nicht :(

Beitrag von roderiganuras »

so jetzt habe ich die cookies in den header gepackt
die fehlermeldung ist verschwunden aber der gewünschte effekt (der besucherzähler soll nur um 1 hochgezählt werden wenn der cookie nicht gesetzt wurde oder schon über 60 sek alt ist) tritt nicht ein :(
link: http://heusspower.ultracoder.de/HTML/main.php
quelltext: http://heusspower.ultracoder.de/HTML/quell.txt
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag von punkface »

Die Frage warum es bei funpic.de ging kannst du dir selbst beantworten, wenn du die vorhin erwähnte erste Anmerkung im PHP Handbuch nochmal genau durchliest. Stichwort: output_buffering und php.ini

Zum jetztigen Code:

Code: Alles auswählen

$_COOKIE["nr"]=time();
Das ist komplett wirkungslos. Mit der Funktion setcookie() wird, wie du im Handbuch nachlesen kannst, über den HTTP Header ein Cookie an den Browser geschickt, die Variable $_COOKIE enthält allerdings nur Cookies die der Browser an den Server geschickt hat. Wenn du also Werte im $_COOKIE-Array änderst, hat das keinerlei Auswirkungen auf die Cookies die an den Browser geschickt werden.

siehe auch: http://tut.php-q.net/cookies.html
roderiganuras

Beitrag von roderiganuras »

hab ich leider immer noch nicht kapiert, bin i-wie blöd, kannste mir an nem code beispiel erklären, was du meinst :oops:



p.s.
hat es irgendwelche nachteile output_buffering auf on zu stellen, oder kann man das getrost machen?
Antworten

Zurück zu „Coding & Technik“