Formular überprüfen

SasserVirus

Gesperrt
Hallo! Ich habe ein Formular;

HTML:
<HTML>
   <HEAD>
      <title>Anmelden</title>
      <link rel="stylesheet" href="format.css" type="text/css">
   </HEAD>
   <BODY>
      <form method="post" action="new_user.php">
      <table border="0" width="100%"><tr><td height="350" align="center" valign="middle">
      <table border="0">
         <tr>
            <td colspan="4" align="center" valign="middle" class="submit">
               <img src="images/submit.png"></img>
            </td>
	 <tr>
	    <td align="left" class="submit"><b>Vorname:</b></td>
	    <td class="submit">
               <select name="geschlecht" size="1">
                  <option>
                  <option>Herr
                  <option>Frau
               </select>
               <input type="text" name="vorname" size="19"></td>
            <td align="left" class="submit"><b>Benutzername:</b></td>
            <td class="submit"><input type="text" name="user" size="30"></td>
         <tr>
            <td align="left" class="submit"><b>Name:</b></td>
            <td class="submit"><input type="text" name="name" size="30"></td>
            <td valign="top" align="left" class="submit"><b>Passwort:</b></td>
            <td class="submit"><input type="password" name="password" size="30"></td>
         <tr>
            <td align="left" class="submit"><b>Geburtsdatum:</b></td>
            <td class="submit">
	       <select name="geburtsdatum_tag" size="1">
                  <option>
                  <option>01
                  <option>02
                  <option>03
                  <option>04
                  <option>05
                  <option>06
                  <option>07
                  <option>08
                  <option>09
                  <option>10
                  <option>11
                  <option>12
                  <option>13
                  <option>14
                  <option>15
                  <option>16
                  <option>17
                  <option>18
                  <option>19
                  <option>20
                  <option>21
                  <option>22
                  <option>23
                  <option>24
                  <option>25
                  <option>26
                  <option>27
                  <option>28
                  <option>29
                  <option>30
                  <option>31
	       </select>
               <b>.</b>
               <select name="geburtsdatum_monat" size="1">
                  <option>
                  <option>01
                  <option>02
                  <option>03
                  <option>04
                  <option>05
                  <option>06
                  <option>07
                  <option>08
                  <option>09
                  <option>10
                  <option>11
                  <option>12
	       </select>
               <b>.</b>
               <input name="geburtsdatum_jahr" size="4" maxlength="4">
	    </td>
            <td valign="top" align="left" class="submit"><font color="#E6E6FA">(Wiederholen)</font></td>
            <td class="submit"><input type="password" name="password2" size="30"></td>
         <tr>
            <td align="left" class="submit"><b>Anschrift:</b></td>
            <td class="submit"><input type="text" name="anschrift" size="30"></td>
            <td valign="top" align="left" class="submit"><b>Emailadresse:</b></td>
            <td class="submit"><input type="text" name="email" size="30"></td>
         <tr>
            <td align="left" class="submit"><b>PLZ, Ort:</b></td>
            <td class="submit"><input type="text" name="plz" size="5" maxlength="5">&nbsp;<input name="ort" size="20"></td>
            <td valign="top" align="left" class="submit"><font color="#E6E6FA">(Wiederholen)</font></td>
            <td class="submit"><input type="text" name="email2" size="30"></td>
         <tr>
            <td colspan="4" align="right" class="submit"><input type="submit" name="anmelden" value="Anmelden" class="button"></td>
      </table>
      </td></tr></table>
   </form>
   </BODY>
</HTML>


und dann noch das Script zum schicken an die Datenbank;


PHP:
<?php

if (!isset($_POST['anmelden'])) {
    include('submit.php');
    exit; }

include('config.php');

$_POST['geburtsdatum'] = $_POST['geburtsdatum_tag'].'.'.$_POST['geburtsdatum_monat'].'.'.$_POST['geburtsdatum_jahr'];

$_POST['geschlecht'] = ( $_POST['geschlecht'] == 'Herr' ? 'm&auml;nnlich' : 'weiblich' );


$sql = "INSERT INTO user (vorname, name, geburtsdatum, geschlecht, anschrift, plz, ort, user, password, email) 
        VALUES ('". $_POST['vorname']."', '". $_POST['name']."', '". $_POST['geburtsdatum']."', '". $_POST['geschlecht']."', '". $_POST['anschrift']."', '". $_POST['plz']."', '". $_POST['ort']."', '". $_POST['user']."', '". $_POST['password']."', '". $_POST['email']."')";

