• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

eintrag trotz isset überprüfung...

Status
Für weitere Antworten geschlossen.

wolf360

Neues Mitglied
Hey, ich will einen mysql eintrag machn, aber nur wenn die felder ausgefüllt sind hab das halt mit isset($_POST) geprüft?! es kommt zwar die meldung Bitte was eingeben, aber er macht trotzdem nen eintrag mit leerenfeldern..... hier mal script

HTML:
<?php include("verbindungsaufbau.php");
      mysql_select_db("wolf360_02");
 ?>

<?php include("head.php"); ?>
<?php
  if(isset($_GET['login'])) {
    ?>
  <div id="inhalt">
    <form method="post">
<table align="center" style="color:#999999;" border="0">
    <tr>
      <td>
          Name:
      </td>
      <td>
         <input name="register[username]" type="text">
      </td>
    </tr>
    <tr>
      <td>
        Passwort:
      </td>
      <td>
         <input name="register[userpasswort]" type="text">
      </td>
    </tr>
     <tr>
      <td>
        e-mail:
      </td>
      <td>
         <input name="register[email]" type="text">
      </td>
    </tr>
    <tr>
      <td align="center" colspan="2">
        <input name="submit" type="submit">
      </td>
    </tr>
</table>
</form>
<center><a style="font-size:12pt;" href="test1.php?">Zurück</a></center>
<?php echo "<center>Deine IP-Adresse: ".$_SERVER['REMOTE_ADDR']."</center>"; ?>



</div>

<!--Registrierung-->
<?php $name = mysql_real_escape_string($_POST['register']['username']);
      $passwort = mysql_real_escape_string($_POST['register']['userpasswort']);
      $email = mysql_real_escape_string($_POST['register']['email']);

     if(isset($_POST['register'])){
      $eintragen = "INSERT INTO `user` (`username`,`userpasswort`,`useremail`) VALUES ('".$name."','".$passwort."','".$email."')";
      $query = mysql_query($eintragen);
       }
      else{
        echo "<font-color=\"#999999\">Bitte was eintragen</font>";
        }



 } ?>

was hab ich falsch gemacht?!
 
versuchs mal mit
PHP:
if(!empty($_POST['register'])) {
  $eintragen = "INSERT INTO `user` (`username`,`userpasswort`,`useremail`) VALUES ('".$name."','".$passwort."','".$email."')";
  $query = mysql_query($eintragen);
}
 
wenn ichs mit empty mach wird trotzdem ein eintrag mit leeren felder gemacht....?! aber es verschwindet das "Bitte eintragen"
 
dann frag doch die Einträge mal einzeln ab:
PHP:
if(!empty($_POST['register']['username']) AND !empty($_POST['register']['userpassword']) AND !empty($_POST['register']['email'])) {
  $eintragen = "INSERT INTO `user` (`username`,`userpasswort`,`useremail`) VALUES ('".$name."','".$passwort."','".$email."')";
  $query = mysql_query($eintragen);
}
Dass das Array nicht leer ist ist ja klar, es stehen ja mindesten 3 leere Strings drin.
 
Okey mittlerweile hat alles geklappt, nun wollt ich mal kurz eure meinung vom bisherigen script hörn:

hier mal der link

http://wolf360.wo.funpic.de/test1.phps <-- ist etwas viel, deswegn mach ichs per link...

ein problem beim login hab ich auch festgestellt...

sobald das passwort falsch ist, also die fehlermeldung "Irgendetwas stimmt nicht" kommt, bricht er irgendwie das script ab und der footer.php wird nicht mer includiert?!... wie mach ich des dann?!

danke schon mal für die hilfe!
 
Zuletzt bearbeitet:
Kannst du mir verraten was das hier soll:
PHP:
<input name="register[username]" type="text">
was soll dieser PseudoArrayName. Wenn schon, dann sollte soetwas folgendermaßen aussehen:
PHP:
<input name="register[]" type="text">
das brauchst du aber nur, wenn formulare in einer Schleife erzeugst, um dann auf ein bestimmtes Element zuzugreifen. Da Du aber das Input-feld nur einmal hast, gib auch für jedes einen eigenen Namen an. So z.B:
PHP:
...
      <tr> 
         <td> Name: </td> 
         <td> <input name="username" type="text"> </td> 
       </tr> 
      <tr> 
         <td> Passwort: </td> 
         <td> <input name="userpasswort" type="text"> </td> 
       </tr> 
      <tr> 
         <td> e-mail: </td> 
         <td> <input name="email" type="text"> </td> 
       </tr> 
      <tr>
...
eine Abfrage mit isset könnte dann so aussehen:
PHP:
if(isset($_POST['username']))
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben