PHP Problem?

Hallo Community,
da ich neu hier bin habe ich als erstes mal zwei Fragen:
Wieso werden bei mir keine cookies durch php gesetzt?
Und wieso wird bei mir der Fehler: Warning: Cannot modify header information - headers already sent by (output started at /users/igelhaut/www/xs/data/administrator/index.php:26) in /users/igelhaut/www/xs/data/administrator/index.php on line 711 angeueigt? Ich sende keine header in diesem Document…
Das alles ging bei meinem altem anbieter funpic.de, wieso geht das hier nicht?

MfG IgelHaut

Bei Fp hats vmtl. deshalb funktioniert, weil die wahrscheinlich das error_reporting anders konfiguriert haben.

Schau dir einfach die Zeile 26 an, dort wird schon etwas an den Browser gesendet. Eine anschließende Änderung des Dateiheaders ist dann nicht mehr möglich.

Und wie glaubst du, werden Cookies an den Client gesendet? Genau, per HTTP-Header.

Weil dort vermutlich outbut_buffering per default an war, und hier nicht.

bei funpic muss das ja an sein, wegen der layer.

und wie kann ich das jetzt behenben?

du darfst vor der funktion setcookie() nichts ausgeben.
wenn du dich damit nicht auskennst einfach das script posten oder anhängen(je nach größe).

Meinst du in den vorherigen Zeilen oder genau vor setcookie(); ?
Denn wenn ich die vorherigen Zeilen wegmachen muss, dann wird das Script, das
ich geschrieben habe, nicht funktionieren!

Du darfst davor keine Ausgabe machen, also kein Html, kein echo() oder print().

@IgelHaut

steht doch was du machen sollst :smiley:

also, ich habe jetzt folgendes versucht:
ganz am Anfang dies <?php function cookie($name, $val, $exp, $path){ setcookie($name, $val, $exp, $path);} ?>
Dann Text Text Text…
und <?php cookie("test", "nixdrin", time() + 60*5, "/");?>

Geht nit…

<?php function cookie($name, $val, $exp, $path){ setcookie($name, $val, $exp, $path);} cookie("test", "nixdrin", time() + 60*5, "/"); ?> Text Text Text

Dann müsste es gehen, denn genau dieser Text war eine Ausgabe.

Und was wenn ich das ungefähr so mache:

<?php if($_GET['iwas'] == '123') { echo 'lol';} else { setcookie("iwie", "iwas", time() + 60*5, ""); ?>

Das müsste doch gehen oder?
Denn das echo wird ja nur ausgegeben, wenn in der url ?iwas=123 steht…

keine Ideen?

JA es müsste gehen.

Kleine Anmerkung…Du willst ein Cookie setzen, wenn noch keins vorhanden ist, richtig? Dann bitte so abfragen:

<?php if($_COOKIE['iwas'] == '123') { echo 'lol';}