PHP auf xampp funktioniert die Webseite auf 1und1 (ionos.de) funktioniert die Webseite nicht mehr?

2 Antworten

Bevor andere Inhalte ausgeliefert werden muss der Cookie gesetzt werden. Das ist der Inhalt der Fehlermeldung.

Cannot modify header information - headers already sent by ...

Wird noch etwas als PHP-Code ausgeführt bevor du den Cookie setzen willst?

Woher ich das weiß:Studium / Ausbildung – Früher Beruf, heute »nur« noch Hobby.

Kiboman  05.09.2019, 17:56

Php Code vorher interessiert nicht davor wurden andere HTML Inhalte generiert bzw gesendet.

output started at ... Login.php Line 1

da gibt er schon etwas aus was er nicht darf

1
Gaskutscher  05.09.2019, 18:02
@Kiboman

Das vermute ich auch -> daher die Frage was er sonst noch so an PHP-Code vor der für die Ausgabe vom Cookie relevanten Teil ausführt.

0
energeto 
Fragesteller
 05.09.2019, 18:32
@Kiboman

Also die erste Zeile meiner login.php lautet <!DOCTYPE html>
Wenn ich aber keinen setcookie oder einen header sondern einfach nur ein echo "whatever"; mache funktioniert das ohne probleme

0
Gaskutscher  05.09.2019, 19:05
@energeto

Ah... Dann sieht deine login.php in etwa so aus:

<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="generator" content="Bluefish 2.2.7" />
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head> 

<?php echo "setcookie ("username", $auth->account['username'], time()+28800);" ?>

[...]

?
0
Kiboman  05.09.2019, 19:05
@energeto

Ja dann hast du Header nicht verstanden.

Trenne verarbeitenden Code und die Ausgabe strikt von einander dann tauchen solche Probleme garnicht erst auf.

Der Header ist eine Information an den Browser VOR jeglichem anzuzeigendem Inhalt.

1

Ich glaube eher die Fehler wurden jetzt erst aichtbar.

Unterdrückst du die Fehlermeldungen bei dir lokal?

Du hast ein grundsätzliches Konzept problem, diesen Fehler bekommst du mit jeder PHP Version wenn er dir dann angezeigt wird.

Du darfst vor einem header keinen Output generieren.

Wenn du entwickelst setzt in deiner ersten Datei am Anfang die Parameter.

error_reporting(E_ALL);

ini_set("display_errors", true);

Wahrscheinlich bzw erfahrungsgemäß explodiert deine Seite vor Fehlern.


energeto 
Fragesteller
 06.09.2019, 01:34

Okay, dann sollte ich mal das noch mal genauer ansehen.. aber nich mal das funktioniert:

<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
   echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
   echo "Cookie '" . $cookie_name . "' is set!<br>";
   echo "Value is: " . $_COOKIE[$cookie_name];
   error_reporting(E_ALL);
}
?>

</body>
</html>
0
Kiboman  06.09.2019, 07:53
@energeto
<?php
error_reporting(E_ALL);
ini_set ("display_errors",true);

$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day


if(!isset($_COOKIE[$cookie_name])) {
   $diplay_cookie_text = "Cookie named '" . $cookie_name . "' is not set!";
} else {
   $diplay_cookie_text =  "Cookie '" . $cookie_name . "' is set!<br>
                           Value is: " . $_COOKIE[$cookie_name];
}

?>
<!DOCTYPE html>
<html>
<body>
<? echo $diplay_cookie_text; ?>
</body>
</html>

trenne Code und ausgabe von einander!

0