PHP auf xampp funktioniert die Webseite auf 1und1 (ionos.de) funktioniert die Webseite nicht mehr?
Hallo, ich habe eine .php Webseite erstellt. Die Funktion habe ich immer mit Xampp überprüft. Soweit war diese dann auch fertig und vollkommen funktionsfähig. Jetzt habe ich diese auf 1und1 (ionos.de) in meinen Webspace geladen. Dort nutze ich die selbe php version welche ich bei xampp genutzt habe.
Beim ersten Test der Seite soweit auch gut. Alles wurde richtig angeziegt und schien zu funktionieren.
Beim weiteren Test aber musste ich feststellen, dass ich keine cookies setzen kann. Ich bekomme keine zurückgegeben. Offline hat das aber immer funktioniert.
So:
setcookie ("username", $auth->account['username'], time()+28800);
Jetzt bekomme ich immer folgenden Fehler:
Warning: Cannot modify header information - headers already sent by (output started at /homepages/2/d785807995/htdocs/page/login.php:1) in /homepages/2/d785807995/htdocs/page/login.php on line 101
Auch wenn ich versuche den gesetzten Cookie auszulesen... Ohne Erfolg. Offline in Xampp kein Problem.
auch
header('Location: /page/suche.php');
funktioniert nicht mehr. Hier bekomme ich dann:
Warning: Cannot modify header information - headers already sent by (output started at /homepages/2/d785807995/htdocs/page/login.php:1) in /homepages/2/d785807995/htdocs/page/login.php on line 105
Warum kann ich das nicht so lassen wie ich es bisher hatte? Warum hat das mit Xampp auf dem rechner funktioniert aber auf dem Server nicht mehr? Hat jemand bitte einen Rat für mich?
Keine Hilfe war für mich:
Beste Grüße aus Karlsruhe
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?
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.
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);" ?>
[...]
?
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.
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>
<?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!
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