mysql_query($sql) or die(error_reporting());   

echo"<meta HTTP-EQUIV='refresh' CONTENT='0; URL=submitted.html'>
";

?>


Wie prüfe ich nun alle Felder auf Eingabe, sowie ob das Feld "email" gleich "email2" und "password" gleich "password2" ist? Vielleicht auch noch ob in der Emailadresse ein @ vorkommt?

Ich möchte das aber gleich auf der submit.php seite haben, z.B. dass sich der Inputrahmen ändert. Geht so etwas?

Wäre sehr für eine Lösung dankbar :confused:
 
Hallo,
hier mal eine ziemlich umfangreiche Formularprüfung mit regulären Ausdrücken. Falls dir das zu viel des Guten ist, such einfach bei google nach Formularprüfungen mit PHP, da gibt es genügend Anleitungen und Beispiele. Jeder bevorzugt etwas anderes, da es ja x-beliebige Möglichkeiten gibt.

PHP:
<?php
	if ( $_GET['send'] == true )
	{
		// Fehlertexte
		$msg['vorname'][1] 		= "Feld wurde nicht ausgefüllt.";
		$msg['vorname'][2]		= "Es dürfen nur Buchstaben eingegeben werden.";
		$msg['nachname'][1] 	= "Feld wurde nicht ausgefüllt.";
		$msg['nachname'][2]		= "Es dürfen nur Buchstaben eingegeben werden.";
		$msg['strasse'][1] 		= "Feld wurde nicht ausgefüllt.";
		$msg['strasse'][2]		= "Eingabe darf nicht nur aus Zahlen bestehen.";
		$msg['strasse'][3] 		= "Es wurde keine Hausnummer angegeben.";
		$msg['strasse'][4]		= "Es wurde kein Straßenname angegeben.";
		$msg['plz'][1] 			= "Feld wurde nicht ausgefüllt.";
		$msg['plz'][2]			= "Eingabe muss aus 5 Zahlen bestehen.";
		$msg['ort'][1] 			= "Feld wurde nicht ausgefüllt.";
		$msg['ort'][2]			= "Eingabe darf keine Zahlen enthalten.";
		$msg['telefon'][1] 		= "Feld wurde nicht ausgefüllt.";
		$msg['telefon'][2]		= "Eingabe darf keine Buchstaben enthalten.";
		$msg['email'][1] 		= "Feld wurde nicht ausgefüllt.";
		$msg['email'][2] 		= "Es wurde keine korrekte E-Mail-Adresse eingegeben.";
		// Formularprüfung & Errorhandling
		# Vorname
		if ( ( !preg_match("/^[a-zäöüA-ZÄÖÜ\- ]*$/", $_POST['vorname'], $matches) ) && ( $_POST['vorname'] != "" ) )
		{
			$error['vorname'] = 2;
		}
		elseif ( $_POST['vorname'] == "" )
		{
			$error['vorname'] = 1;
		}
		# Nachname
		if ( ( !preg_match("/^[a-zäöüA-ZÄÖÜ\- ]*$/", $_POST['nachname'], $matches) ) && ( $_POST['nachname'] != "" ) )
		{
			$error['nachname'] = 2;
		}
		elseif ( $_POST['vorname'] == "" )
		{
			$error['nachname'] = 1;
		}
		# Straße
		if ( ( !preg_match("/[^0-9]/", $_POST['strasse'], $matches) ) && ( $_POST['strasse'] != "" ) )
		{
			$error['strasse'] = 4;
		}
		elseif ( ( !preg_match("/[^a-zäöüßA-ZÄÖÜ\-\. ]/", $_POST['strasse'], $matches) ) && ( $_POST['strasse'] != "" ) )
		{
			$error['strasse'] = 3;
		}
		elseif ( ( !preg_match("/[a-zäöüßA-ZÄÖÜ0-9\.\- ]*/", $_POST['strasse'], $matches) ) && ( $_POST['strasse'] != "" ) )
		{
			$error['strasse'] = 2;
		}
		elseif ( $_POST['strasse'] == "" )
		{
			$error['strasse'] = 1;
		}
		# PLZ
		if ( ( !preg_match("/^[0-9]{5}$/", $_POST['plz'], $matches) ) && ( $_POST['plz'] != "" ) )
		{
			$error['plz'] = 2;
		}
		elseif ( $_POST['plz'] == "" )
		{
			$error['plz'] = 1;
		}
		# Ort
		if ( ( !preg_match("/^[a-zäöüßA-ZÄÖÜ\.\- ]*$/", $_POST['ort'], $matches) ) && ( $_POST['ort'] != "" ) )
		{
			$error['ort'] = 2;
		}
		elseif ( $_POST['ort'] == "" )
		{
			$error['ort'] = 1;
		}
		# Telefon
		if ( ( !preg_match("/^[0-9\/\- ]*$/", $_POST['telefon'], $matches) ) && ( $_POST['telefon'] != "" ) )
		{
			$error['telefon'] = 2;
		}
		elseif ( $_POST['telefon'] == "" )
		{
			$error['telefon'] = 1;
		}
		# E-Mail-Addresse
		if ( ( !preg_match("/^[\w\-\.]+@[\w\-\.]+\.[^\d]{2,4}$/", $_POST['email'], $matches) ) && ( $_POST['email'] != "" ) )
		{
			$error['email'] = 2;
		}
		elseif ( $_POST['email'] == "" )
		{
			$error['email'] = 1;
		}
	}
