Malte: Anmeldescript Porbleme

Hi,

ich habe ein Script geschrieben, wo der USer sich jetzt mit registrieren kann. Mein Problem ist, ich bekomme obwohl alle eingaben stimme immer wieder den Satz Fehler bei folgenden Punkten. Aber er sagt mir nicht wo genau
Außerdem würde ich, wenn alles Fertig ist den USer weiter leiten auf login.php aber ich habe oben schon ausgaben und daher klappt das mit einem header nicht, könnt ihr mir helfen?
Die daten werden aber in einer DB gespeichert.

Das ist nur ein Asschnitt der Seite, die ist sonst zu lang

  
<?php error_reporting(E_ALL);  
function check_email($email) {  
  //author: Christian Kruse, CK1@wwwtech.de  
  //Quelle: http://selfaktuell.teamone.de/tippstricks/programmiertechnik/email/index.html  
  // RegEx begin  
  $nonascii      = "\x80-\xff"; # Non-ASCII-Chars are not allowed  
  
  $nqtext        = "[^\\\\$nonascii\015\012\"]";  
  $qchar         = "\\\\[^$nonascii]";  
  
  $protocol      = '(?:mailto:)';  
  
  $normuser      = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';  
  $quotedstring  = "\"(?:$nqtext|$qchar)+\"";  
  $user_part     = "(?:$normuser|$quotedstring)";  
  
  $dom_mainpart  = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';  
  $dom_subpart   = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';  
  $dom_tldpart   = '[a-zA-Z]{2,5}';  
  $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";  
  
  $regex         = "$protocol?$user_part\@$domain_part";  
  // RegEx end  
  
  return preg_match("/^$regex$/",$email);  
}  
?>  
    <td colspan="3" class="inhalt">  
 <?php  
 if(isset($_POST["anmelden"]))  
 {  
 $fehler = array();  
 $username = $_POST["username"];  
 $password = $_POST["password"];  
 $passwordw = $_POST["password"];  
 $email = $_POST["email"];  
 $country = $_POST["land"];  
 $airbase = $_POST["airbase"];  
  
  //Ueberprüen des Passworts auf zulaesige Zeichen  
  if (!preg_match("/^[a-zA-Z0-9]*$/", $password)) $fehler[]= "Das Passwort darf nur aus Buchstaben, Zahlen und _ - bestehen!";  
  
  //Testen ob im Passwortfeld was eingeben wurden  
  if($password == "") $fehler[]= "Bitte geben Sie ein Passwort ein!";  
  
  //Testet den Usernamen auf zulaesige Zeichen  
  if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) $fehler[]= "Der Username darf nur aus Buchstaben, Zahlen und _ - bestehen!";  
  
  //Testen ob im Usernamefeld was eingeben wurde  
  if($username == "") $fehler[]= "Bitte geben Sie einen Usernamen an!";  
  
  //Testet den Namen der AirBase auf zulaesige Zeichen  
  if (!preg_match("/^[a-zA-Z0-9]*$/", $airbase)) $fehler[]= "Der AirBase Name darf nur aus Buchstaben, Zahlen und _ - bestehen!";  
  
  //Testen ob ein Land ausgewählt wurde  
  if($country == '0') $fehler[]= "Bitte wählen Sie ein Land aus!";  
  
  //Testet ob im Airbasefeld was angebebn wurde  
  if($airbase == "") $fehler[]= "Bitte einen Name für Ihrer AirBase angeben!";  
  
  //Testen ob die Password Widh. mit dem Password übereinstimmt  
  if($passwordw != $password) $fehler[]= "Die Passwort Widhl. muss mit dem Passwort übereinstimmen!";  
  
    //Testen der EMailAdresse  
  if(!check_email($email)) $fehler[] = "Bitte eine richtige E-Mail Adresse eingeben!";  
  
       if (count($fehler) == 0) {  
  
      $dbName = "air-war";  
      $dbHost = "localhost";  
      $dbUser = "root";  
      $dbPW = "";  
  
      if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());  
  
      mysql_query("INSERT INTO user (username, airbase, country, password, email)  
                           VALUES('$username', '$airbase', '$country', '$password', '$email')") or  
                                           die(mysql_error());  
  
           echo "GS";  
  
   }  
  
      echo "<span style=\"color:red\">Fehler bei Folgenden Punkten:<ul>";  
   for ($i = 0; $i < count($fehler); $i++) echo "<li>".$fehler[$i];{  
  
   }  
   echo "</ul></span>";  
 }  
 ?>  
 <center>  
 <b><font size="4">Anmeldung bei Air - War</font></b><br><br>  
 <table>  
  
 <form action="<?php $_SERVER["PHP_SELF"] ?>" method="post">  
      </font>  
  <tr>  
  <td><font size="4">Username:</font></td><td>  
        <font size="4"><input type="text" name="username" class="eingabe" size="20"></font></td>  
  </tr>  
  <tr>  
  <td><font size="4">Passwort:</font></td><td>  
        <font size="4"><input type="password" name="password" class="eingabe" size="20"></font></td>  
  </tr>  
  <tr>  
  <td><font size="4">Passwort Widh.:</font></td><td>  
        <font size="4"><input type="password" name="passwordw" class="eingabe" size="20"></font></td>  
  </tr>  
  <tr>  
  <td><font size="4">E-Mail:</font></td><td>  
        <font size="4"><input type="text" name="email" class="eingabe" size="20"><br><br>  
        </font></td>  
  </tr>  
  <tr>  
  <td><font size="4">Land:</font></td><td>  
        <font size="4"><select name="land">  
  <option value="0">Bitte wählen...</option>  
  <option value="Amerika">Amerika</option>  
  <option value="China">China</option>  
  <option value="Russland">Russland</option>  
  </select></font></td>  
  </tr>  
  <tr>  
  <td><font size="4">Name der Air Base:</font></td><td>  
        <font size="4"><input type="text" name="airbase" class="eingabe" size="20"></font></td>  
  </tr>  
  
  <tr>  
  <td><font size="4"><br></b><input type="submit" class="submit" name="anmelden" value="Anmelden"</td></font><td>  
        <font size="4"><br></b><input type="reset" class="submit" name="reset" value="Abbrechen"></font></td>  
  </tr>  
  </form>  
 </table>  
  
 </center>  
    </td>  
 
  1. Danke, habe das Problem schon gefunden...

    :-)

  2. Hi Malte,

    Auch wenn du den fehler schon gefunden hast,

    Außerdem würde ich, wenn alles Fertig ist den USer weiter leiten auf login.php aber ich habe oben schon ausgaben und daher klappt das mit einem header nicht, könnt ihr mir helfen?

    header("Location: {$_SERVER['REQUEST_URI']}");
    Nachteil: POSTs gehen verloren(wenn es welche gibt), da hilft dir dann wirklich nur HTTP 307.

    Marian