Hallo,
ich habe folgendes Problem:
Ich habe ein Login Script geschrieben welches auch 2 Cookies setzen kann - sofern man den haken dafür setzt.
Auf meinem PC (localhost) funktioniert auch alles einwandfrei.
Wenn ich mich einlogge dann setzt er die Cookies und wenn ich auslogge dann löscht er diese wieder.
Jetzt habe ich das ganze zum testen mal auf meinen Webspace (alfahosting) hochgeladen.
Dort kriege ich jetzt allerdings jedesmal die Fehlermeldung "Headers already sent"
Normal kriegt man doch diese Fehlermeldung wenn vor dem Cookie schon eine Ausgabe erfolg ist oder liege ich da falsch?
Die ganze Login überprüfung habe ich allerdings in eine extra Datei (login.php) geschrieben so das eigentlich keine vorherige Ausgabe erfolgen kann außer natürlich durch include da das Script ja mit Include in die Index.php eingebunden ist.
Etwas anderes würde aber auch garkeinen Sinn machen. Ich kann ja schlecht den Login immer an erster Stelle platzieren.
Wieso also funktioniert es auf meinem PC auf dem Webspace aber nicht mehr?
Hier mal der Code wie er gerade aussieht:
login.php
logout.php
und das ganze wie folgt in der index.php verbaut:
Das Logout lass ich mal aussen vor den dazu kommt es ja nichtmal. Er loggt sich nichtmal ein ^^ Es sind auch keine Cookies auf meinem PC gespeichert er setzt sie erst garnicht.
ich habe folgendes Problem:
Ich habe ein Login Script geschrieben welches auch 2 Cookies setzen kann - sofern man den haken dafür setzt.
Auf meinem PC (localhost) funktioniert auch alles einwandfrei.
Wenn ich mich einlogge dann setzt er die Cookies und wenn ich auslogge dann löscht er diese wieder.
Jetzt habe ich das ganze zum testen mal auf meinen Webspace (alfahosting) hochgeladen.
Dort kriege ich jetzt allerdings jedesmal die Fehlermeldung "Headers already sent"
Normal kriegt man doch diese Fehlermeldung wenn vor dem Cookie schon eine Ausgabe erfolg ist oder liege ich da falsch?
Die ganze Login überprüfung habe ich allerdings in eine extra Datei (login.php) geschrieben so das eigentlich keine vorherige Ausgabe erfolgen kann außer natürlich durch include da das Script ja mit Include in die Index.php eingebunden ist.
Etwas anderes würde aber auch garkeinen Sinn machen. Ich kann ja schlecht den Login immer an erster Stelle platzieren.
Wieso also funktioniert es auf meinem PC auf dem Webspace aber nicht mehr?
Hier mal der Code wie er gerade aussieht:
login.php
PHP:
<?php
$username = $_POST['username'];
$password = md5($_POST['password']);
$auslesen = "SELECT username, password FROM login WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($auslesen);
$row = mysql_fetch_object($ergebnis);
if($username == "" OR $password == "") {
echo "Bitte Benutzernamen und Passwort eingeben.";
} else {
if($row->password == $password) {
if(isset($_POST['rememberMe'])) {
$expire = time() + 3600 * 24 * 30; // Verfallsdatum 30 Tage
setcookie("rememberMe", base64_encode($username), $expire); // Erster Cookie wird gesetzt
$salt = "irgendeinwert";
$hash = md5($salt."|".$password."|".$username);
setcookie("rememberMeToken", $hash, $expire); // Zweiter Cookie wird gesetzt
} else {
$_SESSION['username'] = $username;
}
echo "Login erfolgreich.";
echo "<br>Weiterleitung in 3 Sekunden";
echo "<meta http-equiv=\"refresh\" content=\"3; URL=?page=Home\">";
} else {
echo "Benutzername oder Passwort falsch.";
}
}
?>
logout.php
PHP:
<?php
if(!isset($_SESSION['username'])) {
echo "Du bist nicht angemeldet.";
} else {
setcookie("rememberMe", '', time() -3600 * 24 * 30);
setcookie("rememberMeToken", '', time() -3600 * 24 * 30);
session_destroy();
echo "Erfolgreich abgemeldet.";
echo "<br>Weiterleitung in 3 Sekunden";
echo "<meta http-equiv=\"refresh\" content=\"3; URL=?page=Home\">";
}
?>
und das ganze wie folgt in der index.php verbaut:
PHP:
<?php
if(!isset($_SESSION['username'])) {
include("bin/script/ucp/login/formular.php");
} else {
include("bin/script/ucp/logout.php");
}
?>
Das Logout lass ich mal aussen vor den dazu kommt es ja nichtmal. Er loggt sich nichtmal ein ^^ Es sind auch keine Cookies auf meinem PC gespeichert er setzt sie erst garnicht.
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web745/html/index.php:19) in /var/www/web745/html/bin/script/ucp/login/login.php on line 16
Warning: Cannot modify header information - headers already sent by (output started at /var/www/web745/html/index.php:19) in /var/www/web745/html/bin/script/ucp/login/login.php on line 21
Login erfolgreich.
Weiterleitung in 3 Sekunden