?>
<div id="printBox"><a href="javascript:print();">Drucken</a></div>
<div class="boxSubTitle">Anfrageformular</div>
<div class="content">
	<div class="content1sp">
		<table cellspacing="0" cellpadding="0" border="0" width="100%">
			<form method="post" action="<?=$_SERVER['PHP_SELF']?>?topic=<?=$_GET['topic']?>&send=true">
			<tr>
				<td colspan="3">
					Felder mit * sind Pflichtangaben
					<?php
						if ( is_array($error) )
						{
							echo "<br /><span style='color: #FF0000; font-weight: bold;'>";
							echo "Bei der Formularprüfung sind Fehler aufgetreten.";
							echo " Bitte korrigieren Sie die rot markierten Felder.";
							echo "</span>";
						}
					?>
				</td>
			</tr>
			<tr>
				<td width="80">Anrede</td>
				<td width="270">
					<select class="inp260" name="geschlecht">
						<option value="w" <?=$_POST['geschlecht'] == "w" ? "selected='selected'" : ""?>>Frau</option>
						<option value="m" <?=$_POST['geschlecht'] == "m" ? "selected='selected'" : ""?>>Herr</option>
					</select>
				</td>
				<td></td>
			</tr>
			<tr>
				<td>Titel</td>
				<td><input class="inp260" type="text" name="titel" value="<?=$_POST['titel']?>" /></td>
				<td></td>
			</tr>
			<tr>
				<td <?=$error['vorname'] != "" ? "class='error'" : ""?>>Vorname *</td>
				<td><input class="inp260<?=$error['vorname'] != "" ? "error" : ""?>" type="text" name="vorname" value="<?=$_POST['vorname']?>" /></td>
				<td><?=$error['vorname'] != "" ? $msg['vorname'][$error['vorname']] : ""?></td>
			</tr>
			<tr>
				<td <?=$error['nachname'] != "" ? "class='error'" : ""?>>Nachname *</td>
				<td><input class="inp260<?=$error['nachname'] != "" ? "error" : ""?>" type="text" name="nachname" value="<?=$_POST['nachname']?>" /></td>
				<td><?=$error['nachname'] != "" ? $msg['nachname'][$error['nachname']] : ""?></td>
			</tr>
			<tr>
				<td <?=$error['strasse'] != "" ? "class='error'" : ""?>>Stra&szlig;e *</td>
				<td><input class="inp260<?=$error['strasse'] != "" ? "error" : ""?>" type="text" name="strasse" value="<?=$_POST['strasse']?>" /></td>
				<td><?=$error['strasse'] != "" ? $msg['strasse'][$error['strasse']] : ""?></td>
			</tr>
			<tr>
				<td <?=$error['plz'] != "" ? "class='error'" : ""?>>PLZ *</td>
				<td><input class="inp260<?=$error['plz'] != "" ? "error" : ""?>" type="text" name="plz" maxlength="5" value="<?=$_POST['plz']?>" /></td>
				<td><?=$error['plz'] != "" ? $msg['plz'][$error['plz']] : ""?></td>
			</tr>
			<tr>
				<td <?=$error['ort'] != "" ? "class='error'" : ""?>>Ort *</td>
				<td><input class="inp260<?=$error['ort'] != "" ? "error" : ""?>" type="text" name="ort" value="<?=$_POST['ort']?>" /></td>
				<td><?=$error['ort'] != "" ? $msg['ort'][$error['ort']] : ""?></td>
			</tr>
			<tr>
				<td>Land *</td>
				<td>
					<select class="inp260" name="land">
						<option value="DE">Deutschland</option>
					</select>
				</td>
				<td></td>
			</tr>
			<tr>
				<td <?=$error['telefon'] != "" ? "class='error'" : ""?>>Telefon *</td>
				<td><input class="inp260<?=$error['telefon'] != "" ? "error" : ""?>" type="text" name="telefon" value="<?=$_POST['telefon']?>" /></td>
				<td><?=$error['telefon'] != "" ? $msg['telefon'][$error['telefon']] : ""?></td>
			</tr>
			<tr>
				<td>Telefax</td>
				<td><input class="inp260" type="text" name="telefax" value="<?=$_POST['telefax']?>" /></td>
				<td></td>
			</tr>
			<tr>
				<td>Mobiltelefon</td>
				<td><input class="inp260" type="text" name="mobil" value="<?=$_POST['mobil']?>" /></td>
				<td></td>
			</tr>
			<tr>
				<td>Kontaktzeiten</td>
				<td><input class="inp260" type="text" name="kontaktzeit" value="<?=$_POST['kontaktzeit']?>" /></td>
				<td></td>
			</tr>
			<tr>
				<td <?=$error['email'] != "" ? "class='error'" : ""?>>E-Mail *</td>
				<td><input class="inp260<?=$error['email'] != "" ? "error" : ""?>" type="text" name="email" value="<?=$_POST['email']?>" /></td>
				<td><?=$error['email'] != "" ? $msg['email'][$error['email']] : ""?></td>
			</tr>
			<tr>
				<td>Starttermin</td>
				<td>
					<select class="inp260" name="startzeit">
						<option value="6">1 - 6 Monate</option>
						<option value="12">7 - 12 Monate</option>
					</select>
				</td>
				<td></td>
			</tr>
			<tr>
				<td>Eigenkapital</td>
				<td>
					<select class="inp260" name="eigenkapital">
						<option value="20000">&lt; 20.000 Euro</option>
						<option value="50000">&lt; 50.000 Euro</option>
						<option value="100000">&lt; 100.000 Euro</option>
						<option value="200000">&lt; 200.000 Euro</option>
					</select>
				</td>
				<td></td>
			</tr>
			<tr>
				<td valign="top">Gebiet</td>
				<td><textarea class="inp260" name="gebiet" cols="50" rows="5"><?=$_POST['gebiet']?></textarea></td>
				<td></td>
			</tr>
			<tr>
				<td colspan="3">&nbsp;</td>
			</tr>
			<tr>
				<td colspan="3">Fragen an den Systemanbieter</td>
			</tr>
			<tr>
				<td></td>
				<td><textarea class="inp260" name="fragen" cols="50" rows="5"><?=$_POST['fragen']?></textarea></td>
				<td></td>
			</tr>
			<tr>
				<td colspan="3">
					<input type="checkbox" name="beratung" value="1" <?=$_POST['beratung'] == 1 ? "checked='checked'" : ""?> /> Ja, ich bin ergänzend an einer kostenfreien, persönlichen, unverbindlichen Gründerberatung durch eine spezialisierte Beratungsgesellschaft interessiert.
				</td>
			</tr>
			<tr>
				<td colspan="3">&nbsp;</td>
			</tr>
			<tr>
				<td colspan="3">
					<input type="checkbox" name="newsletter" value="1" checked="checked" /> Ja, ich will den kostenlosen COBU Newsletter mit neuen Angeboten.
				</td>
			</tr>
			<tr>
				<td>&nbsp;</td>
				<td><input type="submit" value="abschicken" /></td>
				<td>&nbsp;</td>
			</tr>
			</form>
		</table>
	</div>
