lima-city und Cookies
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anbieter
beispiel
beitrag
benutzername
body
button
daten
fehler
folgende meldung
formen
fragen
host
kennwort
kompression
korrekte daten
login
meldung
status
umgebung
username
-
Ich bekomme es nicht hin per setcookie() einen Cookie zu setzen... es wird immer folgende meldung ausgegeben:
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/icecream/html/login.php:14) in /home/webpages/lima-city/icecream/html/login.php on line 43
bei mir zuhause mit xampp! geht es und bei funpic geht es auch...
im hilfesystem bat man mich, die frage mal ins forum zu setzen!
wisst ihr wo das prob liegt???
icecream/ferdinand24
Beitrag ge?ndert am 23.01.2006 17:40 von icecream -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Vor dem header-Befehl darf keine Ausgabe erfolgen!
Du musst zuerst Cookies setzen und dann den Text ausgeben.
H2O -
Ich bekomme es nicht hin per setcookie() einen Cookie zu setzen... es wird immer folgende meldung ausgegeben:
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/icecream/html/login.php:14) in /home/webpages/lima-city/icecream/html/login.php on line 43
bei mir zuhause mit xampp! geht es und bei funpic geht es auch...
Dort klappt es mit Sicherheit auch nicht. Allerdings siehst du die Fehlermeldung nicht, weil deine PHP.ini "lascher" eingestellt ist. So zeigt dein PHP nicht alle Fehler an.
im hilfesystem bat man mich, die frage mal ins forum zu setzen!
wisst ihr wo das prob liegt???
Entweder du machst es so, wie h2o vorgeschlagen hat. Wenn das nicht geht, weil du unbedingt "vor" dem Setzen der Cookies etwas ausgeben willst, dann musst du die normale Ausgabe puffern. Das geht so:
ob_start(); // Anfang deines alten Scriptes ... // Ende deines alten Scriptes ob_end_flush();
-
auf meinem rechner mit xampp geht es aber ganz sicher... er zeigt den fehler nicht an, was nat?rlich auch daran liegen kann dass die php.ini nicht eingestellt ist aber ich seh so dass es nicht funzt:
ich habe einen einfachen admin-login gebaut. wenn man das richtige PW eingibt wird ein cookie gesetzt und auf den folgenden seiten wird, sofern ein cookie gesetzt ist auch das admin-interface angezeigt. das geht bei funpic und ohost, da l?sst es mich einloggen, bei lima aber zeigt er mir immer an, es sei kein cookie gesetzt!!!
also muss es demzufolge an lima liegen und nicht an meinem script!
das script poste ich hier mal:
login.php
<html>
<head>
<link rel="stylesheet" href="layout\css\artikel.css" type="text/css">
<title></title>
</head>
<body>
<h1>Admin-Login</h1>
<div align="center">
<form action="login.php" method="post">
<b>Benutzername:</b><br>
<input type="text" name="username"><br><br>
<b>Kennwort:</b><br>
<input type="password" name="password"><br><br>
<input type="submit" value="Einloggen">&nbsp;<input type="submit" value="Ausloggen" name="logout">
</form>
</body>
</html>
<?
include("#include.php");
//Cookie auslesen
$cookie = $_COOKIE['iclogin'];
//Cookie negativ setzen, wenn Logout-Button gedr?ckt
if ($_POST['logout'] == "Ausloggen") setcookie("iclogin", $no);
//Meldung ausgeben
if ($cookie == $yes) $status = $loggedin;
else $status = $loggedout;
echo $status;
//Eingegebenes per POST ?bernehmen und md5-verschl?sseln
$username = md5($_POST['username']);
$password = md5($_POST['password']);
//korrekte Daten md5-verschl?sselt
$md5_un = "56364a95925bcf3fc8ba7611c44236a2";
$md5_pw = "23a52f55395372e1cc847177be45e697";
//wenn UN und PW richtig, Cookie setzen
if ($password == $md5_pw && $username == $md5_un) {
setcookie("iclogin", $yes);
echo $loggedin;
}
?>
Die Variablen $loggedout, $loggedin, $yes und $no werden in der #include.php definiert (welche ja im oberen Teil des PHP-Scripts includet wird)
ps. kann sein dass der code den ein oder anderen zeichenfehler aufweist, ich musste ihn mal eben schnell maskieren, damit lima ihn nicht implementiert (den html-code)
ps2. ich wei?, der code ist insgesamt ziemlich umst?ndlich, aber ich bin php-anf?nger
Beitrag ge?ndert am 23.01.2006 20:40 von icecream -
setzt den php teil vor:
<html> <head> <link rel="stylesheet" href="layout\css\artikel.css" type="text/css"> <title></title> </head> <body> <h1>Admin-Login</h1> <div align="center"> <form action="login.php" method="post"> <b>Benutzername:</b><br> <input type="text" name="username"><br><br> <b>Kennwort:</b><br> <input type="password" name="password"><br><br> <input type="submit" value="Einloggen"> <input type="submit" value="Ausloggen" name="logout"> </form> </body> </html>
und dann m?sste es klappen -
Hi,
du darfst nie Daten nach dem HTML-Code an den header schicken (z.B. eben mit setCookie oder header).
Bei setCookie ist das auch so, da setCookie folgendes macht:
header('Set-Cookie: name=wert; path=/');
Es benutzt auch die header Methode.
Dann musst du einfach so:
include("#include.php"); //Cookie auslesen $cookie = $_COOKIE['iclogin']; //Cookie negativ setzen, wenn Logout-Button gedr?ckt if ($_POST['logout'] == "Ausloggen") setcookie("iclogin", $no); //Meldung ausgeben if ($cookie == $yes) $status = $loggedin; else $status = $loggedout; echo $status; //Eingegebenes per POST ?bernehmen und md5-verschl?sseln $username = md5($_POST['username']); $password = md5($_POST['password']); //korrekte Daten md5-verschl?sselt $md5_un = "56364a95925bcf3fc8ba7611c44236a2"; $md5_pw = "23a52f55395372e1cc847177be45e697"; //wenn UN und PW richtig, Cookie setzen if ($password == $md5_pw && $username == $md5_un) { setcookie("iclogin", $yes); echo $loggedin; } ?> <html> <head> <link rel="stylesheet" href="layout\css\artikel.css" type="text/css"> <title></title> </head> <body> <h1>Admin-Login</h1> <div align="center"> <form action="login.php" method="post"> <b>Benutzername:</b><br> <input type="text" name="username"><br><br> <b>Kennwort:</b><br> <input type="password" name="password"><br><br> <input type="submit" value="Einloggen"> <input type="submit" value="Ausloggen" name="logout"> </form> </body> </html>
mfg,
hr -
Alle anderen Hosts haben Output-Buffering an, w?rde ich sagen.
-
lordoflima schrieb:
Alle anderen Hosts haben Output-Buffering an, w?rde ich sagen.
was auch immer das ist, (klingt auf jeden fall interessant) warum unterst?tzt lima-city das nicht???????
icecream/ferdinand24 -
lordoflima schrieb:
Alle anderen Hosts haben Output-Buffering an, w?rde ich sagen.
was auch immer das ist, (klingt auf jeden fall interessant) warum unterst?tzt lima-city das nicht???????
icecream/ferdinand24
lima-city unterst?tzt es. Allerdings ist es nicht standardm??ig aktiviert, da dies in einer normalen PHP-Umgebung auch nicht der Fall ist. Diese Anbieter verwenden es z.B. zu Kompression der Daten vor der ?bertragung. Wie in alopex' Beispiel ist es m?glich, es manuell zu aktivieren. -
lordoflima schrieb:
lordoflima schrieb:
Alle anderen Hosts haben Output-Buffering an, w?rde ich sagen.
was auch immer das ist, (klingt auf jeden fall interessant) warum unterst?tzt lima-city das nicht???????
icecream/ferdinand24
lima-city unterst?tzt es. Allerdings ist es nicht standardm??ig aktiviert, da dies in einer normalen PHP-Umgebung auch nicht der Fall ist. Diese Anbieter verwenden es z.B. zu Kompression der Daten vor der ?bertragung. Wie in alopex' Beispiel ist es m?glich, es manuell zu aktivieren.
achso... ich hatte alopex' posting nicht gelesen bzw. jetzt keinen zusammenhang zwischen deinem und alopex' beitrag gesehen... ich aktiviere es gleich mal...
*datei_?nder* *hochlad* *ausprobier*
FUNZT!!!!!!!
DANKE AN EUCH ALLE, DIE MIR GEHOLFEN HABEN!!! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage