kostenloser Webspace werbefrei: lima-city


Cookies werden nicht gesetzt

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mczernin

    Kostenloser Webspace von mczernin

    mczernin hat kostenlosen Webspace.

    Hallo lc-comunity,
    ich habe dieses php codeschnipsel... irgendwie wird kein cookie gesetzt und daher immer "else" benutzt.

    if(isset($_COOKIE['cookie'])){
        $user = $_COOKIE['cookie'];
        $secret = $_COOKIE['cookie1'];
    }
    else{
       setcookie("cookie", $_GET['u'], time()+3600, "/~rasmus/", ".domain.com", 1);
       setcookie("cookie1", $_GET['s'], time()+3600, "/~rasmus/", ".domain.com", 1);
       $user_id = $_GET['id'];
       $secret_apikey = $_GET['a'];
    }


    ich habe es auch mit
    setcookie("cookie", $_GET['u'], time()+3600, "/");


    probiert...

    Wisst ihr woran der Fehler liegt?
    lg

    Beitrag zuletzt geändert: 22.11.2014 18:18:43 von mczernin
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Wird vor diesem Code-Block noch kein Zeichen ausgegeben? Wenn vorher schon irgendwas ausgegeben wurde (auch wenn es nur ein Leerzeichen, Zeilenumbruch oder sonst was ist), dann wurde der HTTP-Header bereits geschickt und du kannst kein Cookie mehr setzen (was im HTTP-Header übertragen wird).
  4. Autor dieses Themas

    mczernin

    Kostenloser Webspace von mczernin

    mczernin hat kostenlosen Webspace.

    hackyourlife schrieb:
    Wird vor diesem Code-Block noch kein Zeichen ausgegeben? Wenn vorher schon irgendwas ausgegeben wurde (auch wenn es nur ein Leerzeichen, Zeilenumbruch oder sonst was ist), dann wurde der HTTP-Header bereits geschickt und du kannst kein Cookie mehr setzen (was im HTTP-Header übertragen wird).

    Nein es wird nichts über php ausgegeben... es fängt nur eine Funktion an und davor ist der <head> in html. Ich habe jetzt versucht ganz am Anfang der Seite ein Cookie zu setzen... Und es FUNKTIONIERT!

    LG Max
  5. Hallo

    beim Cookie setzen ist der erste Wert (Parameter) der "Name" (Bezeichnung)
    und nur der zweite Parameter ist der Inhalt (value), ....
    setcookie( "Name" , "Wert" );


    ... der dritte Parameter ist dann das Verfalls-Datum (expire date)
    $xpiredate = time()+3600; 
    setcookie( "Name" , "Wert" , $xpiredate );


    ... weitere Argumente (path, domain, secure) siehe PHP Manual: setcookie

    wenn Du mehrere Werte in ein einziges Cookie speichern willst,
    dann musst Du die einzelnen Werte als ein Array übergeben
    weil ja nur 1 Parameter (der zweite) für Inhalte (value) da ist
    $timestamp = time(); 
    $xpiredate = $timestamp+3600; 
    
    // -- zu Speichernde Daten in Array ablegen 
    $set_data = array ( 100, $_GET['u'], 'Infotext', $timestamp ); 
    
    // -- beim Erstellen des Cookie als Value das Array angeben 
    setcookie( "MeinCookie" , $set_data , $xpiredate );


    dann hast Du in Deinem Cookie (Name) die Daten (Value) als Array
    und um Array im Broser auszugeben genügt ein einfaches "echo" nicht

    wenn $_COOKIE["MeinCookie"] ein Array ist, dann geht das so NICHT ....
    .... echo $_COOKIE["MeinCookie"]; ......

    zur Anzeige (Debug) bei Array empfiehlt sich als Ausgabe print_r()

    // -------------------- 
    print '<pre style="margin:2px; padding:4px; text-align:left; background:#DEDEDE; color:#000066;">'."\n";
    print_r($_COOKIE);
    print '</pre>';
    // --------------------


    damit sieht man in der Regel alle Daten auch Arrays und Sub-Arrays, etc.


    Beispiel

    <?php
    // ------------------------------------------------- 
    
    $value1 = "my cookie value"; 
    $value2 = 17; 
    $value3 = time(); 
    
    $val_usr = $_GET['u']; 
    $val_usr = htmlentities($val_usr); 
    
    $val_sec = $_GET['s']; 
    $val_sec = htmlentities($val_sec); 
    
    // ----------------------------------- 
    
    $arr_data1 = array( $val_usr, $value1, $value2, $value3 );  // ---- Array 1 ---- 
    $arr_data2 = array( $val_sec, $value1, $value2, $value3 ); // ---- Array 2 ----
    
    // ----------------------------------- 
    $timestamp = time(); 
    $expir_date = ($timestamp + 3600); 
    
    setcookie( "TestCookie1" , $arr_data1 , $expir_date);   // ---- Cookie1 = (Array 1) ---- 
    setcookie( "TestCookie2" , $arr_data2 , $expir_date);   // ---- Cookie2 = (Array 2) ----
    setcookie( "TestCookie3" , "Blablabla." , $expir_date);   // ---- Cookie3 = (String) ----
    
    // ------------------------------------------------- 
    ?>
    
    <html>
    <body>
    
    <br /> TEST 
    
    <?php
    // ------------------------------------------------- 
    $cname1 = 'TestCookie1'; 
    // ------------------------------------------------- 
    if (isset($_COOKIE[$cname1])) { 
        if (is_array($_COOKIE[$cname1]) && !empty($_COOKIE[$cname1])) { 
           echo " <br /> COOKIE:: ".$cname1." \n";
            foreach ($_COOKIE[$cname1] as $name => $value) { 
              echo " <br /> KEY: ".$name." --- VALUE: <strong>".$value."</strong> \n";
            } 
        } 
    } 
    // ------------------------------------------------- 
    
    print '<br />'; 
    print '<br />'; 
    print '<br /> Alle COOKIE Daten '; 
    print '<br />'; 
    print '<pre style="margin:2px; padding:4px; text-align:left; background:#DEDEDE; color:#000066;">'."\n"; 
    print_r($_COOKIE); 
    print '</pre>'; 
    
    // ------------------------------------------------- 
    ?>
    
    <br />
    <br />
    
    </body>
    </html>






    Beitrag zuletzt geändert: 25.11.2014 12:38:19 von seitetop
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!