</div>

Hier mal noch der dazugehörige CSS-Code für die Fehlerausgabe:
Code:
td {
	margin: 0px 0px 0px 0px;
	padding: 2px 2px 2px 2px;
}
td.error {
	font-weight: bold;
	color: #FF0000;
}
input.inp260 {
	width: 260px;
	margin: 0px 0px 0px 0px;
	padding: 2px 2px 2px 2px;
	border: 1px solid #333333;
	font-family: "Arial", helvetica, sans-serif;
	font-size: 11px;
	color: #333333;
}
input.inp260error {
	width: 260px;
	margin: 0px 0px 0px 0px;
	padding: 2px 2px 2px 2px;
	border: 1px solid #FF0000;
	font-family: "Arial", helvetica, sans-serif;
	font-size: 11px;
	font-weight: bold;
	color: #FF0000;
}
select.inp260 {
	width: 266px;
	margin: 0px 0px 0px 0px;
	padding: 2px 2px 2px 2px;
	border: 1px solid #333333;
	font-family: "Arial", helvetica, sans-serif;
	font-size: 11px;
	color: #333333;
}
* html select.inp260 {
	width: 267px;
}
textarea.inp260 {
	width: 260px;
	height: 65px;
	margin: 0px 0px 0px 0px;
	padding: 2px 2px 2px 2px;
	border: 1px solid #333333;
	font-family: "Arial", helvetica, sans-serif;
	font-size: 11px;
	color: #333333;
}
 
Zuletzt bearbeitet:
Hmmm, ist nicht schlecht das Script!

Aber wenn ich absende und ein Fehler festgestellt, dann verschwinden alle Daten aus den Feldern und der Benutzer muss alle neu eingeben...

Wie kann ich die Daten vielleicht speichern oder so?
 
hi,
dazu musst du alle Eingaben vom Benutzer in eine Session speichern, die bei einem Fehler dann wieder an das Formular gesendet wird (Cookie oder url) und dort wieder ausgelesen. Bei dieser Variante kann man dann auch noch schön an den Benutzer schreiben, was er falsch eingegeben hat, zum Beispiel dass das Passwort keine Sonderzeichen enthalten darf.

Gruß kantonix
 
Naja SESSIONS sind für einen PHP-Anfänger noch zu viel des Guten.

Aber wenn ich absende und ein Fehler festgestellt, dann verschwinden alle Daten aus den Feldern und der Benutzer muss alle neu eingeben...

Wie kann ich die Daten vielleicht speichern oder so?

kann eigentlich nicht sein, da im value des Inputfeldes der Wert aus dem $_POST-Array steht:
PHP:
<input class="inp260<?=$error['strasse'] != "" ? "error" : ""?>" type="text" name="strasse" value="<?=$_POST['strasse']?>" />

Du musst nur die entsprechenden Felder abändern!

PHP:
<?php
    if ( $_GET['send'] == true )
    { ... }
?>
Das musst du natürlich auch korrekt anpassen, einfaches Copy&Paste bringt dir nicht viel :)
 
Zuletzt bearbeitet:
Also ich bin nun so weit;

PHP:
<?php
    if ( $_GET['send'] == true )
    {

        $msg['vorname'][1]         = "<b>Vorname</b> fehlt, ";
        $msg['vorname'][2]         = "<b>Vorname</b> (nur Buchstaben erlaubt), ";
        $msg['name'][1]            = "<b>Name</b> fehlt, ";
        $msg['name'][2]            = "<b>Name</b> (nur Buchstaben erlaubt), ";
        $msg['anschrift'][1]       = "<b>Anschrift</b> fehlt, ";
        $msg['plz'][1]             = "<b>Postleitzahl</b> fehlt, ";
        $msg['plz'][2]             = "<b>Postleitzahlt</b> (nur 5 Zahlen erlaubt), ";
        $msg['ort'][1]             = "<b>Ort</b> fehlt, ";
        $msg['ort'][2]             = "<b>Ort</b> (nur Buchstaben erlaubt), ";
        $msg['user'][1]            = "<b>Benutzername</b> fehlt, ";
        $msg['password'][1]        = "<b>Passwort</b> fehlt, ";
        $msg['email'][1]           = "<b>Emailadresse</b> fehlt, ";
        $msg['email'][2]           = "<b>Emailadresse</b> falsch, ";


        # Vorname
        if ( ( !preg_match("/^[a-zäöüA-ZÄÖÜ\- ]*$/", $_POST['vorname'], $matches) ) && ( $_POST['vorname'] != "" ) )
        {
            $error['vorname'] = 2;
        }
        elseif ( $_POST['vorname'] == "" )
        {
            $error['vorname'] = 1;
        }
        # Name

        if ( ( !preg_match("/^[a-zäöüA-ZÄÖÜ\- ]*$/", $_POST['name'], $matches) ) && ( $_POST['name'] != "" ) )
        {
            $error['name'] = 2;
        }
        elseif ( $_POST['name'] == "" )
        {
            $error['name'] = 1;
        }

        # Anschrift
        if ( $_POST['anschrift'] == "" )
        {
            $error['anschrift'] = 1;
        }

        # PLZ
        if ( ( !preg_match("/^[0-9]{5}$/", $_POST['plz'], $matches) ) && ( $_POST['plz'] != "" ) )
        {
            $error['plz'] = 2;
        }
        elseif ( $_POST['plz'] == "" )
        {
            $error['plz'] = 1;
        }

        # Ort
        if ( ( !preg_match("/^[a-zäöüßA-ZÄÖÜ\.\- ]*$/", $_POST['ort'], $matches) ) && ( $_POST['ort'] != "" ) )
        {
            $error['ort'] = 2;
        }
        elseif ( $_POST['ort'] == "" )
        {
            $error['ort'] = 1;
        }

        # Benutzername
        if ( $_POST['user'] == "" )
        {
            $error['user'] = 1;
        }

        # Passwort
        if ( $_POST['password'] == "" )
        {
            $error['password'] = 1;
        }

        # E-Mail-Addresse
        if ( ( !preg_match("/^[\w\-\.]+@[\w\-\.]+\.[^\d]{2,4}$/", $_POST['email'], $matches) ) && ( $_POST['email'] != "" ) )
        {
            $error['email'] = 2;
        }
        elseif ( $_POST['email'] == "" )
        {
            $error['email'] = 1;
        }
    }
