[PHP] cookie

Dieses Thema im Forum "Webentwicklung" wurde erstellt von onip, 12. Dezember 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 12. Dezember 2007
    cookie

    hallo,

    irgendwas stimmt hier nicht

    Code:
    <?php
     $timestamp = time() + (60*60*24*7*4);
     $cookie = $_COOKIE['xxx'];
     
     if (strlen ($cookie) > 0){
     echo $cookie;
     }else {
     setcookie("xxx", "yyy", $timestamp);
     if(!isset($_COOKIE['xxx'])) {
     echo "User hat den Cookie nicht akzeptiert\n";
     }
     }
    ?>
    
    es soll kontrolliert werden ob ein cookie vorhanden ist,
    wenn nicht soll eins gesetzt werden.
    das funktioniert eigentlich auch, aber wenn gesetzt wird,
    kommt die meldung das keins gesetzt wurde.
    das cookie liegt trotzdem vor. führe ich das script erneut aus,
    wird das cookie gelesen. nur das erste mal macht probleme.
    was ist an dem script verkehrt?
     
  2. 12. Dezember 2007
    AW: cookie

    Der Client sendet das Cookie ueber die HTTP-Header. Der Server setzt das Cookie aber erst nach dem der Client die Seite schon angefordert hat. Daher geht das erst beim 2. Aufruf.
     
  3. 12. Dezember 2007
    AW: cookie

    es ist desweiteren auch nicht möglich zu testen, ob der user ihn angenommen hat
    sollte das nicht der fall sein, hat der user halt pech gehabt
     
  4. 12. Dezember 2007
    AW: cookie

    wozu strlen($cookie)???
    so müsste es aussehen:
    PHP:
    <? php
    if(isset( $_COOKIE [ 'xxx' ])) {
      echo 
    $_COOKIE [ 'xxx' ];
    } else {
      
    setcookie ( "xxx" , "wert" ,( time ()+ 3600 ));  // für 1 Stunde
    }
    // testen...
    echo (isset( $_COOKIE [ 'xxx' ])? $_COOKIE [ 'xxx' ]: "nicht gesetzt" );
    ?>
     
  5. 12. Dezember 2007
    AW: cookie

    danke für eure hilfe.
     
  6. 12. Dezember 2007
    AW: cookie

    doch das geht schon?
    PHP:
    <? php
    if(!isset( $_GET [ 'test' ])) {
        @
    setCookie ( 'test_cookie' '123' time () + ( 60 * 60 * 2 ),  '/' );
        
    header ( 'Refresh: 2, '  $_SERVER [ 'PHP_SELF' ] .  '?test=1' );
        print 
    'Bitte warten...' ;
    } else {
        if(isset(
    $_COOKIE [ 'test_cookie' ])) {
            print 
    'Du kannst Cookies speichern!' ;
            @
    setCookie ( 'test_cookie' 'exp' time () -  3600 '/' );
        }
        else print 
    'Du kannst keine Cookies speichern...' ;
    }
    ?>
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.