Probleme mit einem Registrierungsscript

Malchor

Erfahrenes Mitglied
Hallo Gemeinde,
ich habe da mal wieder ein Problem.
Ich habe ein Registrierungsskript erstellt welches meckern soll, wenn ein Feld leer bleibt.
Leider meckert er nur dann wenn das Feld Vorname leer bleit, obwohl das für diverse andere Felder auch deklariert wurde. Zudem werden plz,ort + mail garnicht gefüttert. Auch wird beim letzten print der Vor.+ Nachname nicht ausgegeben. Alle Daten werden vom Formular allerdings in den Array übergeben.

Array
(
[nachname] => Test
[vorname] => Muster
[passwort] => Pups
[plz] => 99999
[ort] => Testhausen
[heimatflughafen] => EDDT
[basis] => KJFK
[mail] =>test@muster.com
[ivaoid] => 123456
[vatsimid] => 544455
[other] => sss
)

Registrierungsformular:
PHP:
    <form ACTION="bewerbung_einfuegen.php" METHOD="post">
      <tr>
        <td width="100%"><h3><strong>Application
        </strong></h3>
          <div align="center">
            <center>
          <table cellspacing="0" width="70%" style="border-collapse: collapse; font-weight: bold;" bordercolor="#666666" cellpadding="0" border="1">
            <!-- Erzeugen der Eingabefelder für das Formular -->
            <tr bgcolor="#999999">
              <td width="30%">Family-Name:<span class="marker">*</span></td>
              <td width="428">
              <input TYPE="text" NAME="nachname" SIZE="35" MAXLENGTH="35">
              </td>
            </tr>
            <tr bgcolor="#666666">
              <td width="30%">First Name:<span class="marker">*</span></td>
              <td width="70%">
              <input TYPE="text" NAME="vorname" SIZE="35" MAXLENGTH="35">
              </td>
            </tr>
            <tr bgcolor="#999999">
              <td width="30%">
              <p align="left">Password:<span class="marker">*</span></td>
              <td width="70%">
              <input TYPE="text" NAME="passwort" SIZE="20" MAXLENGTH="20">
              </td>
            </tr>
            <tr bgcolor="#666666">
              <td width="30%">Zip Code:<span class="marker">*</span></td>
              <td width="70%">
              <input TYPE="text" NAME="plz" SIZE="5" MAXLENGTH="5"> </td>
            </tr>
            <tr bgcolor="#999999">
              <td width="30%">Location:<span class="marker">*</span></td>
              <td width="70%">
              <input TYPE="text" NAME="ort" SIZE="30" MAXLENGTH="30">
              </td>
            </tr>
            <tr bgcolor="#666666">
              <td>Home Airport:<br />(4L-Code)</td>
              <td><input TYPE="text" NAME="heimatflughafen" SIZE="4" MAXLENGTH="4"></td>
            </tr>
            <tr bgcolor="#999999">
              <td>Start Location:<br /></td>
              <td> <?php
    $options = "";
    $abfrage  ="SELECT `Flughafen`.`flughafenid`, `Flughafen`.`flughname`,`Flugplan`.`flughafenid1` FROM Flughafen, Flugplan Where `Flughafen`.`flughafenid` =  `Flugplan`.`flughafenid1` GROUP BY `Flughafen`.`flughafenid` ASC"; 
    $ergebnis = mysql_query($abfrage);
	    while($row = mysql_fetch_row($ergebnis)) 
    { 
        $options .= "<option value=\"".$row[0]." \">".$row[0]." - ".$row[1]."</option>";  
    } 
?> 
 
    <select name="basis" id="basis" >
        <option>Wähle einen Flughafen</option>
        <option>---------------------</option>
        <?php echo $options; ?>
    </select>

</td>
            </tr>           
             <tr bgcolor="#666666">
              <td width="30%">E-Mail:<span class="marker">*</span></td>
              <td width="70%">
              <input TYPE="text" NAME="mail" SIZE="30" MAXLENGTH="30">
              </td>
            </tr>
            <tr bgcolor="#999999">
              <td width="30%">IVAO-ID:</td>
              <td width="70%">
              <input TYPE="text" NAME="ivaoid" SIZE="10" MAXLENGTH="10">
              </td>
            </tr>
            <tr bgcolor="#666666">
              <td width="30%">VATSIM-ID:</td>
              <td width="70%">
              <input TYPE="text" NAME="vatsimid" SIZE="10" MAXLENGTH="10">
              </td>
            </tr>
            <tr bgcolor="#999999">
              <td width="30%">Other:<br /> (e.g request of pilot Nr.)</td>
              <td width="70%"><textarea name="other" cols="50" rows="3"></textarea></td>
            </tr>
            <tr bgcolor="#666666">
              <td width="30%">&nbsp;</td>
              <td width="70%"><input TYPE="submit" VALUE="Apply"></td>
            </tr>
          </table><br />
          <span class="marker">*</span> are requiered!
          </center>
        </div>
        <p>&nbsp;</td>
      </tr>
    </form>
  </table>

