selfhtml.de - Alles für den Webmaster!

 

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.

Jetzt Domain-Check bei united-domains!

setcookie() funktioniert nicht

Autor: Ralli12
Datum: 12.09.2011 20:49:51

Hallo Forum,

auf einer Website habe ich setcookie() eingefügt und zwar direkt an den Anfang des PHP-Scriptes:

<?
setcookie("tid","id_test_cookie",time()+(6*3600),"/",".newwebtechnology.de",FALSE,TRUE);  // 6 Stunden Cookie-Lebenszeit
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>http://www.NewWebtechnology.de<;/title>
... usw.

Und nun liefert der PHP-Interpreter folgende Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/newwebtechnology.de/httpdocs/index.php:1) in /var/www/vhosts/newwebtechnology.de/httpdocs/index.php on line 2

Aber in Zeile 1 gibt es gar keine Ausgabe an den Browser; auch keine Leerzeile, Leerzeichen oder ähnliches. Habe mehrfach den Anfang der Datei gelöscht und die ersten Zeichen des Skriptes neu reingeschrieben, so dass definitiv nichts vor dem öffnenden PHP-Tag steht. Außerdem habe ich das Skript per FTP im Binary-Modus hochgeladen.

Weiß mir keinen Rat mehr, zumal setcookie() in genau dieser Form auf allen meinen anderen 16 Domains (beim gleichen Hoster) funktioniert.

Könnt Ihr einen Fehler entdecken?

Bin für jede Hilfe dankbar.
Ralf



Re: setcookie() funktioniert nicht

Autor: Freddy
Datum: 12.09.2011 21:23:09

Hallo,

> auf einer Website habe ich setcookie() eingefügt
> und zwar direkt an den Anfang des PHP-Scriptes: [...]
> Aber in Zeile 1 gibt es gar keine Ausgabe an den
> Browser; auch keine Leerzeile, Leerzeichen oder
> ähnliches. Habe mehrfach den Anfang der Datei
> gelöscht und die ersten Zeichen des Skriptes neu
> reingeschrieben, so dass definitiv nichts vor dem
> öffnenden PHP-Tag steht. Außerdem habe ich das
> Skript per FTP im Binary-Modus hochgeladen.
>
> Weiß mir keinen Rat mehr, zumal setcookie() in
> genau dieser Form auf allen meinen anderen 16
> Domains (beim gleichen Hoster) funktioniert.
>
> Könnt Ihr einen Fehler entdecken?

Ähem, wenn ich mich Recht erinnere, gab's da nicht mal Schwierigkeiten mit UTF-8 und Byte-Mark-Order-Dingens (BOM). Schau mal danach, vielleicht hiflt Dir das weiter.
IIRC kann es passieren, dass wenn man UTF-8 + BOM eingestellt hat, ein Zeichen da ist, was man gar nicht sehen oder löschen kann. Da hilft es, glaube ich nur, wenn man "ohne BOM" einstellt oder ein anderes Encoding verwendet.


Gruß,
Freddy



Problem gelöst: setcookie() funktioniert nicht

Autor: Ralli12
Datum: 12.09.2011 22:14:04

Danke Freddy,

habe nach meinem Post weiter nach dem Fehler gesucht und bin auf das gleiche Ergebnis wie Du gekommen. Es lag wirklich an der BOM (Byte Order Mark), welche in Notepad (meinem Lieblings-Editor) nicht zu sehen ist. Habe mir dann den kostenlosen HEX-Editor AviHex heruntergeladen und der hat die BOM dann angezeigt. Leider konnte AviHex diese 3 Zeichen (hex: EF BB BF) nicht löschen. Habe das PHP-Skript dann einfach mal mit Wordpad geöffnet, die ersten Zeichen gelöscht und neu geschrieben, das Skript dann wieder gespeichert und siehe da, die BOM ist weg und das Skript funktioniert wieder mit setcookie():

Mann, bin ich froh!!!

Danke für Deine Hilfe.

Und Euch allen eine gute Nacht.
Ralf