leere Einträge in DB durch mehrfaches Klicken des Submit-Buttons

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

  • leere Einträge in DB durch mehrfaches Klicken des Submit-Buttons

    Hallo,

    ich habe ein Anmelde-Formular auf meiner Webseite, wo sich User anmelden können und per Submit-Button diese abschicken könen. Die Userdaten werden per Post-Methode übermittelt und dann in eine DB gespeichert.

    Leider kommt es des öfteren vor, dass einige User(vll Modem-User den Submit-Button mehrmals drücken und dadurch einmal die Userdaten sowie leere Felder übermittelt werden und ich sodurch auch leere Einträge in der DB habe.

    Hatte mir nun überlegt, vor dem Eintrag in die DB eine Abfrage zu starten, die bei leeren Übergabeparameter nichts speichert.

    Gibt es eine bessere Lösung, die das Problem schon bei der Ursache verhindert?

  • #2
    schreib doch daneben, "Bitte nur einmal drücken - Sie werden weitergeleitet" oder sowas
    ansonsten kannst du auf der nächsten seite prüfen ob die daten noch da sind oder nicht
    PHP-Code:
    ...
    if (
    $formular=="gesendet")
    {
    $codesenden=0;

    if(
    $name=="")
    {
    echo(
    "Das Feld Nickname ist nicht angegeben!<br>");
    $codesenden=1;
    }
    ...
    if(
    $codesenden=="0")
    {
    #alles in die db schreiben
    }
    if(
    $codesenden=="1")
    {
    #nüchts schreiben, auf fehler hinweisen und zurück bzw. noch dazu
    #eventuell ausgefüllte sachen in andere db-tabelle zwischenspeichern
    }

    außerdem kannst du, wenn jemand ein feld vergessen hat anzugeben, alles in einer anderen tabelle zwischen speichern mit seiner ip und liest jedes mal anhand der ip in der anmeldseite alles wieder aus
    wenn die ip nicht drinn steht ist natürlich alles leer und wenn sie doch drinn steht gibt er wieder aus was schon ausgefüllt wurde
    selfmade-webdesign
    webdesign leipzig

    Kommentar


    • #3
      Überprüfen musst du den Wert ja sowieso, dann kannst du doch gleich ne Mindestlänge vorgeben.

      Sonst kannst du ja vorsichtshalber noch danebenschreiben "Bitte keine SQL-Injections eingeben"...
      ich glaube

      Kommentar


      • #4
        ich würde es daneben schreiben
        ja das sollte man tun... und vielleicht noch sonderzeichen verbieten
        z.B. so
        PHP-Code:
        strlen($nickname);
        if(
        $nickname=="")
        {
        echo(
        "Das Feld Nickname ist nicht angegeben!<br>");
        $codesenden=1;
        }
        elseif(
        strlen($nickname) < "3")
        {
        echo(
        "Dein Nickname hat nicht mind. 3 Zeichen!<br>");
        $codesenden=1;
        }
        elseif(!
        preg_match("/^[a-z0-9äöü.-_]+$/i",$nickname))
        {
        echo(
        "Bitte nur A-Z,Ä,Ö,Ü, 0-9 und . - _ im Nick verwenden!<br>");
        $codesenden=1;
        }
        if(
        strlen($nickname) >= "26")
        {
        echo(
        "Das Feld Nickname hat mehr als 25 Zeichen!<br>");
        $codesenden=1;

        selfmade-webdesign
        webdesign leipzig

        Kommentar

        Lädt...
        X