Cookie-Script

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

  • Cookie-Script

    Hi Leute,

    ich bastle gerade an einem Script herum, dass Klicks zählen soll. Neben einer IP-Sperre (die habe ich schon) hätte ich dazu noch ganz gerne eine Cookie-Sperre, aber irgendwie bekomm ich die ums verrecken nicht hin...

    der script wird folgendermaßen aufgerufen:
    script.php?refer=$url&name=$name

    jetzt soll in einen Cookie für jeden Aufruf nach geschaut werden ob die Seite $url schon einmal aufgerufen worden ist, falls nicht wird der Cookie gesetzt, oder geupdated (!! es sollen ja nicht bestehende aus dem Cookie gelöscht werden) werden, so dass beim nächsten Aufruf, falls der Cookie besteht und sich im Inhalt u.a. auch die $url bzw $name (eins von beiden sollte im cookie gespeichert sein, es ist egal welches) dass dann halt die Zähl-Funktion übersprungen wird...

    könnt ihr mir helfen?

    thx
    ethan

  • #2
    Hi!

    Ich hoffe, ich habe dich jetzt richtig verstanden:
    Wenn Cookie mit name oder url dann nicht counten, sonst Cookie setzen oder updaten!

    Also ich sehe da zwei Möglichkeiten:
    1) Das Arbeiten mit $HTTP_COOKIE_VARS oder
    2) das Arbeiten mit Sessions.

    Für 1)
    In php.ini in windows/system(32) auf track_vars on setzten.
    PHP-Code:
     if (isset ($HTTP_COOKIE_VARS)){
              
    reset ($HTTP_COOKIE_VARS);
              foreach (
    HTTP_COOKIE_VARS as $cookie=>$value){
                  
    // bei einer var nur den Teil
                    
    if ($cookie!="cookie_name"&&$value!=$url //bzw $name) {
                          
    count++;
                          
    setcookie("cookie_name"$urltime()+3600/* Dauer der Gültigkeit*/,""/* für welches Verzeichnis gültig*/,""/* gült. Domain*/,0/*1 = nur m. SSL erlaubt */);
             }elseif(
    $cookie){
             
    // cookie bereits da - mach was
             
    }

    Willst du nur eine Cookievariabel speichern, kannst du dir $HTTP_COOKIE_VARS schenken. Dies Frakment muß am Anfang des Scripts stehen (headerfkt.), also bevor eine Ausgabe erfolgt.

    Wenn das nicht klappen sollte, versuche Sessions.
    Warum hast du den Thread eigentlich hier eingeornet, nicht im PHP-Forum..?!

    Hoffe, konnte dir helfen..

    Blaster
    Zuletzt geändert von Blaster; 22.04.2002, 23:57.
    Yuppi, endlich Elite ...

    Kommentar


    • #3
      irgendwie hab ich mich verklickt was das Forum angeht *unschuldigguck* vielleicht wäre ein Mod so nett

      ähm folgendes:

      function tage ($anzahl) {
      $sekunden = time()+ 3600 * 24 * $anzahl;
      return $sekunden;
      }

      $url = "/pfad/zum/ordner/";

      if (isset ($HTTP_COOKIE_VARS)){
      reset ($HTTP_COOKIE_VARS);
      foreach ($HTTP_COOKIE_VARS as $cookie=>$value){
      if ($cookie!="banner"&&$value!=$banner_name)
      {
      setcookie("banner", $banner_name, tage(365),$url);

      $filename = "stats/$banner_name.dat";
      list($counter) = @file($filename);
      $counter++;
      $f = fopen($filename,"w");
      if ($f)
      {
      fwrite($f,$counter);
      fclose($f);
      }

      }
      }
      }

      so sieht jetzt der Source Code aus, und es wird auch immer schön ein Cookie gesetzt, aber irgendwie zählt den Counter doch immer eins weiter wenn man das Script nocheinmal aufruft und den gleichen Banner-Namen mitschickt

      ich habe jetzt nicht mehr $refer als Name genommen, weil ich dachte, dass es vielleicht ein Problem darstellt wenn die Variable http://www.asdsadad.de ausschaut, aber genützt hat das nicht wirklich

      Kann mir einer sagen wo mein Fehler liegt?
      thx ethan

      Kommentar


      • #4
        Original geschrieben von ethan
        irgendwie hab ich mich verklickt was das Forum angeht *unschuldigguck* vielleicht wäre ein Mod so nett
        Ich war so nett
        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