Reload-Sperre

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

  • Reload-Sperre

    Moin Moin,
    ich habe ein Kontaktformular programmiert und möchte nun noch eine Reload Sperre einbauen, damit eine Mail bei einem Reload nicht mehrmals abgeschickt wird.

    Ich habe nun folgenden Code:
    PHP-Code:
    <?php

    # Verbindung zur MySQL Datenbank herstellen

    $DatabasePointer mysql_connect("localhost""User""Passwort");

    mysql_select_db("DB_NAME"$DatabasePointer);



    # Variablen definieren

    $Zeit time();

    $Reloadzeit 86400;

    $Loeschen $Zeit-$Reloadzeit;

    $IP $_SERVER['REMOTE_ADDR'];



    # Alte IPs löschen

    mysql_query("DELETE FROM IP WHERE Zeit<'".$Loeschen."'"$DatabasePointer);



    # Gesperrte IP abrufen

    $GesperrteIPs mysql_query("SELECT IP FROM IP where IP='".$IP."'"$DatabasePointer);



    # Counterstand erhöhen

    if ((mysql_num_rows($GesperrteIPs) < 1) && !isset($_COOKIE['Reloadsperre']))

    {

    mysql_query("INSERT INTO IP (Zeit, IP) VALUES (\".$Zeit.\", \".$IP.\")"$DatabasePointer);

    setcookie("Reloadsperre"$IPtime()+$Reloadzeit);

    }

    ?>

    <html>



    <head>

    <title>Reloadsperre</title>

    </head>



    <body>

    Test

    </body>



    </html>
    Trotzdem erscheint folgender Fehler:

    Code:
    Parse error: syntax error, unexpected T_VARIABLE in /Pfad/Angabe/zur/Datei.php on line 21
    Ich finde den Fehler nicht...

    Vielen Dank für eure Hilfe.

  • #2
    PHP-Code:
    mysql_query("INSERT INTO IP (Zeit, IP) VALUES (\".$Zeit.\", \".$IP.\")"$DatabasePointer); 
    Ist das die Zeile? Guck dir das Syntaxhighlighting an, dann wirst du den Fehler schon sehen!

    Kommentar


    • #3
      Fehlermeldung verschwunden...Reloadsperre: Fehlanzeige

      Okay...
      Danke für den Tipp mit dem Syntaxhighlighting...
      Ich hatte die Anführungszeichen (") falsch gesetzt...Die Zeile sieht jetzt so aus:
      PHP-Code:
      mysql_query("INSERT INTO IP VALUES (\".$Zeit.\", \".$IP.\") $DatabasePointer"); 
      Allerdings funktioniert die Reloadsperre nicht so richtig.
      Ich kann die Seite problemlos mehrmals laden, was ja so nicht sein soll.

      Weiß einer von euch warum???

      Kommentar


      • #4
        PHP-Code:
        mysql_query("INSERT INTO IP (Zeit, IP) VALUES (".$Zeit.", '".$IP."')"), $DatabasePointer); 
        ........
        Liebe Grüße,
        SteKoe!

        PHP Tutorials
        Peter Kropff | Quakenet | Schattenbaum.net

        Kommentar


        • #5
          Nein, das ist immer noch nicht richtig!

          Btw: mysql_error schon mal gesehen?

          EDIT:
          Da war einer schneller.
          Memo an mich selbst: Tabs vor dem Schreiben neu laden

          Kommentar


          • #6
            Fehlermeldung wieder da...

            Okay,
            ich habe jetzt Zeile 21 mit der vorgegebenen von stekoe2000 ersetzt...
            Der Code sieht jetzt folgendermaßen aus:
            PHP-Code:
            <?php

            # Verbindung zur MySQL Datenbank herstellen

            $DatabasePointer mysql_connect("localhost""user""pw");

            mysql_select_db("db"$DatabasePointer);



            # Variablen definieren

            $Zeit time();

            $Reloadzeit 30;

            $Loeschen $Zeit-$Reloadzeit;

            $IP $_SERVER['REMOTE_ADDR'];



            # Alte IPs löschen

            mysql_query("DELETE FROM IP WHERE Zeit<'".$Loeschen."'"$DatabasePointer);



            # Gesperrte IP abrufen

            $GesperrteIPs mysql_query("SELECT IP FROM IP where IP='".$IP."'"$DatabasePointer);



            # Counterstand erhöhen

            if ((mysql_num_rows($GesperrteIPs) < 1) && !isset($_COOKIE['Reloadsperre']))

            {

            mysql_query("INSERT INTO IP (Zeit, IP) VALUES (".$Zeit.", '".$IP."')"), $DatabasePointer);

            setcookie("Reloadsperre"$IPtime()+$Reloadzeit);

            }

            ?>
            ...
            Nun erscheint aber wieder folgende Fehlermeldung:
            Code:
            Parse error: syntax error, unexpected ',' in /www/htdocs/w0097eb8/tim/test/reloadsperre.php on line 21
            Wo liegt jetzt das Problem?
            Ich finde in Zeile 21 kein "," welches überflüssig ist...
            Zuletzt geändert von alpdreamer; 18.02.2008, 21:46.

            Kommentar


            • #7
              Hupsa:

              mysql_query("INSERT INTO IP (Zeit, IP) VALUES (".$Zeit.", '".$IP."')", $DatabasePointer);


              dann sollte es gehen
              Liebe Grüße,
              SteKoe!

              PHP Tutorials
              Peter Kropff | Quakenet | Schattenbaum.net

              Kommentar


              • #8
                Fehlermeldung verschwunden...Reloadsperre: Fehlanzeige

                Oh Gott!!!
                Bin ich zu blöd???
                Die Fehlermeldung ist wieder weg, aber ich kann die Seite trotzdem problemlos mehrmals laden, was ja so nicht sein soll.

                Weiß einer von euch warum???

                Kommentar


                • #9
                  an ein vernünftiges debugging denkst du wohl garnicht? also setz erst mal hinter jeden query ein
                  PHP-Code:
                  ... or die (mysql_error()); 
                  und dann überprüfst du die logik systematisch durch testausgaben. ist das cookie gesetzt, was steht in der datenbank, werden überhaupt einträge vorgenommen?

                  gruß
                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Danke für den Tipp...

                    Dank für den Tipp mit MySQL Error...
                    In Zukunft kann ich das vielleicht mal gebrauchen...
                    Bei meinem Script kamen keine MySQL Errors auf, es wird allerdings nichts an die Datenbank gesendet...

                    Kommentar


                    • #11
                      übrigens bist du sehr leichtsinnig was das posten von benutzerdaten angeht ...

                      bitte ändere DRINGEND deine mysql-benutzerdaten!!!
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        es wird allerdings nichts an die Datenbank gesendet
                        und warum? weil deine logik offenbar nicht stimmt. also mach mal stück für stück die entsprechenden testausgaben.

                        gruß
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          Original geschrieben von Abraxax
                          bitte ändere DRINGEND deine mysql-benutzerdaten!!!
                          @alpdreamer
                          du hast zwar die userdaten im post editiert ... aber du solltest eigentlich auch die daten auf dem server ändern!

                          bitte hole das doch noch nach.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Original geschrieben von Abraxax
                            bitte hole das doch noch nach.
                            Ja, mach das schnell, sonst steht der Haxe nachts auf und wird wo möglich deinen Server noch hacken

                            Kommentar

                            Lädt...
                            X