?>









   <HEAD>
      <title>Anmelden</title>
      <link rel="stylesheet" href="format.css" type="text/css">
   </HEAD>
      <form method="post" action="<?=$_SERVER['PHP_SELF']?>?topic=<?=$_GET['topic']?>&send=true">
      <table border="0" width="100%"><tr>
      <td height="350" align="center" valign="middle">
      <table border="0">
         <tr>
            <td colspan="4" align="center" valign="middle" class="submit">
               <img src="images/submit.png"></img>
            </td>
	 <tr>
	    <td align="left" <?=$error['vorname'] != "" ? "class='error'" : ""?>><b>Vorname:</b></td>
	    <td class="submit">
               <select name="geschlecht" size="1">
                  <option>
                  <option>Herr
                  <option>Frau
               </select>
               <input class="inp260<?=$error['vorname'] != "" ? "error" : ""?>" type="text" name="vorname" size="19"></td>
            <td align="left" <?=$error['user'] != "" ? "class='error'" : ""?>><b>Benutzername:</b></td>
            <td class="submit"><input class="inp260<?=$error['user'] != "" ? "error" : ""?>" type="text" name="user" size="30"></td>
         <tr>
            <td align="left" <?=$error['name'] != "" ? "class='error'" : ""?>><b>Name:</b></td>
            <td class="submit"><input class="inp260<?=$error['name'] != "" ? "error" : ""?>" type="text" name="name" size="30"></td>
            <td valign="top" align="left" <?=$error['password'] != "" ? "class='error'" : ""?>><b>Passwort:</b></td>
            <td class="submit"><input class="inp260<?=$error['password'] != "" ? "error" : ""?>" type="password" name="password" size="30"></td>
         <tr>
            <td align="left" class="submit"><b>Geburtsdatum:</b></td>
            <td class="submit">
	       <select name="geburtsdatum_tag" size="1">
                  <option>
                  <option>01
                  <option>02
                  <option>03
                  <option>04
                  <option>05
                  <option>06
                  <option>07
                  <option>08
                  <option>09
                  <option>10
                  <option>11
                  <option>12
                  <option>13
                  <option>14
                  <option>15
                  <option>16
                  <option>17
                  <option>18
                  <option>19
                  <option>20
                  <option>21
                  <option>22
                  <option>23
                  <option>24
                  <option>25
                  <option>26
                  <option>27
                  <option>28
                  <option>29
                  <option>30
                  <option>31
	       </select>
               <b>.</b>
               <select name="geburtsdatum_monat" size="1">
                  <option>
                  <option>01
                  <option>02
                  <option>03
                  <option>04
                  <option>05
                  <option>06
                  <option>07
                  <option>08
                  <option>09
                  <option>10
                  <option>11
                  <option>12
	       </select>
               <b>.</b>
               <input name="geburtsdatum_jahr" size="4" maxlength="4">
	    </td>
            <td valign="top" align="left" class="submit"><font color="#E6E6FA">(Wiederholen)</font></td>
            <td class="submit"><input type="password" name="password2" size="30"></td>
         <tr>
            <td align="left" <?=$error['anschrift'] != "" ? "class='error'" : ""?>><b>Anschrift:</b></td>
            <td class="submit"><input class="inp260<?=$error['anschrift'] != "" ? "error" : ""?>" type="text" name="anschrift" size="30"></td>
            <td valign="top" align="left" <?=$error['email'] != "" ? "class='error'" : ""?>><b>Emailadresse:</b></td>
            <td class="submit"><input class="inp260<?=$error['email'] != "" ? "error" : ""?>" type="text" name="email" size="30"></td>
         <tr>
            <td align="left" <?=$error['plz'] != "" ? "class='error'" : ""?><?=$error['ort'] != "" ? "class='error'" : ""?>><b>PLZ, Ort:</b></td>
            <td class="submit"><input class="inp260<?=$error['plz'] != "" ? "error" : ""?>" type="text" name="plz" size="5" maxlength="5">&nbsp;<input class="inp260<?=$error['ort'] != "" ? "error" : ""?>" name="ort" size="20"></td>
            <td valign="top" align="left" class="submit"><font color="#E6E6FA">(Wiederholen)</font></td>
            <td class="submit"><input type="text" name="email2" size="30"></td>
         <tr>
            <td colspan="4" align="right" valign="top" class="submit">
               <input type="submit" name="anmelden" value="Anmelden" class="button">
            </td>
      </table>
      </td>
      <td height="350" align="left" valign="middle">
         <?php
                  if ( is_array($error) )
                  {
                  echo "<span style='color: #FF0000; font-weight: bold;'>";
                  echo "Folgende Fehler sind aufgetreten:";
                  echo "</span>";
                  }
               ?><br><br>               
               <?=$error['vorname'] != "" ? $msg['vorname'][$error['vorname']] : ""?><br>
               <?=$error['name'] != "" ? $msg['name'][$error['name']] : ""?><br>
               <?=$error['anschrift'] != "" ? $msg['anschrift'][$error['anschrift']] : ""?><br>
               <?=$error['plz'] != "" ? $msg['plz'][$error['plz']] : ""?><br>
               <?=$error['ort'] != "" ? $msg['ort'][$error['ort']] : ""?><br>
               <?=$error['user'] != "" ? $msg['user'][$error['user']] : ""?><br>
               <?=$error['password'] != "" ? $msg['password'][$error['password']] : ""?><br>
               <?=$error['email'] != "" ? $msg['email'][$error['email']] : ""?><br>
      </td>
   </tr></table>
   </form>


Was muss ich nun konkret ändern?
 
PHP:
<input class="inp260<?=$error['email'] != "" ? "error" : ""?>" type="text" name="email" size="30">

Da fehlt value="<?=$_POST['email']?>" und bei allen anderen auch, stand aber in dem Posting oben schon.

und nimm mal bei <form ... das topic=<?=$_GET['topic']?> raus ... wegen dem copy&paste, aber das hab ich ja auch schon erwähnt :P
 
Aaaah dankeschön

Ich hab noch nen kleiner Problem;

Das Script habe ich kopiert und angepasst. Nun wird aber der eigentliche Eintrag der Daten mit der Datei: add_user.php eingetragen. Hier steht aber noch folgendes:

PHP:
<form method="post" action="<?=$_SERVER['PHP_SELF']?>?topic=<?=$_GET['topic']?>&send=true">

und zur Prüfung wird das benutzt:

PHP:
if ( $_GET['send'] == true )

Wie muss ich das umbauen, dass er alle Daten an die Datei add_user.php schickt, aber vorher prüft?


Das geht leider nicht:

<form method="post" action="<?=$_SERVER['add_user.php']?>&send=true">

Oder wie muss ich vorgehen, wenn ich die Datei, die sendet (add_user.php):

PHP:
<?php

if (!isset($_POST['anmelden'])) {
    include('submit.php');
    exit; }

include('config.php');

$_POST['geburtsdatum'] = $_POST['geburtsdatum_tag'].'.'.$_POST['geburtsdatum_monat'].'.'.$_POST['geburtsdatum_jahr'];

$_POST['geschlecht'] = ( $_POST['geschlecht'] == 'Herr' ? 'm&auml;nnlich' : 'weiblich' );


$sql = "INSERT INTO user (vorname, name, geburtsdatum, geschlecht, anschrift, plz, ort, user, password, email) 
        VALUES ('". $_POST['vorname']."', '". $_POST['name']."', '". $_POST['geburtsdatum']."', '". $_POST['geschlecht']."', '". $_POST['anschrift']."', '". $_POST['plz']."', '". $_POST['ort']."', '". $_POST['user']."', '". $_POST['password']."', '". $_POST['email']."')";

