Hallo Wolfgang,
if($Abschicken)
Hmmm. Ich würde an Deiner Stelle $HTTP_POST_VARS['Abschicken'] (PHP 4.0) oder $_POST['Abschicken'] (PHP 4.1, 4.2 oder 4.3) verwenden. Ist sinnvoller, denn dann weißt Du genau, woher alles kam. Außerdem ist register_globals in PHP 4.2 und höher normalerweise deaktiviert, dann funktioniert das nur noch mit $_POST. (naja, die meisten Hoster lassen es aktiviert, damit es keine Probleme gibt, aber irgendwann wird es deaktiviert sein) Das hat z.T. auch Sicherheitsgründe.
if (empty($Name) || empty($Firma))
Wieder $_POST['Name'] und $_POST['Firma'].
echo "$felderleer";exit;
Wenn Du den Inhalt einer Variable ausgibst, dann setze sie nicht in doppelte Anführungszeichen, denn das kostet Rechenzeit. Gut, hier spielt es keine so große Rolle, aber es ist besser, Du verwendest
echo $feldleer; exit;
if (! ereg("[1]+(.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+.)+([a-zA-Z]{2,3})$", $eMail, $regs))
Erstens würde ich nicht ereg verwenden, sondern preg_match. (schneller und binärsicher) Zweitens ist der Ausdruck falsch. http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/ liefert einen besseren, aber der ist immer noch nicht ganz richtig. (Die Zeile $dom_tldpart = '[a-zA-Z]{2,5}'; muss durch $dom_tldpart = '[a-zA-Z]{2,6}'; ersetzt werden, dann stimmts)
echo "$mailfalsch";exit;
echo $mailfalsch; exit;
if (!preg_match("/^\d+$/",$Vorwahl))
Seltsam, hier verwendest Du preg_match...
echo "$nummerfalsch";exit;
echo $nummerfalsch; exit;
echo "$nummerfalsch";exit;
echo $nummerfalsch; exit;
<input type="radio" name="Antwort" value="Anruf" checked="checked">
Wir möchten zurückgerufen werden !
<input type="radio" name="Antwort" value="Mail">
Wir bitten um Beantwortung nachstehender eMail !Ich denke, dass ich diese dann noch als Array definieren müsste?
Nein.
Je nachdem, welcher von beiden aktiviert ist, soll nur das entsprechende Regexp aufgerufen und bei fehlerhafter Feldeingabe die Fehlermeldung auf einer neuen Seite im gleichen Fenster mit Zurück-Button angezeigt (wie jetzt im Script schon vorhanden).
Genau.
Mir fehlt der Lösungsansatz, wie ich diese Prüfung bevor die While-Schleife ausliest, bewerkstelligen kann. Ich denke mit if(isset ..... und wie müsste dann das Script bei jeder Abfrage heißen ?
Ich 'skizziere' mal:
if (isset ($_POST['Abschicken'])) {
if ($_POST['Antwort'] == 'Anruf') {
// hier die Überprüfung der Telefonnummer
} else if ($_POST['Antwort'] == 'Mail') {
// hier die Überprüfung der Email
} else {
// irgendwer manipuliert was...
}
}
Wenn Du davon etwas nicht verstehst, melde Dich noch mal.
Grüße,
Christian
Ich wünsche allen frohe Weihnachten!
Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
_a-zA-Z0-9- ↩︎