Problem mit Cookies

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit Cookies

    Hallo,

    ich schreibe gerade ein Downloadscript in PHP, wo die User unter anderem die downloads bewerten können. Das funktioniert eigtenlich auch, nur verwende ich dazu Cookies, damit jeder User einen Download nur einmal bewerten kann. Das Problem ist nun, das ich das Cookie mit Hilfe der Download-ID erstelle (die daten des downloads werden aus einer MySQL Datenbank geholt). Also so :

    Code:
    if ($command == "bewerten"){
    
        # Verbindung zur Datenbank aufbauen #
        $connect = mysql_connect( "$db_host", "$db_user", "$db_pass" );
        if (! $connect)
        die( "Keine Verbindung zu MySQL");
    
        # Wenn Verbindung hergestellt, Datenbank auswählen #
        mysql_select_db( $db_name )
        or die ( "Keine Verbindung zur Datenbank $db_name" );
        
        # Bewertungsdaten updaten #
        $ergebnis = mysql_query( "SELECT * FROM kc_download WHERE id='$id'" );
        $datensatz = mysql_fetch_array( $ergebnis );
        $note=$datensatz[bewertung] + $dlnote;
    
        $update = "UPDATE kc_download SET bewertung='$note' WHERE id=$id";
        mysql_query( $update, $connect );
        
        $ergebnis2 = mysql_query( "SELECT * FROM kc_download WHERE id='$id'" );
        $datensatz2 = mysql_fetch_array( $ergebnis2 );
        $anz_bewerter=$datensatz2[anz_bewerter] + 1;
    
        $update2 = "UPDATE kc_download SET anz_bewerter='$anz_bewerter' WHERE id=$id";
        mysql_query( $update2, $connect );
        
        mysql_close ( $connect );
    
        setcookie( "check", "$id", time()+3600*48 );
        echo "<font face=\"Arial, Helvetica, sans-serif\" size=\"2\"><center><b>Wir haben Ihre Bewertung erhalten.<br><br>Vielen Dank !</b><br><br><br><br><a href=\"\" onClick=\"JavaScript:self.close()\">Fenster schliessen</a></center></font>";
        
    }
    Leider wird mit diesem Code das Cookie jedesmal überschrieben, also immer nur die letzte Bewertung als Cookie gespeichert.

    Wie kann ich das ändern ? Ich komm einfach nicht drauf


    THX !

    ZuLtAn
    -=Es gibt Leute, die können Ihren Stammbaum bis zu denen zurückverfolgen, die noch darauf saßen=-

  • #2
    Versuch mal, "Arrays" in das Cookie zu schreiben:

    SetCookie("downID[$id]",1,Time()+3600*48);

    Jetzt passiert folgendes:
    $id = 12 // Beispiel!

    SetCookie("downID[$id]",1,Time()+3600*48);

    jetzt kannst du jeden Download mit downID[$id] abfragen, ob der schon im Cookie existiert.

    Dank aber daran, daß Cookies nur eine bestimmte größe erreichen können, bzw. dürfen.

    Außerdem hast du so das Problem, das er dir Mehrere Werte in ein Cookie speichert, die Time()+3600*48 immer für alle Werte gilt (bin mir da nicht 100% sicher!), also immer Time()+3600*48 seit dem letzten!! download. Aber wie gesat, mit der Aussage bin ich mir nicht ganz sicher, probierst das am besten mal aus! Vielleicht weiß das auch sonst einer aus dem Forum ??

    gruss

    Kommentar


    • #3
      Es gibt da zwei sehr schöne Befehle für Arrays in Verbindung mit Cookies:
      serialize und unserialize.

      Unbedingt anschauen!
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar

      Lädt...
      X