-
Guten Morgen liebe Mitsuchtis

Folgendes Problem, wenn ich ein Cookie lösche mittels setcookie("datvon", "", time() - 3600); und anschliessend der Befehle header("Location: index.php") mache, wird zwar die Seite index.php dargestellt, jedoch mein Cookie wird nicht gelöscht.
Wenn ich anstatt header(xyz) folgendes mache : echo '<meta http-equiv="refresh" content="0;url=index.php">' wird das Cookie ohne Probleme gelöscht, jedoch sieht man halt einen Moment lang eine leere Seite
mein gesamter Code von logout.php :
<?php
ob_start();
session_start();
//Session zurücksetzen
$_SESSION["login_mand"] = 0;
$_SESSION["login_pers"] = 0;
setcookie("datvon", "", time() - 3600);
session_destroy();
//header("Location: index.php"); // Cookie wird nicht gelöscht hiermit !!
echo '<meta http-equiv="refresh" content="0;url=index.php">';
ob_end_flush();
?>
Cookie wird gesetz mittels : setcookie("datvon", $rcdatvon, time() + 3600);
Bin grad etwas ratlos und weiss nicht wo ich den Fehler finden soll.
Ich muss dazu noch sagen dass index.php meine Hauptseite ist, in welche verschiede php's mittels include() eingebunden werden. In einer dieser Include's ist ein Link welcher auf logout.php zeigt.
Hoffe dass Ihr mir nen Tip habt wo das Problem liegen könnte.
Viele Dank
Grüsse
DaniGeändert von Athor (23.05.07 um 09:46 Uhr)
-
warum benutz du die session und eigene kekse?
header und setcookie arbeiten irgendwie nich richtig zusammen bei mir kahmen sogar fehlermeldungen
hier die weiterleitung geht sonst auch noch...:
musst evtl anpassen...Code :1 2 3 4 5 6 7 8 9 10 11
<html> <body> <script language="javascript"> <!-- window.location.href="index.php"; // --> </script> </body> </html>
das leitet sofort weiter...
weiss nur grad nicht und find es nicht wie ich das gelöst hab..Geändert von Gunah (23.05.07 um 12:47 Uhr)
Meine Private Homepage: www.gunah.eu
-
Ich nutze Cookies zusaetzlich zur Session um ein "dauerhaftes" Login zu ermoeglichen, so wie es ja hier im Forum auch gemacht wird.
Moeglicherweise hat unser Threadersteller auch sowas auf seiner Seite.
Als Vergleich mal meine logout.php:
Bei mir wird alles wunderbar geloescht, garkeine Probleme.PHP-Code:<?php
if (isset($_COOKIE['logincode']))
{
setcookie('logincode',false,time()-3600);
$sqldb->query("update `users` set `logincode`=null where `id`='".$_SESSION['id']."'");
}
session_regenerate_id(true);
session_destroy();
$sqldb->query("update `sessions` set `userid`='0' where `sessionid`='".quote_string($sessionid)."'");
header('Location:'.$sessioncheckcaller);
exit;
?>PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Oh mann... manchmal sieht man den Wald vor lauter Bäume nicht mehr

Ich kann ja die Sachen in die Session packen und muss mir gar keine Cookie's machen, jedensfalls für einige Sachen...
Für die Sprachsteuerung brauch ich nachwievor Cookies, da dies über das Login/Logout hinweg gehen. Aber das funktionert eigentlich auch ganz gut, und hatte mit dem oben genannten Problem nichts zu tun.
Danke Dir, das mit dem Javascript läuft. Hätte auch selbst drauf kommen sollen *schäm*
Danke für Eure Hilfe.Geändert von Athor (23.05.07 um 13:00 Uhr)
-
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
da muss ich dir (Dennis Wronka) auch rechtgeben ambesten fügst du zu dem code von mir einen Link mit drann also ganz normalen a-tag damit es für user auch geht die js deaktiviert haben
MfG GunahMeine Private Homepage: www.gunah.eu
-
Es funktioniert bei mir doch auch (siehe meinen Code den ich oben gepostet hab), entsprechend waere es vielleicht gut zu klaeren wo genau das Problem liegen koennte statt gleich Ausweichloesungen zu suchen.
Hierbei koennte z.B. ein Programm wie Wireshark helfen, dort kann man dann z.B. sehen ob das Set-Cookie-Header in der Antwort enthalten ist oder nicht.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
hmm doch bei mir ging es auch mit dem header()... welche keske werden denn nicht gelöscht? hier sonst evtl ne lösung: setzte dieses hier vor header() " ob_end_flush();" satt dort drunter...
aber ich habe eben nochmal die kekse vom board hier angeguckt die zerfallen nach 1 Jahr... (des letzen besuches)Meine Private Homepage: www.gunah.eu
-
Also mir hat das jetzt doch keine Ruhe gelassen und ich hab mal was ganz simples versucht:
Datei "Index.php"
PHP-Code:<html>
<?php
if (isset($_COOKIE["test"]))
echo "Cookie vorhanden!";
else
echo "Kein Cookie vorhanden!";
?>
<body>
<a href='cookie.php'>Mach ein Cookie</a>
</body>
</html>
Datei "cookie.php"
1 -> index.php startPHP-Code:<?php
setcookie("test", "Hallo", time() + 3600);
header("Location: index.php");
?>
2 -> Link drücken und schauen was passiert.
Bei mir kommt immer dass "KEIN" Cookie vorhanden ist.
Wenn ich jedoch die header()-Zeile rausnehme und dann nach dem Klick auf den Link nochmals die index.php aufrufe, kommt dass das Cookie vorhanden ist.
Hab PHP 5.2.1 momentan am laufen zusammen mit IIS (Win2k)
Könnte es ein Problem damit geben?
Grüsse
Dani
Edit : ob_start / flush hat keine auswirkung bei mir.
Teste mit IE6 und Firefox 2 verhalten sich identisch.Geändert von Athor (23.05.07 um 13:35 Uhr)
-
Probier mal das hier: cookietest.php
Dieser Code ist ungetestet (hab den mal so spontan zusammengeschustert) aber der sollte eigentlich einen Cookie setzen, dann loeschen und anschliessend anzeigen ob er noch da ist.PHP-Code:<?php
if (isset($_GET['check']))
{
setcookie('testcookie','',time()-3600);
header('Location:cookietest.php?show');
exit;
}
elseif (isset($_GET['show']))
{
if (!empty($_COOKIE['testcookie']))
{
echo 'Cookie "testcookie" ist vorhanden';
}
else
{
echo 'Cookie "testcookie" ist nicht vorhanden';
}
}
else
{
setcookie('testcookie','lalaland',time()+3600);
header('Location:cookietest.php?check');
exit;
}
?>PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
hol dir ambesten mal einen Cookie Editor für den FF da kannst du genau sehen ob da wirklich ein Cookie ist... is nur son vorschlag zu ausprobieren...
Meine Private Homepage: www.gunah.eu
-
Cookie "testcookie" ist nicht vorhanden

