tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
16
ZUGRIFFE
734
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Athor Athor ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Beiträge
    26
    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
    Dani
    Geändert von Athor (23.05.07 um 09:46 Uhr)
     

  2. #2
    Gunah Gunah ist offline Mitglied Brokat
    Registriert seit
    Feb 2005
    Beiträge
    371
    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...:
    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>
    musst evtl anpassen...
    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

  3. #3
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    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:
    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;
    ?>
    Bei mir wird alles wunderbar geloescht, garkeine Probleme.
     
    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 Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  4. #4
    Athor Athor ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Beiträge
    26
    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)
     

  5. #5
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Zitat Zitat von Athor Beitrag anzeigen
    Danke Dir, das mit dem Javascript läuft.
    Bei Usern die JavaScript deaktiviert haben wird es nicht laufen.
     
    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 Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  6. #6
    Gunah Gunah ist offline Mitglied Brokat
    Registriert seit
    Feb 2005
    Beiträge
    371
    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 Gunah
     
    Meine Private Homepage: www.gunah.eu

  7. #7
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    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.
    Christopher Perrin bedankt sich. 
    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 Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  8. #8
    Gunah Gunah ist offline Mitglied Brokat
    Registriert seit
    Feb 2005
    Beiträge
    371
    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

  9. #9
    Athor Athor ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Beiträge
    26
    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"
    PHP-Code:
    <?php       
       setcookie
    ("test""Hallo"time() + 3600);
       
    header("Location: index.php");      
    ?>
    1 -> index.php start
    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)
     

  10. #10
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Probier mal das hier: cookietest.php
    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;
    }
    ?>
    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 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 Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  11. #11
    Gunah Gunah ist offline Mitglied Brokat
    Registriert seit
    Feb 2005
    Beiträge
    371
    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

  12. #12
    Athor Athor ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Beiträge
    26
    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.


    Zitat Zitat von Gunah Beitrag anzeigen
    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...
    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)
     

  13. #13
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    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 Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  14. #14
    Athor Athor ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Beiträge
    26
    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.
     

  15. #15
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    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 Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 07.11.10, 19:51
  2. beim starten kommt Fehler "Die Anfrage wird nicht unterstützt"
    Von Reticent im Forum .NET Web und Kommunikation
    Antworten: 5
    Letzter Beitrag: 01.12.06, 08:38
  3. header("LOCATION ... nicht
    Von snackx im Forum PHP
    Antworten: 9
    Letzter Beitrag: 12.10.05, 08:30
  4. Antworten: 2
    Letzter Beitrag: 09.08.05, 14:01
  5. Header("Location http://...") nicht
    Von Fassbrause im Forum PHP
    Antworten: 2
    Letzter Beitrag: 31.08.03, 19:00