PHP Cannot modify header information?

... komplette Frage anzeigen

3 Antworten

Gewöhn dir folgendes an:

index.php

<?php
// do php stuff, especially header()
// or setcookie() HERE !!!!
// AND ONLY HERE!!!

include "template.php";

template.php

<html>
<!-- NOT HERE -->
</html>

http://www.w3schools.com/php/func_http_setcookie.asp

Zitat: 

Note: The setcookie() function must appear BEFORE the <html> tag.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Kiboman
02.05.2016, 22:13

würde man das E-V-A prinzip konsequent durch die gesamte website ziehen hätte man dieses und andere probleme garnicht.

und ja das geht, ich praktiziere das so.

0
Kommentar von LugicoHDPlayer
03.05.2016, 14:43

DANKESCHÖN!

So hats funktioniert.

Ich habe das zuerst wohl falsch verstanden!

0
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 Funktion aufrufen müssen, bevor Sie eine Ausgabe, dazu
zählen auch <html>- oder
<head>-Tags sowie jede Art von Whitespaces,
übermitteln.

http://php.net/manual/de/function.setcookie.php

Antwort bewerten Vielen Dank für Deine Bewertung

Das musst du machen, bevor mit echo irgendwas anderes ausgegeben wird! Header können nur gesetzt werden, bevor du andere Ausgaben hast.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von LugicoHDPlayer
02.05.2016, 20:52

Ich habe den code nochmal überarbeitet und alles in eine externe datei gepackt... geht immer noch nicht. der Inhalt der Datei:



<html>

<head>

<?php
if (isset($_POST["allow_cookies"]) && $_POST["allow_cookies"]) {
setcookie('allow_cookies','OK');
echo "OK! Hier zur hauptseite: <a href=index.php>---</a>";
}
?>

<title>Cookies</title>

</head>

<body>

<form action='' method=POST>

Hier der Ganze text...

<input type=submit name=allow_cookies>

</form>

</body>

</html>

0

Was möchtest Du wissen?