PHP LOGOUT problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beitrag
datei
daten
deswegen
dokument
einstellung
fehlermeldung
grad
haltbarkeit
hilfe
inhalt
kopfzerbrechen
lebensdauer
login
session
string
test
username
variable
window
-
hi,
ich bin grad daran ein login script zu schreiben, aber nicht das, sondern eher das logout script macht mir probleme -.-
hier erstmal der link zu der seite:
http://web258.server-drome.net/matze/php/ct2oo4/index.php
Und zwar sieht mein header mit der login box folgendermaßen aus:
<?PHP // header.php echo" header <div class='loginbox'> "; if (isset($_COOKIE['login'])) { echo " Hallo matze , <a href='index.php?site=logout'>logout</a> "; } else { echo" <form action='login_check.php' method='get'> <input type='text' name='username' class='username' size='10' maxlength='7' /> <input type='password' name='password' class='password' size='10' maxlength='15' /> <input type='submit' name='send' value='OK' /> </form> ";} echo " </div>"; $_GET['username'] = $username; $_GET['password'] = $password; ?>
meine Login überprüfung sieht so aus:
// login_check.php
<?PHP $admin = matze; $pw = test; if ($username == $admin AND $password == $pw) { setcookie(login, time()+3600); header("Location: index.php?site=is_numeric"); } else { header('Location: index.php?site=no_login'); } ?>
soo bis jetzt alles kein problem... nach erfolgreichen anmelden wird in der loginbox des headers folgendes angezeigt:
Hallo matze , <a href='index.php?site=logout'>logout</a>
so auch klar, ich bin nun eingeloggt und zwar mit hilfe eines cookies namens 'login' was 1h existiert...
So jetzt kommt mein Problem:
// logout.php
<?PHP setcookie (login, time()-3600); echo "Erfolgreich ausgeloggt"; ?>
jetzt wird angezeigt:
Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web258/html/matze/php/ct2oo4/index.php:13) in /srv/www/htdocs/web258/html/matze/php/ct2oo4/logout.php on line 2
Erfolgreich ausgeloggt
das "Erfolgreich ausgeloggt" ist klar...
aber die Fehlermeldung macht mir Kopfzerbrechen...
Ich gebe ja schließlich vor setcookie schon nix aus
meine index die angesprochen wird, sieht folgerndermaßen aus:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Unbenanntes Dokument</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div class="wrapper"> <div class='header'> <?PHP include('header.php'); ?> </div> <?PHP include('wrapper.php'); ?> <br /> <div class="footer"> footer </div> </div> </body> </html>
ja... der scharfe beobachter hat festgestellt, dass man sich mit matze und test einloggen kann ;)
:P
bitte helft mir.
Matze -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
aber die Fehlermeldung macht mir Kopfzerbrechen...
Ich gebe ja schließlich vor setcookie schon nix aus
Wenn du nichts ausgeben würdest, würde die Fehlermeldung auch nicht erscheinen.
Wie mir das scheint rufst du in der index.php die Datei logout.php über einen include()-Befehl auf. Folglich darf auch in der index.php nichts vor include('logout.php') ausgegeben werden. -
Wenn ich mich einlogge und dann wieder ausloggen, dann wird die Fehlermeldung IM Design angezeogt, d.h. du gibst davor noch ziemlich viel HTML-Zeugs aus, was die Fehlermeldung verursacht.
-
ich include die logout.php aber nicht...
siehe 1.post...
@spacke:
naja das wollte ich auch so wenns ne andere mögloichkeit gibt dann nur her damit!
soll ich vielleicht die logout.php nicht includen sondern als eigene page aufrufen??
Beitrag geaendert: 7.1.2007 15:21:35 von ct2004
so habs grad ausprobiert hab in meiner header.php anstatt index.php?site=logout nur logout.php geschreiben funktioniert aber leider auch nicht... wie sonst?
Beitrag geaendert: 7.1.2007 15:25:17 von ct2004 -
Wieso mit Cookie und nicht mit Sessions???
Und dann noch keine Verschlüsselung vorhanden!!!???
Hast du schon mal gegoogelt?
lg sebi -
ich bin totaler anfänger.. deswegen nciht mit verschlüsselung ohne sessions ich wollts halt einfahc mal mit cookies probieren, ja ich hab schon gegoogelt aber das php ahndbuch sowie sepfphp.de konnten mir nicht helfen... deswegen frage ich ja hier ;) also wie kann ich das cookie dann löschen? die methode die spacke vorschlug funktioniert auch nicht...
-
Also eine kleine Verschlüsselung einzubauen ist kein Problem! Das kannst auch noch am Schluss machen!
Mach einmal bei setcookie den Abstand zu Klammer weg! Vielleicht ist das der Grund!!!
Und falls du willst helf ich dir gerne bei den Sessions!
lg sebi -
du willst einfach nicht das ich cookies nehm oder? ^^
mein plan ist es jetzt erstmal ein ganz einfach loginscript zu machen GANZ einfach... so wies jetzt halt schon fast ist... später möchte ich es etwas kopmlexere natur gestalten neben dem login soll eine checkbox angezeigt werden in der man auswählen kann "remember me" also mit cookie... mit sessions ist das kein problem das hab ch schon mal ausprobiert bei etwas anderem... aber ich hänge irgendwie bei diesen blöden cookies fest... hat jmd ne lsg für mich? bittöö ;) -
Also Sessions sind auf jeden Fall leichter zu handhaben, als Cookies.
Schau dir doch vielleicht das hier mal an: http://php-einfach.de/tuts_php_login.php
Außerdem solltest du dir angewöhnen bei allen Strings auch Anführungszeichen zu setzen. ;) -
wie meinst du das? meinst du " statt '?
ich hab im handbuch gelesen, dass das besser ist da es nciht in den parser gelesen werden muss... oder was meisnt du? strings = text?
achja der link ist sehr gut danke ich werde das später mal ausprobieren! aber der logut wird nicht erklärt... wie kann ich dieses blöde cookie löschen ich probier hier seit anderthalb stunden rumm -.-
Beitrag geaendert: 7.1.2007 16:09:07 von ct2004
Beitrag geaendert: 7.1.2007 16:09:24 von ct2004 -
Ich meinte das eigentlich bezogen auf so Sachen wie $admin = matze; oder setcookie(login, time()+3600);. ;)
-
achso gut ^^
ja ok mach ich :-) danke ^^
so aber der cookie will nicht weg!? ich kann mich nur durch manuelles löschen von ihm trennen -.-
wo werden cookies eigentlich gespeichert?
Lasse ich sie mir mit meinem Firefox Browser anzeigen sind es sher viele u.a. auch meiner... gehe ich aber in das vrogesehene verzeichniss und Windows sind sehr viel weniger Cookies enthalten , auch meiner ist nicht dabei (
C:\Dokumente und Einstellungen\[user]\Cookies
-
achso gut ^^
ja ok mach ich :-) danke ^^
so aber der cookie will nicht weg!? ich kann mich nur durch manuelles löschen von ihm trennen -.-
wo werden cookies eigentlich gespeichert?
Lasse ich sie mir mit meinem Firefox Browser anzeigen sind es sher viele u.a. auch meiner... gehe ich aber in das vrogesehene verzeichniss und Windows sind sehr viel weniger Cookies enthalten , auch meiner ist nicht dabei (
FF speichert die Cookies dort:
C:\Dokumente und Einstellungen\[user]\Anwendungsdaten\Mozilla\Firefox\Profiles\i2x1tks3.default\cookies.txt
Also alle in einer einzigen *.txt-Datei.
C:\Dokumente und Einstellungen\[user]\Cookies
-> Dort speichert soweit ich weiß der IE die Cookies. Und zwar in vielen verschiedenen Dateien. -
ah gut danke!
aber btt: Wielösch ich den cookie nu? -
Hi,
ah gut danke!
aber btt: Wielösch ich den cookie nu?
Cookies kannst du löschen, indem du den Lebensdauer so einstellst, dass die Zeit schon vorbei ist:
setCookie('name','',time() - 60);
mfg,
hr -
deine fehlermeldung kommt daher dass du, nachdem du <head><title> und sonstigem
deinem script sagst er möge dir doch cookies anlegen. das macht er aber nur ohne zu meckern wenn du vor garnichts ausgegebn hast.
problemlösung: du schreibst das mit den cookies noch vor <html>
lg h-brand -
heavyraptor schrieb:
Hi,
ah gut danke!
aber btt: Wielösch ich den cookie nu?
Cookies kannst du löschen, indem du den Lebensdauer so einstellst, dass die Zeit schon vorbei ist:
setCookie('name','',time() - 60);
mfg,
hr
hatte ich eben vergessen. warum so kompliziert mit der haltbarkeit von den keksen?
was hälst du von
unlink ($_COOKIE['name']) ??
viel bequemer und schöner ;)
h-brand -
heavyraptor schrieb:
Hi,
ah gut danke!
aber btt: Wielösch ich den cookie nu?
Cookies kannst du löschen, indem du den Lebensdauer so einstellst, dass die Zeit schon vorbei ist:
setCookie('name','',time() - 60);
mfg,
hr
hatte ich eben vergessen. warum so kompliziert mit der haltbarkeit von den keksen?
was hälst du von
unlink ($_COOKIE['name']) ??
viel bequemer und schöner ;)
h-brand
ähm unlink funktioniert aber doch eigentlich nur wenn sich die datei im selben ordner befindet?! deswegen kommt bei mir auch ein fehler...
- - - - - - - - -
so jetzt hab ich die logout.php nicht mehr includet, d.h. ich rufe sie nicht mehr mit index.php?site=logout auf sondern direkt...
// logout.php
<?PHP setcookie(login, time()-3600); echo "Erfolgreich ausgeloggt"; ?>
Jetzt werden zwar keine fehlermeldungen mehr angezeigt sondern wirklich nur "Erfolgreich ausgeloggt", es wird aber nicht ausgeloggt bzw der cookie bleibt erhalten -.-
ich verzweifel langsam aber sicher wirklich noch... :(
woran liegt das nu wieder? (
matze -
mit unlink $variable löscht du die variable und damit den zugewiesenen Wert.
Der Cookie wird nicht gelöscht da dass nur über den browser geht.
lass dir mal den wert ausgeben der auf dem Cookie drauf steht.
print_r($_COOKIE);
siehe auch http://de3.php.net/manual/de/function.setcookie.php
da stehen hilfreiche beispiele.
h-brand -
Array ( [login] => 1168349263 ) Erfolgreich ausgeloggt
den link kenn ich schon, mit hilfe dessen bin ich erst soweit gekommen ;)
bei unlink komt aber folgender fehler:
Warning: unlink(1168349263): No such file or directory in /srv/www/htdocs/web258/html/matze/php/ct2oo4/logout.php on line 2
und im ahndbuch steht auch das mit unlink datein gelöscht werden
http://de3.php.net/manual/de/function.unlink.php
????????????
//->
sooo jetzt hab ich den logout der login geht abe rnet mehr -.-
login_check.php
<?PHP
$admin = matze;
$pw = test;
if ($username == $admin AND $password == $pw) {
setcookie("login", "", time() + 3600);
header("Location: index.php?site=is_numeric");
}
else { header('Location: index.php?site=no_login'); }
?>
logout.php
<?PHP
setcookie ("login", "", time() - 3600);
echo "Erfolgreich ausgeloggt";
?>
sooo setze ich diesen string ein "" funktioniert der logout der login nicht, setze ich ihn nicht funktioniert der login der logout aber nicht?! woran leigt das nun wieder?
Beitrag geaendert: 9.1.2007 16:22:35 von ct2004
//-> HEY! Ich habs!!! Kraeusi von chattrix hat mir geholfen :-))
und zwar siehts jetzt folgerndermaßen aus:
<?PHP
$name_des_cookies_1 = 'login';
$inhalt = '';
$verfallsdatum = time() - 3600;
setcookie(
$name_des_cookies_1,
$inhalt,
$verfallsdatum
);
echo "Erfolgreich ausgeloggt";
?>
Danke an alle die mir verscuht haben mir zu helfen! danke!
Beitrag geaendert: 9.1.2007 16:52:37 von ct2004 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage