overfloading verhindern im GB

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

  • overfloading verhindern im GB

    ok also ich wollt mal fragen ob ihr mir helfen könnt?
    Ich hab ein Gästebuuch geschrieben.
    Hab bis jetzt ein paar Schutzmechamismen eingebaut, wie email überprüfung und abfrage ob name angegeben ist.
    Dann habe ich noch eingebaut, dass seien mit je 10 beiträgen erzeugt werden. Nun wollte ich was gegen spamer machen.
    Ich hab mir gedacht, dass man in die session die aktuelle zeit hineinschreiben kann und halt beim nächsten mal überprüft ob 60 sek vorbei sind.

    PHP-Code:
     if(!isset($_SESSION["time"]) or (!($_SESSION["time"]==NOW()+60 sec))){
              
    $_SESSION["time"]=NOW();
             
    //eintrag wird gesendet
          

    also so in etwa

    aber wie genau ka

  • #2
    Macht imho so keinen Sinn. Weil du den Eintrag auch dann zulässt wenn die Session nicht exisitert. Dann wird der Spammer jeden Eintrag ohne Session ID senden und du lässt den gewähren...
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Jo, als wenn ein Spammer immer die gleiche Session verwenden würde...

      Aber such mal im Forum zu dem Thema, das Problem gibts ja schon recht lange.

      Kommentar


      • #4
        Stichwort bei der Suche ist "Captcha"
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          kann nicht einfach ienen nen code beispiel posten? oder nen link zu ienem

          Kommentar


          • #6
            kann nicht einfach ienen nen code beispiel posten? oder nen link zu ienem
            Kannst du denn nicht mal den benutzen und das Stichwort 'flooding captcha' eingeben, um danach zu suchen. Wir hatten hier im Forum mal was dazu, da bin ich sicher.

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              ja hab ich ja aber da kam nix bei raus. ... naja dann aufs neue suchen

              Kommentar


              • #8
                Hier findest du was

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  ok andere Taktik

                  könnt ihr mir dabei helfen... ich will die aktuelle zeit in die Session schreiben und wenn beim nächsten aufruf noch keine 60 sec vorbeisind soll der mir sagen "bitte noch warten". Könnt ihr mir dabei helfen?

                  Kommentar


                  • #10
                    PHP-Code:
                    $_SESSION['zeit'] = time(); 
                    Die if-Bedingung bei der Auswertung überlasse ich dir selber

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      PHP-Code:
                      if(!isset($_SESSION['date'])) $_SESSION['date'] = date('c');

                      if(
                      strtotime($_SESSION['date']) > strtotime('-1 minute'))
                      {
                        echo 
                      "Bitte warten!";
                      }else{
                        echo 
                      "foo - bar";
                        
                      $_SESSION['date'] = date('c');

                      mfg
                      Freedom is a state of mind. Not a state in which we live.

                      troxdev.ch | animefieber

                      Kommentar


                      • #12
                        Original geschrieben von jahlives
                        Hier findest du was

                        Gruss

                        tobi
                        danke hatte ich überlesen

                        Kommentar


                        • #13
                          Original geschrieben von jahlives
                          PHP-Code:
                          $_SESSION['zeit'] = time(); 
                          Die if-Bedingung bei der Auswertung überlasse ich dir selber

                          Gruss

                          tobi
                          mah ich überlese grad alles
                          PHP-Code:
                          $_SESSION['zeit'] = time(); 

                          hatte ich auch shcon herraus gefunden mein problem ist ja die if abragerei

                          EDIT:
                          Gut also jetzt weiß ich immerhin schonma ,dass die aktuelle zeit in sec ausgegeben wird, und da ich ja nicht ganz dumm bin dürfte ich es nun hinkriegen. Wenn dann poste ich ma den Code falls andereuser das ma wiessen wollen
                          Zuletzt geändert von florian1x; 27.12.2006, 12:06.

                          Kommentar


                          • #14
                            So funktioniert es bei mir;

                            PHP-Code:
                            if((time()-$_SESSION["zeit"])<=60){
                                      echo 
                            "Du musts mindestens 60 sec warten.<p>";
                            }else{
                                      echo 
                            "Funktioniert";
                                      
                            $_SESSION['zeit'] = time();

                            Kommentar


                            • #15
                              Und was machst du wenn keine Session ID geschickt wird ? Ich tippe drauf, dass du dann direkt in den else-Zweig reinkommst. Aber probiers mal und teile es uns mit.

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X