Speichern in Datenbank verhindern

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

  • Speichern in Datenbank verhindern

    Hallo Leute,
    ich übergebe aus einem HTML Formular die Eingaben an ein PHP Script welches wiederum diese Daten in eine MYSQL Datenbank schreibt. Nun frage ich z.B. einen String mit (strlen oder strstr) ab und gebe über if und else eine eine Antwort zurück. Nun möchte ich natürlich verhindern, wenn die eine oder andere Angabe nicht stimmt, das dieser Eintrag in der Datenbank gespeichert wird. Die Ausgabe funzt nur leider wird der Eintrag trotzdem in der db gespeichert.
    Schon mal ein Dankeschön für die Hilfe
    Lemmy

    <?php
    if ( isset( $a ) && isset( $b ) && isset( $c ) && isset( $d ) )


    {
    // Überprüfe Benutzereingaben
    $dberror = "";
    $ret = in_db_einfuegen( $a, $b, $c, $d, $dberror );

    }


    function in_db_einfuegen( $a, $b, $c, $d, &$dberror )
    {
    $benutzer = "user";
    $passwort = "pass";
    $db = "mysql";
    $link = mysql_pconnect( "localhost", $benutzer, $passwort );

    if ( ! $link )
    {
    $dberror = "Keine Verbindung zu MySQL server";
    return false;
    }
    if ( ! mysql_select_db( $db, $link ) )
    {
    $dberror = mysql_error();
    return false;
    }
    $anfrage = "INSERT INTO energiecheck ( stadtwerk, anrede, name, mail )
    values( '$a', '$b', '$c', '$d' )";
    if ( strstr( $d, "@" ) )
    print "Danke danke<BR>";
    else
    print "Da fehlt das @Du Sack";

    if ( strlen( $c ) == 4 )
    print "Danke danke tatsächlich 4 Buchstaben <BR>";
    else
    print "nie im leben";
    if ( ! mysql_query( $anfrage, $link ) )
    {
    $dberror = mysql_error();
    return false;
    }
    return true;
    }


    ?>
    Heavy Metal Is The Law |

  • #2
    mir fallen schon fast die augen zu, aber ich fand etwas:


    $anfrage = "INSERT INTO energiecheck ( stadtwerk, anrede, name, mail )
    values( '$a', '$b', '$c', '$d' )";
    if ( strstr( $d, "@" ) )
    print "Danke danke<BR>";
    else
    print "Da fehlt das @Du Sack";
    so kann das ja nix werden. dein check nach dem "@" erfolgt z.b. erst nachdem die daten in die db eingetragen wurden ...

    so nach dem motto wirste auch die restlichen fehler finden. TIP:
    mach erst n check-scrip, was guckt ob alles ok ist. falls alles ok --> weiterleitung nach eintragscript, else echo "sack " ....
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      @schmalle: schau nochmal genauer hin!

      Die Abfragen kommen zwar vor dem Absenden der Query, und du gibst bei einem Fehler auch eine originelle Meldung aus. Nuuuur ... du springst beim Fehler an der Stelle nicht aus der Funktion!

      ergo:
      Code:
      ...
        if ( strstr( $d, "@" ) ) 
          print "Danke danke<BR>"; 
        else
        {
          print "Da fehlt das @Du Sack";
          return false;
        }
        if ( strlen( $c ) == 4 ) 
          print "Danke danke tatsächlich 4 Buchstaben <BR>"; 
        else 
        {
          print "nie im leben"; 
          return false;
        }
      ...
      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


      • #4
        @titus:


        mir fallen schon fast die augen zu, ....


        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar

        Lädt...
        X