Ankündigung

Einklappen
Keine Ankündigung bisher.

Spamschutz....

Einklappen

Neue Werbung 2019

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

  • Spamschutz....

    Hi!
    Ich wollt mein Spamschutz im Gästebuch darum erweitern, dass er alle Beiträge daraufhin prüft, ob sie innerhalb der letzten stunde von der ip, die nun versucht einen eintrag zu schreiben, gescrieben wurden....

    es funktioniert soweit, dass er den letzten (den neusten) eintrag darauf überprüft....
    aba das sind eben nicht alle -.-
    so könnten sich nämlcih 2 übeltäter abwechseln, und mein gästebuch zuspammen....

    hier is der code, soweit wie ich ihn hab:
    PHP-Code:
    $conn mysql_connect($dbserver,$dbuser,$dbpass);
                    
    mysql_select_db($dbname,$conn);
                    
    $query1 "select ip,datum from gb order by id desc limit 1";
                    
    $iptest mysql_query($query1$conn);
                    while (
    $zeileholen mysql_fetch_array($iptest,MYSQL_ASSOC))
                    {
                        if (
    $zeileholen['ip'] == $_SERVER['REMOTE_ADDR'] && (strtotime(now)-strtotime($zeileholen["datum"])) <= 3600 
                        {
                            
    $diff = (strtotime(now)-strtotime($zeileholen["datum"]));
                            
    $diff round($diff 60);
                            
    $diff 60 $diff;
                            echo
    '<script>alert("Du kannst nicht so schnell hintereinander Beiträge schreiben..... \n Du musst noch '$diff .' Minuten warten!")</script>';
                            echo 
    '<script> history.back() </script>';
                            
    mysql_close($conn);
                            die();
                        }
                    } 


  • #2
    Du willst alle Datensätze, bei denen die IP einem bestimmten Wert entspricht und in einer bestimmten Zeitspanne liegt. Laß das mysql machen.
    http://www.w3schools.com/sql/sql_where.asp
    http://www.w3schools.com/sql/sql_between.asp
    http://dev.mysql.com/doc/refman/5.0/...functions.html

    Kommentar


    • #3
      aba ich verstehe nicht, warum es nicht so funktioniert wie ich es vorher hatte......

      und könntest du mir vielleicht was das mysql date and time angeht, ein beispiel geben, dass sich nur auf mein problem bezieht?

      Kommentar


      • #4
        select ip,datum from gb order by id desc limit 1
        Du holst nur einen Datensatz ab (limit 1) und das ist der mit der höchsten id (order by id desc)

        Welcher Feldtyp ist datum in der Tabelle?

        Kommentar


        • #5
          is datetime.....

          Kommentar


          • #6
            Code:
            SELECT COUNT(id) FROM gb WHERE ip = '$ip' AND UNIX_TIMESTAMP(datum) >= (UNIX_TIMESTAMP() - (60 * 60))
            Geht wohl auch ohne es in einen Unix-Timestamp umzuwandeln, weiß aber nicht wie.

            Darauf setzt du ein mysql_query() und dann ein mysql_result($mysq_query, 0).
            Die zurückgegebene Zahl ist 0 wenn es keine solche IP gibt, ansonsten 1.

            Kommentar


            • #7
              herhe danke =)

              ist diese variante schneller als meine oder wo liegen da die vorteile?

              Kommentar


              • #8
                Die komplette Tabelle gb wird bei deiner Variante an PHP übergeben, bei mir wird nur eine Zahl. Bei einem kleinen Gästebuch mag das nicht so ins Gewicht fallen, aber sobald es größer wird merkt man den Unterschied schon.

                Faustregel: Was man mit MySQL berechnen lassen kann, sollte man damit auch berechnen.

                Abgesehen davon ist mein Code viel kürzer.

                Kommentar


                • #9
                  hmm und wie sieht das dann in meinem script integriert aus???

                  Kommentar


                  • #10
                    Du fällst mir langsam als fauler uneigenständiger Poster auf, GrungeRocker.
                    Oben steht doch ein offenbar funktionierender Code (ich deute das mal aus deinem Danke). Mit Beschreibung!
                    Was erwartest du jetzt für Arbeit von uns?

                    Kommentar


                    • #11
                      ihr kriegt auch kekse

                      nee das problem is halt nur kA
                      ich will das projekt fertig stellen, und muss noch was in cpp für meinen prof machen....
                      das is grae irgendwie sooo viel.....
                      und da gibt es ja noch die freundin *mitleidsnummer schieb*
                      xD
                      nee da ich noch nicht soooo unendlich viel von mysql weiß, will ich da nicht lange rumprobieren müssen....
                      aber irgendwie war das alles doof, weil ich das erst im moment gepeilt hab....
                      das is ja ein query xD
                      nya ok hat sich alles gekläart xD
                      danke Zergling xD *keks rübergeb*

                      Kommentar

                      Lädt...
                      X