Verarbeitungsskript
PHP:
 <?PHP
$nachname = ($_POST['nachname']);
$vorname = ($_POST['vorname']);
$mail = ($_POST['mail']);
$passwort = ($_POST['passwort']);
$plz = ($_POST['plz']);
$ort = ($_POST['ort']);
$heimatflughafen = ($_POST['heimatflughafen']);
$basis = ($_POST['basis']);
$ivaoid = ($_POST['ivaoid']); 
$vatsimid = ($_POST['vatsimid']); 
$other = ($_POST['other']); 

$errors = array();

//variablen bereinigen
$vorname = htmlentities($_POST['vorname']);
$nachname = htmlentities($_POST['nachname']);
$mail = htmlentities($_POST['mail']);
$passwort = htmlentities($_POST['passwort']);
$plz = htmlentities($_POST['plz']);
$ort = htmlentities($_POST['ort']);
$heimatflughafen = htmlentities($_POST['heimatflughafen']);
$basis = htmlentities($_POST['basis']);
$ivaoid = htmlentities($_POST['ivaoid']); 
$vatsimid = htmlentities($_POST['vatsimid']); 
$other = htmlentities($_POST['other']); 

//variablen auf inhalt prüfen und ggf. den fehler (hier einfach der feldname) in das array $errors packen
if ($vorname == '') {
  $errors[] = 'Vorname';
}

if ($nachname = '') {
  $errors[] = 'Nachname';
}

if ($mail = '') {
  $errors[] = 'E-Mail Adresse';
}

if ($passwort = '') {
  $errors[] = 'Password';
}

if ($plz = '') {
  $errors[] = 'Zip-Code';
}

if ($ort = '') {
  $errors[] = 'Location';
}

// gucken ob fehler auftrat/en
if (count($errors) > 0) {
  //wenn ja, fehler ausgeben
  echo 'Sie müssen folgende Felder ausfüllen!<br /><b>' . implode(', ', $errors);
  
} else {
$abfrage = "INSERT INTO piloten_bewerbung SET passwort='$_POST[passwort]', vorname='$_POST[vorname]',nachname='$_POST[nachname]',ivaoid='$ivaoid',vatsimid='$vatsimid',ort='$ort',plz='$plz',heimatflughafen='$heimatflughafen',basis='$basis',other='$other',mail='$mail'";
$ergebnis = mysql_query($abfrage) OR die(mysql_error());

  print " 'Thank you ".$dataset['vorname']."   ".$dataset['nachname']."  for applicate on AmericanBlue-Va'";
}  
?>

Kann mir jmd. bei den diversen Problemen helfen?
 
Grüße,

das liegt daran, dass du bei deinem Verarbeitungsskript einzig den Vornamen richtig prüfst.
In allen anderen Fällen befindet sich lediglich ein "=" und kein "==" in der if-Klausel, was einer Zuweisung und keiner Überprüfung gleich käme.

Mehr dürfte es nicht sein.
 
Ok, danke so auffällig und doch übersehen.

Das löst das eine Problem, die anderen Probleme plz,ort + mail werden nicht gefüttert und der letzte print der Vor-+ Nachname werden nicht ausgegeben wobei alle Daten vom Formular in den Array übergeben werden, bleiben.
 
Hi

zum letzten Print: Woher kommt denn dataset auf einmal?
War das nicht ergebnis?

edit: Und was wird nicht "gefüttert"?
 
Also ich habe das dataset in ergebnis geändert, allerdings bleibt es dabei das kein vorname und nachname angezeigt wird.

Das mit dem füttern soll heißen das die Werte für plz,ort und mail nicht in den vorgesehenen Spalten gespeichert werden.
 
Moment mal, die "Abfrage" ist ein Insert...
Warum verwendest du überhaupt dataset,wenn du die Variablen selber ($...) nehmen kannst?
 
Ok, stimmt, da fehlte mir das verständnis. Allerdings beleiben natürlich die Felder noch leer, denn das behbt man damit ja nicht!
 
Hmm...seh jetzt eigentlich nichts Auffälliges.
Schreib mal
PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL|E_STRICT);
an den Anfang des Skripts.
Kommen da beim Aufruf irgendwelche Meldungen?
 
Das kam raus mehr nicht!

Strict Standards: date(): It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /home/americanblueva/public_html/bewerbung_einfuegen.php on line 116 Strict Standards: date(): It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /home/americanblueva/public_html/bewerbung_einfuegen.php on line 117 29.08.2011
 
Zurück