mysql_query($sql) or die(error_reporting());   

echo"<meta HTTP-EQUIV='refresh' CONTENT='0; URL=submitted.html'>
";

?>


in meine jetzige datei einbinde und dieses Script dann starte wenn der submit button geklickt wurde:

PHP:
<form method="post" action="">


Das müsste auch eingebaut werden, bzw. angepasst;


PHP:
 if ( $_GET['send'] == true )
 
Brauche Hilfe!

Hier prüfe ich, ob alle Felder ausgefüllt wurden;

PHP:
<?php
    if ( $_GET['send'] == true )
    {

        $msg['vorname'][1]         = "<b>Vorname</b> fehlt<br>";
        $msg['vorname'][2]         = "<b>Vorname</b> (nur Buchstaben erlaubt)<br>";
        $msg['name'][1]            = "<b>Name</b> fehlt<br>";
        $msg['name'][2]            = "<b>Name</b> (nur Buchstaben erlaubt)<br>";
        $msg['anschrift'][1]       = "<b>Anschrift</b> fehlt<br>";
        $msg['plz'][1]             = "<b>Postleitzahl</b> fehlt<br>";
        $msg['plz'][2]             = "<b>Postleitzahlt</b> (5 Zahlen erlaubt)<br>";
        $msg['ort'][1]             = "<b>Ort</b> fehlt<br>";
        $msg['ort'][2]             = "<b>Ort</b> (nur Buchstaben erlaubt)<br>";
        $msg['user'][1]            = "<b>Benutzername</b> fehlt<br>";
        $msg['password'][1]        = "<b>Passwort</b> fehlt<br>";
        $msg['email'][1]           = "<b>Emailadresse</b> fehlt<br>";
        $msg['email'][2]           = "<b>Emailadresse</b> falsch<br>";


        # Vorname
        if ( ( !preg_match("/^[a-zäöüA-ZÄÖÜ\- ]*$/", $_POST['vorname'], $matches) ) && ( $_POST['vorname'] != "" ) )
        {
            $error['vorname'] = 2;
        }
        elseif ( $_POST['vorname'] == "" )
        {
            $error['vorname'] = 1;
        }
        # Name

        if ( ( !preg_match("/^[a-zäöüA-ZÄÖÜ\- ]*$/", $_POST['name'], $matches) ) && ( $_POST['name'] != "" ) )
        {
            $error['name'] = 2;
        }
        elseif ( $_POST['name'] == "" )
        {
            $error['name'] = 1;
        }

        # Geburtsdatum
        if ( $_POST['geburtsdatum'] == "" )
        {
            $error['geburtsdatum'] = 1;
        }

        # Anschrift
        if ( $_POST['anschrift'] == "" )
        {
            $error['anschrift'] = 1;
        }

        # PLZ
        if ( ( !preg_match("/^[0-9]{5}$/", $_POST['plz'], $matches) ) && ( $_POST['plz'] != "" ) )
        {
            $error['plz'] = 2;
        }
        elseif ( $_POST['plz'] == "" )
        {
            $error['plz'] = 1;
        }

        # Ort
        if ( ( !preg_match("/^[a-zäöüßA-ZÄÖÜ\.\- ]*$/", $_POST['ort'], $matches) ) && ( $_POST['ort'] != "" ) )
        {
            $error['ort'] = 2;
        }
        elseif ( $_POST['ort'] == "" )
        {
            $error['ort'] = 1;
        }

        # Benutzername
        if ( $_POST['user'] == "" )
        {
            $error['user'] = 1;
        }

        # Passwort
        if ( $_POST['password'] == "" )
        {
            $error['password'] = 1;
        }

        # E-Mail-Addresse
        if ( ( !preg_match("/^[\w\-\.]+@[\w\-\.]+\.[^\d]{2,4}$/", $_POST['email'], $matches) ) && ( $_POST['email'] != "" ) )
        {
            $error['email'] = 2;
        }
        elseif ( $_POST['email'] == "" )
        {
            $error['email'] = 1;
        }
    }
?>


Wenn alles ausgefüllt ist, sollen die Daten per
PHP:
<form method="post" action="new_user.php">
übergeben werden.

Nun wird aber nicht mehr geprüft! Was fehlt da noch? Ursprünglich sah das so aus;

PHP:
<form method="post" action="<?=$_SERVER['PHP_SELF']?>?topic=<?=$_GET['topic']?>&send=true">

DANKESCHÖN
 
Zurück