Werd wohl mal Apache installieren müssen und es damit ausprobieren. Da das Problem Browser-Unabhängig zu sein schein, muss es wohl entweder die php-dll oder der Web-Server sein.
Firefox -> Einstellungen -> Datenschutz -> Cookie anzeigen
Dort wird alles schön aufgelistet und das Cookie ist nicht gesetzt, es ist also nicht der Browser der einfach was falsches anzeigt...oder die Siete nicht aktuell ist.Geändert von Athor (23.05.07 um 13:50 Uhr)
-
Also das gerade gepostete Script sollte eigentlich funktionieren. Hab es grad mal kurz getestet und mir wird ausgegeben, dass der Cookie nicht existiert.
In Wireshark konnte ich hingegen eindeutig sehen, dass der Cookie gesetzt, wieder uebertragen und anschliessend geloescht wurde.
Es funktioniert also.
Probier es also mal bei Dir.
Falls es nicht funktioniert dann koennte es entweder mit PHP-Einstellungen, einem Bug in der PHP-Version (ich nutze 5.2.0) oder, was ich im Moment sogar vermute, am IIS liegen.
Nachtrag: Die Ausgabe, dass der Cookie nicht vorhanden ist ist richtig, denn er wird ja gesetzt und beim naechsten Aufruf wieder geloescht.
Nachtrag 2: Es ist natuerlich im Grunde auch moeglich, dass der Cookie hier garnicht gesetzt wird.
Entsprechend waere eben eine Beobachtung mit einem Tool wie Wireshark sinnvoll.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Ja das stimmt Dennis, aber nimm mal die Zeile raus an der du das Cookie löschst.
Dann müsste es doch vorhanden sein, oder?
Ist es aber bei mir nicht.
Das Problem bei deinem Testscript ist der, dass wenn er das Cookie gar nicht erst setzen kann, ers auch nicht löschen kann, am Schluss da Cookie nicht vorhanden ist
Du weisst nun also nicht, ob es funktioniert hat, oder ob nicht
Jedenfalls, ich hab das löschen des Cookies rausgenommen und das Cookie war nicht da.
Werd nachher mal Apache installieren und das ganze mal testen. bzw. ich such mal wo ich das besagte Tool von Dir runterladen kann als erstes.
-
Ich weiss, dass es bei mir wie erwartet gearbeitet hat da ich eben die Kommunikation mit Wireshark beobachtet habe, und dort konnte ich eben sehen, dass der Cookie gesetzt wurde und anschliessend vom Browser wieder an den Server geschickt wurde.
Entsprechend habe ich ja bereits mehrfach auf Wireshark hingewiesen, denn der kann bei der Findung des eigentlichen Problems durchaus hilfreich sein.PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
Ähnliche Themen
-
Wenn "include" verwendet wird hab ich keine "body" Ansicht mehr
Von solala123 im Forum PHPAntworten: 12Letzter Beitrag: 07.11.10, 19:51 -
beim starten kommt Fehler "Die Anfrage wird nicht unterstützt"
Von Reticent im Forum .NET Web und KommunikationAntworten: 5Letzter Beitrag: 01.12.06, 08:38 -
header("LOCATION ... nicht
Von snackx im Forum PHPAntworten: 9Letzter Beitrag: 12.10.05, 08:30 -
"Header Location" online gehts nicht lokal ja
Von xtratz im Forum PHPAntworten: 2Letzter Beitrag: 09.08.05, 14:01 -
Header("Location http://...") nicht
Von Fassbrause im Forum PHPAntworten: 2Letzter Beitrag: 31.08.03, 19:00



1Danke

Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren