Bedingungen

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

  • Bedingungen

    ich möchte, dass wenn man das formular nicht zu ende ausfüllt eine Nachricht "sorry, du hast nicht alle felder ausgefüllt", erscheint. der code:

    PHP-Code:
    <? include("config.php"); 

      if($name ||$wohnort || $email || $icq == "")
       { 
       echo "sorry, du musst alle Felder ausfuelen";
       }
      else
       {
       $sql = "INSERT INTO members (name,wohnort,email,icq) VALUES ('$name','$wohnort','$email','$icq')";
       mysql_query($sql, $con);
       } 

    ?> 
        
    <b><u>Einen neuen Member eingtragen:</u></b><br>
     <form action="<?=$PHP_SELF?>" method="post">
    <table border=0 cellpadding=0 cellspacing=0>

     <tr>
       <td>Name:</td> <td><input type="text" name="name" size="20"></td>
     </tr>

     <tr>
       <td>Wohnort:</td> <td><input type="text" name="wohnort" size="20"></td>
     </tr>

     <tr>
       <td>E-Mail:</td> <td><input type="text" name="email" size="20"></td>
     </tr>

     <tr>
      <td>ICQ:</td> <td><input type="text" name="icq" size="20"></td>
     </tr>

     <tr><td>

      <input type="submit" name="sql" value="Abschicken">

     </td></tr>
    </table>
     </form>
    Irgnedwie klappt das nicht ganz, ich hoffe ihr könnt mir den fehler nennen.

    mfg

  • #2
    haha,

    deine if-abfrage soll doch nicht etwa: wenn name oder wohnort oder whatever oder icq == "" heißen? das geht ja nun nicht.

    du solltest jede variable auf existenz, inhalt und sinnvolligkeit prüfen (regexp ...), und bei nichtgefallen eine fehlermeldung ausgeben ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      guck dir mal empty() und die Forumssuche + ander Suchen an!

      Kommentar


      • #4
        PHP-Code:
        if($_POST['name'] == ""  ||$_POST['wohnort'] == "" || $_POST['email'] == "" || $_POST['icq'] == ""
        natürlich gibt es sinnvollere Abfragen mit pregmatch, isset oder empty (z.B. !preg_match ("/[.a-z0-9_-]+@[.a-z0-9-]+/i", $_POST['email'])).

        Offe

        Kommentar


        • #5
          vorallem ist empty in den meisten fällen schöner als == ''.

          Kommentar


          • #6
            Original geschrieben von Offe1
            PHP-Code:
            if($_POST['name'] == ""  ||$_POST['wohnort'] == "" || $_POST['email'] == "" || $_POST['icq'] == ""
            ok kann ich machen, nur steht schon von Anfang an immer da "sorry, du musst alle Felder ausfüllen" da stimmt was nicht.

            Kommentar


            • #7
              da stimmt was nicht.
              code?

              OffTopic:
              wenn du keine sicherheitsabfragen einbauen willst, verrat mal die url
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                PHP-Code:
                if(isset($_POST["sql"])) {
                if(
                $name ||$wohnort || $email || $icq == "")
                   { 
                   echo 
                "sorry, du musst alle Felder ausfuelen";
                   }
                  else
                   {
                   
                $sql "INSERT INTO members (name,wohnort,email,icq) VALUES ('$name','$wohnort','$email','$icq')";
                   
                mysql_query($sql$con);
                   }

                Oder so ähnlich (mit den $_POST halt)... muste halt überprüfen ob das form gesendet wurde..

                So muss gehn meine freundin ist hier
                _____________
                Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                Kommentar


                • #9
                  ich würds so machen:
                  PHP-Code:
                  if(isset($_POST['sql']))
                    {
                  if(empty(
                  $name) or empty($wohnort)) or !ereg(".+@.+\..+"$email) or empty($icq)) { 
                  echo 
                  "Sorry, du musst alle Felder ausfuellen...";

                  else 
                  {
                  $sql "INSERT INTO members (name,wohnort,email,icq) VALUES ('$name','$wohnort','$email','$icq')";
                   
                  mysql_query($sql$con);
                    }

                  Kommentar


                  • #10
                    Bei der ICQ Nummer kannst du noch eine längenprüfung machen mit strlen() Und die Variabeln sollten schon register_globals-OFF gerechts (Standarteinstellung) über die superglobalen Arrays angesprochen werden. Ich empfehle Request weil da sowohl die wo über GET als auch über POST drin sind.
                    Zuguterletzt das ganze in eine etwas bessere Syntax.


                    PHP-Code:
                    if(isset($_REQUEST['sql']))
                      {
                    if(empty(
                    $_REQUEST['name']) or empty($_REQUEST['wohnort'])) or empty($_REQUEST['email']) or empty($_REQUEST['icq'])) { 
                    echo 
                    "Sorry, du musst alle Felder ausfuellen...";

                    else 
                    {
                        if(
                    strlen($_REQUEST['icq'])!=9){
                            echo 
                    "Fehler: Keine gültige ICQ Nummer angegeben!";
                        } else if(!
                    preg_match ("/[.a-z0-9_-]+@[.a-z0-9-]+/i"$_REQUEST['email'])){
                            echo 
                    "Fehler: Keine gültige E-Mail Adresse angegeben!";
                        } else {
                    $sql "INSERT INTO members (name,wohnort,email,icq) VALUES ('".$_REQUEST['name']."','".$_REQUEST['wohnort']."','".$_REQUEST['email']."','".$_REQUEST['icq']."')";
                     
                    mysql_query($sql$con);
                        }
                      }

                    Visit my php blog!

                    Kommentar

                    Lädt...
                    X