Hi Leute,
ich bin anfänger und habe auf diesem forum bereits einiges gefunden und gelernt, somit war ich in der lage, das formular bis auf folgende Punkte lauffähig zu bringen. wäre sehr nett von euch, wenn ihr mir bei meinem problem helfen könntet!
1.) die select felder (anrede und seminartermine) sind ebenfalls pflichtfelder - wie kann ich diese prüfen ?
2.) da ich ein captcha feld habe, müsste auch dieses auf korrekte eingabe geprüft werden?
3.) ferner sollte der absender automatisch eine bestätigungsmail mit allen angaben erhalten.
Vielen Dank
CU kleinerbaer
Hier nun das Script
<?php
// Zufalls-Generierung des Captchas
$Buchstaben=array("A", "B", "C", "D", "E", "F", "G", "H", "K", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y");
$Zahlen=array("2", "3", "4", "5", "6", "7", "8", "9");
for($i=0, $Code=""; strlen($Code)<6; $i++)
{
if(rand(0, 1)==0 && isset($Buchstaben))
{
$Buchstabe=$Buchstaben[rand(0, count($Buchstaben))];
$Code.=$Buchstabe;
$AngezeigterCode.=$Buchstabe." ";
}
else
{
$Zahl=$Zahlen[rand(0, count($Zahlen))];
$Code.=$Zahl;
$AngezeigterCode.=$Zahl." ";
}
}
$AngezeigterCode=trim($AngezeigterCode);
?>
// ----------------- Eingabeprüfung ------------------------------->
<?php
if ($Submit) {
if(!ereg("^([a-zA-Z '-]+)$", $nachname)){
$error_msg.='Bitte geben Sie Ihren Namen ein.<br>';
}
if(!ereg("^([a-zA-Z '-]+)$", $ort)){
$error_msg.='Bitte geben Sie Ihren Wohnort ein.<br>';
}
if (!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$email)){
$error_msg.='Bitte gib eine gültige E-Mail Adresse an.<br>';
}
if ($error_msg){
// Eines der Felder wurde nicht korrekt ausgefüllt
echo "Ihre Nachricht konnte aus folgenden Gründen leider nicht verschickt werden werden:<br><br>";
echo $error_msg;
echo "<br>Bitte klicken Sie auf <a href=javascript:history.back(1)>zurück</a> und fülle alle Felder aus.";
} else {
// ----------------------- Eunde Eingabeprüfung --------------------------------->
// Alle Felder ausgefüllt - E-Mail generieren
// Hier mußt du deine Daten angeben!!!
// ---------------------------- ANFANG ----------------------------------------->
$recipient = ".........@.....de";
$subject = "Anmeldung von $anrede, $nachname";
// ----------------------------- ENDE ------------------------------------------>
// ----------------------------- Formular verarbeiten ---------------------->
// ---- Ende der E-Mail! ---- ";
// Formular ausgeführt! Mitteilung wird ausgegeben.
//--------------- Text ------------->
}
} else { // Formular noch nicht ausgeführt! Formular wird angezeit.
?>
// --------------- Ende ------------>
// --------------------- Formular Anfag --------------------->
<form action=<?php echo $PHP_SELF ?> method="post">
<TABLE WIDTH="505" BORDER="0" align="center" CELLSPACING="1" STYLE=" ">
<TR>
<TD WIDTH="87" ALIGN="left">Firma:</TD>
<TD WIDTH="22" ALIGN="center"> </TD>
<TD WIDTH="162" ALIGN="left"> <input name="firma" type="text" id="firma" size="20" tabindex="1">
</TD>
<TD WIDTH="244" ALIGN="center">Anmeldung für Seminar: *</TD>
</TR>
<TR>
<TD WIDTH="87" ALIGN="left">Anrede:</TD>
<TD WIDTH="22" ALIGN="center">*</TD>
<TD WIDTH="162" ALIGN="left"> <P ALIGN="left">
<select name="anrede" id="anrede" tabindex="2">
<option>Auswahl</option>
<option value="Herr">Herr</option>
<option value="Frau">Frau</option>
<option value="Prof">Prof.</option>
<option value="Dr.">Dr.</option>
</select>
</P></TD>
<TD WIDTH="244" ALIGN="center"><select name="seminar" id="seminar" tabindex="11">
<option>Bitte Angeben</option>
<option value="Fr., 01.12.06, 16-18:30 Uhr">Fr., 01.12.06, 16-18:30
Uhr</option>
<option value="Fr., 15.12.06, 16-18:30 Uhr">Fr., 15.12.06, 16-18:30
Uhr</option>
<option value="Di., 05.12.06, 18-20:30 Uhr">Di., 05.12.06, 18-20:30
Uhr</option>
<option value="Mi., 20.12.06, 18-20:30 Uhr">Mi., 20.12.06, 18-20:30
Uhr</option>
<option value="Do.,25.01.06, 18-20:20 Uhr">Do.,25.01.06, 18-20:20 Uhr</option>
</select> </TD>
<TD ALIGN="left">E-Mail:</TD>
<TD ALIGN="center">*</TD>
<TD ALIGN="left"><input name="email" type="text" id="email3" size=20 tabindex="10"></TD>
</TR>
<TR>
<TD ALIGN="left"> </TD>
<TD ALIGN="center"> </TD>
<TD ALIGN="left"> </TD>
<TD ALIGN="center"> </TD>
</TR>
<TR>
<TD ALIGN="left"><br /> </TD>
<TD ALIGN="left"> </TD>
<TD ALIGN="left"><img border="0" height="50" src="captcha.php?Code=<?php echo $AngezeigterCode; ?>" width="150" alt="Captcha" />
</TD>
<TD ALIGN="center"> Sicherheitscode Eingeben*<br>
<input name="captcha" type="text" id="captcha" tabindex="13"/></TD>
</TR>
<TR>
<TD ALIGN="left"> </TD>
<TD ALIGN="center"> </TD>
<TD ALIGN="left"> </TD>
<TD ALIGN="center"> </TD>
</TR>
<TR>
<TD WIDTH="87" ALIGN="left"> </TD>
<TD WIDTH="22" ALIGN="center"> </TD>
<TD WIDTH="162" ALIGN="left"> <input name="loeschen" type="reset" value="Löschen" >
</TD>
<TD WIDTH="244" ALIGN="center"><input type="submit" name="Submit" value="Abschicken" >
</TD>
</TR>
</TABLE>
</form>
<?php } ?>
// --------------------- Ende des Formular ----------------->
Dann habe ich hier vor einigen Tagen dies gefunden!
aber wie gesagt, meine PHP kenntnisse sind nicht so gut, um dies in mein Formular einzubinden!
<?php
// Wenn das Formular gesendet werden soll...
if($_GET['action'] == "send")
{
// ...der Cookie gegen Spam nicht gesetzt ist...
if($_COOKIE["spam_protection"] != "spam_protection")
{
// ... und der Captcha NICHT stimmt...
if(strtolower($_POST['Code']) != strtolower($_POST['captcha']))
{
// ...dann eine Fehlermeldung ausgeben!
echo "<p><img src=\"stop.gif\" width=\"20\" height=\"20\" alt=\"Fehler\" /> <font style=\"color:darkred; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\"><b>Der eingegebene Spamschutz-Code ist falsch!</b></font></p>";
}
// Ansonsten, wenn der Captcha stimmt...
if(strtolower($_POST['Code']) == strtolower($_POST['captcha']))
{
// ...und die eingegeben E-Mail Adresse in Wahrheit keine ist...
if(!ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{
// ...dann eine Fehlermeldung ausgeben!
echo "<p><img src=\"stop.gif\" width=\"20\" height=\"20\" alt=\"Fehler\" /> <font style=\"color:darkred; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\"><b>Die eingegebene E-Mail-Adresse ist ungültig!</b></font></p>";
}
// Ansonsten, wenn die eingegebene E-Mail Adresse auch wirklich eine ist...
if(ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{
// ...und kein Feld leer ist...
if(!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']))
{
// dann den ganzen Muell von Spambots oder auch menschlichen Spammern entfernen...
$name = nl2br(stripslashes(htmlspecialchars($_POST['name'])));
$IP = getenv("REMOTE_ADDR");
$absender = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $_POST['email'] );
$absender = preg_replace( "/(content-type:|bcc:|cc:|to:|from/im", "", $absender );
$nachricht = nl2br(stripslashes(htmlspecialchars($_POST['message'])));
// ...die Nachricht, die Sie erhalten moechten, wenn eine neue Nachricht an Sie versandt wurde, definieren...
$mailnachricht = "Hallo!\n\nEs ist eine neue Nachricht fuer Sie eingetroffen:\n\n---------------------------------------------\n\nName:\n$name\n\nIP:\n$IP\n\nE-Mail:\n$absender\n\nNachricht:\n$nachricht\n\n---------------------------------------------\n\nSie koennen dem Absender der Nachricht direkt antworten, indem Sie einfach auf diese E-Mail antworten.\n\nMfG\nBotty ;-)";
// ...an Sie verschicken...
mail("
Ihre@E-Mail.de", "Neue Nachricht fuer Sie!", $mailnachricht, "From: $name <$absender>");
// ...und dem Benutzer sagen, dass alles glatt lief!
echo "<p><img src=\"ok.gif\" width=\"20\" height=\"20\" alt=\"Okay\" /> <font style=\"color:darkgreen; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\"><b>Vielen Dank für Ihre Nachricht!</b> Wir lassen Ihnen umgehend eine Antwort zukommen.</font></p>";
}
// Wenn nicht alle Felder ausgefuellt wurden, dann...
else
{
// eine Fehlermeldung ausgeben!
echo "<p><img src=\"stop.gif\" width=\"20\" height=\"20\" alt=\"Fehler\" /> <font style=\"color:darkred; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\"><b>Bitte füllen Sie alle Felder aus!</b></font></p>";
}
}
}
}
}
?>