Hallo PHP Gemeinde,
so ich habe wieder mal ein Problem mit einem Kontaktformular.
Problembeschreibung:
In diesem Formular habe ich zwei Felder, die über einen Radiobutton aktiviert werden. Eine Überprüfung findet auch statt, ob die Felder leer sind oder nicht.
So wenn ich per E-Mail Kontakt anklicke, läuft das Formular ohne Fehler durch und wird versendet.
Klicke ich über den Radiobutton Kontakt per Telefon an und das Feld für die Tel.Nr erscheid, gibt die Feldüberprüfung immer einen Fehler aus und das Formular wird nicht versendet.
Das Kann ich mir nicht erklären und sitze nun einige Zeit an diesem Fehler.
Hier mal die relevanten Posting:
Hier die Fehlerüberprüfung
(Ich weiss das es auch anders geht aber so ist es nun mal)
Hier der Bereich mit dem Kontaktaufnehmen (Lasse die anderen Formularfelder weg)
So kann mir einer sagen warum das Formular nicht versendet wird, wenn ich "Kontakt per Rückruf" anwähle und alle Felder ausfülle.
Der Fehler liegt, so vermute ich, das ein leere Feld in der Überprüfung ist, was dann $read=1 zurück liefert. Wie kann ich das umgehen
anke für Eure Hilfe und ich hoffe ich habe das Problem, einigermaßen gut beschrieben.
Euer Fredolin
so ich habe wieder mal ein Problem mit einem Kontaktformular.
Problembeschreibung:
In diesem Formular habe ich zwei Felder, die über einen Radiobutton aktiviert werden. Eine Überprüfung findet auch statt, ob die Felder leer sind oder nicht.
So wenn ich per E-Mail Kontakt anklicke, läuft das Formular ohne Fehler durch und wird versendet.
Klicke ich über den Radiobutton Kontakt per Telefon an und das Feld für die Tel.Nr erscheid, gibt die Feldüberprüfung immer einen Fehler aus und das Formular wird nicht versendet.
Das Kann ich mir nicht erklären und sitze nun einige Zeit an diesem Fehler.
Hier mal die relevanten Posting:
Hier die Fehlerüberprüfung
(Ich weiss das es auch anders geht aber so ist es nun mal)
PHP:
if(isset($_POST['senden'])){
$ready = 1;
if(empty($_POST['returncon'])){
$ready = 0;
$error[returncon] = 'Bitte wählen Sie aus';
}
if(empty($_POST['vorname'])){
$ready = 0;
$error[vorname] = 'Dein Vorname fehlt!';
}
if(empty($_POST['nachname'])){
$ready = 0;
$error[nachname] = 'Dein Nachname fehlt!';
}
if(!preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-z]{2,6}$/i", $_POST['email'])){
$ready = 0;
$error[email] = 'Gib deine E-Mailadresse richtig ein';
}
if(!preg_match("[0-9]", $_POST['telnr'])){
$ready = 0;
$error[telnr] = 'Bitte eine TelefonNr. angeben';
}
if(empty($_POST['subject'])){
$ready = 0;
$error[subject] = 'Dein Betreff fehlt!';
}
if(empty($_POST['messages'])){
$ready = 0;
$error[messages] = 'Deine Nachricht fehlt!';
}
Hier der Bereich mit dem Kontaktaufnehmen (Lasse die anderen Formularfelder weg)
PHP:
<div class="rubrik">
<div class="logo">Wie möchten Sie, dass wir Sie zurück kontaktieren?<?php echo '<br /><span class="formerror">'.$error['returncon'].'</span>' ?></div>
<div class="text"><input type="radio" name="returncon" value="perMail" onclick="swapDiv('returnconMail');"/> Bitte per Mail</div>
<div class="text"><input type="radio" name="returncon" value="perTel" onclick="swapDiv('returnconTel');" /> Bitte per Rückruf</div>
<div class="clear"></div>
<div id="returnconMail" style="display:none;">
<div class="logo">*E-Mail Adresse:<?php echo'<br /><span class="formerror">'.$error['email'].'</span>'?></div>
<div class="text"><input type="text" name="email" class="formmail" tabindex="1" value="<?php echo $_POST['email'] ?>" /></div>
</div>
<div id="returnconTel" style="display:none;">
<div class="logo">*Telefon Nr.:<?php echo'<br /><span class="formerror">'.$error['telnr'].'</span>' ?></div>
<div class="text"><input type="text" name="telnr" class="formmail" tabindex="1" value="<?php echo $_POST['telnr'] ?>" /></div>
</div>
<div class="leer"></div>
<div class="clear"></div>
</div>
if (isset($_POST['senden']) && $ready)
{
$mailaddy = "emailaddy";
$mailbody= "Mailinhalt";
$headers ='Mailkopfangaben';
$send = @mail($mailaddy, $_POST['subject'], $mailbody, $headers);
if($send){
echo 'Mail verschickt';
} else {
echo 'Mail nicht verschickt';
}
}
So kann mir einer sagen warum das Formular nicht versendet wird, wenn ich "Kontakt per Rückruf" anwähle und alle Felder ausfülle.
Der Fehler liegt, so vermute ich, das ein leere Feld in der Überprüfung ist, was dann $read=1 zurück liefert. Wie kann ich das umgehen
anke für Eure Hilfe und ich hoffe ich habe das Problem, einigermaßen gut beschrieben.
Euer Fredolin