Kontaktformular mti pflichtfeldern versehen

hallo
ich habe auf meienr hp ein kontaktformular nur mir ist aufgefallen das da keine pflichtfelder sind, die möchte ich aber gerne haben.
wie geht das denn?
und ich würde auch gern so eine rechenaufgabe da zu machen, dass ich vor spam geschützt bin :smiley:

so ungefähr siehts gerade bei mir aus ist ein kleiner ausschnitt meines htmlcodes :smiley:
was muss ich also ändern?
danke schonmal

// Und zu guter Letzt werden die Sonderzeichen für die HTML-Ausgabe codiert und die Backslashes aus der Mail entfernt
if( isset($_POST[„send“]) && is_array($_POST[„send“]) ) {
if(empty($_POST[„send“][„autor“])) {
$fautor = "Sie müssen einen Namen eingeben!
";
} else { $fautor = "Name ok!
"; $i++; }
if(empty($_POST[„send“][„betreff“])) {
$fbetreff = "Sie müssen einen Betreff eingeben!
";
} else { $fbetreff = "Betreff ok!
"; $i++; }
if(empty($_POST[„send“][„mail“])) {
$fmail = "Sie müssen Ihre E-Mail-Adresse eingeben!
";
} else { $fmail = "Adresse ok!
"; $i++; }
if(empty($_POST[„send“][„nachricht“])) {
$fnachricht = "Sie müssen eine Nachricht eingeben!
";
} else { $fnachricht = "Nachricht ok!
"; $i++; }
if ($lengthm > „50“) {
$flmail = "Ihre eingegebene E-Mail-Adresse ist zu lang!
"; $fmail = „“; }
else { $i++; }
if ($lengtha > „30“) {
$flautor = "Ihr eingegebener Name ist zu lang!
"; $fautor = „“; }
else { $i++; }
if ($lengthb > „150“) {
$flbetreff = "Ihr eingegebener Betreff ist zu lang!
"; $fbetreff = „“; }
else { $i++; }
if ($lengthn > „60000“) {
$flnachricht = "Ihre eingegebene Nachricht darf nicht mehr
als 60000 Zeichen haben! Sie hat: „.$lengthn.“
"; $fnachricht = „“; }
else { $i++; }
if (!strpos($_POST[„send“][„mail“], „@“) == „false“ or substr_count($_POST[„send“][„mail“], „@“) > 1) {
$fgmail = „Ihre angegebene E-Mail Adresse ist nicht gültig!
„; $fmail = „“; }
else { $i++; }
if( !empty ( $_POST[„send“][„mail“] ) && !checkdnsrr( array_pop( explode(“@“,$_POST[„send“][„mail“]) ),„MX“ ) ){
$fgmail = "Ihre angegebene E-Mail Adresse ist nicht gültig!
"; $fmail = „“; }
else { $i++; }

if (substr_count($_POST[„send“][„autor“], „@“) >= 1) {
$fgautor = "Aus Sicherheitsgründen darf das Namensfeld kein @ Zeichen enthalten!
„; $fautor = „“;
} else { $i++; }
$str = „:/,““;
if (strcspn($_POST[„send“][„mail“], $str) "; $fmail = „“ ;
} else { $i++ ; }
if (get_magic_quotes_gpc() == „1“) {
$_POST[„send“][„autor“] = stripslashes($_POST[„send“][„autor“]);
$_POST[„send“][„betreff“] = stripslashes($_POST[„send“][„betreff“]);
$_POST[„send“][„mail“] = stripslashes($_POST[„send“][„mail“]);
$_POST[„send“][„nachricht“] = stripslashes($_POST[„send“][„nachricht“]);
}
$sautor = htmlspecialchars($_POST[„send“][„autor“]);
$sbetreff = htmlspecialchars($_POST[„send“][„betreff“]);
$smail = htmlspecialchars($_POST[„send“][„mail“]);
$snachricht = htmlspecialchars($_POST[„send“][„nachricht“]);

if ($i == „12“) {
if ( $umbruch == „no“) {
$texto = $snachricht;
} else {
$texto = wordwrap($snachricht , $umbruch );
}
$snachricht = $sautor ." mit der Mail Adresse: „.$smail.“ hat ihnen folgende Nachricht gesendet: \n \n ".$texto;
$fautor = " Ihre Mail wurde versendet! ";
$fbetreff = „“;
$fmail = „“;
$fnachricht = „“;
// Und ab dafür… je nachdem mit oder ohne additional_parameters
if( empty($add) ) {
if ( mail( $adresse, $sbetreff, $snachricht, "From: ".$smail, "-f ".$adresse ) ) {
$fautor = " Ihre Mail wurde versendet! ";
unset($sautor);
unset($sbetreff);
unset($smail);
unset($snachricht);
} else {
$snachricht = $texto;
$fautor = " Fehler! Mail konnte nicht gesendet werden. ";

hallo
ich habe auf meienr hp ein kontaktformular nur mir ist
aufgefallen das da keine pflichtfelder sind, die möchte ich
aber gerne haben.
wie geht das denn?

Prüfen mit isset(), empty(), strlen(), je nach dem!! Ggf. die Fehlermeldungen aneinanderhängen:
zB so:
$error = " Fehler1 ";
$error .= " Fehler2 ";
$error .= " Fehler3 ";
$error .= " Fehler4 ";

if(isset($error) && strlen($error) > 0) echo $error;

und ich würde auch gern so eine rechenaufgabe da zu machen,
dass ich vor spam geschützt bin :smiley:

Das ist einfach, du schreibst den Output für den Browser zB 7 + 2 = ??.
In ein Hiddenfeld schreibst du eine ID zB 39jk182kasfh . *g*
Das Ergebnis und die dazugehörige ID schreibst du in die Datenbank.

Dann beim Absenden des Formulars überprüfst du die eingegebene Lösung mit dem Ergebnis aus der Datenbank und wenn WAHR, dann ABSENDEN ansonsten FALSCH, neue RECHENAUFGABE STARTEN.

so ungefähr siehts gerade bei mir aus ist ein kleiner
ausschnitt meines htmlcodes :smiley:

Das ist kein HTML das ist PHP!

was muss ich also ändern?
danke schonmal

// Und zu guter Letzt werden die Sonderzeichen für die
HTML-Ausgabe codiert und die Backslashes aus der Mail entfernt
if( isset($_POST[„send“]) && is_array($_POST[„send“]) ) {
if(empty($_POST[„send“][„autor“])) {
$fautor = "Sie müssen einen Namen eingeben!
";
} else { $fautor = "Name ok!
"; $i++; }
if(empty($_POST[„send“][„betreff“])) {
$fbetreff = "Sie müssen einen Betreff eingeben!
";
} else { $fbetreff = "Betreff ok!
"; $i++; }
if(empty($_POST[„send“][„mail“])) {
$fmail = "Sie müssen Ihre E-Mail-Adresse
eingeben!
";
} else { $fmail = "Adresse ok!
"; $i++; }
if(empty($_POST[„send“][„nachricht“])) {
$fnachricht = "Sie müssen eine Nachricht
eingeben!
";
} else { $fnachricht = "Nachricht ok!
"; $i++; }
if ($lengthm > „50“) {
$flmail = "Ihre eingegebene E-Mail-Adresse ist zu
lang!
"; $fmail = „“; }
else { $i++; }
if ($lengtha > „30“) {
$flautor = "Ihr eingegebener Name ist zu lang!
";
$fautor = „“; }
else { $i++; }
if ($lengthb > „150“) {
$flbetreff = "Ihr eingegebener Betreff ist zu
lang!
"; $fbetreff = „“; }
else { $i++; }
if ($lengthn > „60000“) {
$flnachricht = "Ihre eingegebene Nachricht darf nicht
mehr
als 60000 Zeichen haben! Sie hat:
„.$lengthn.“
"; $fnachricht = „“; }
else { $i++; }
if (!strpos($_POST[„send“][„mail“], „@“) == „false“ or
substr_count($_POST[„send“][„mail“], „@“) > 1) {
$fgmail = „Ihre angegebene E-Mail Adresse ist nicht
gültig!
„; $fmail = „“; }
else { $i++; }
if( !empty ( $_POST[„send“][„mail“] ) && !checkdnsrr(
array_pop( explode(“@“,$_POST[„send“][„mail“]) ),„MX“ ) ){
$fgmail = "Ihre angegebene E-Mail Adresse ist
nicht gültig!
"; $fmail = „“; }
else { $i++; }

if (substr_count($_POST[„send“][„autor“], „@“) >= 1) {
$fgautor = "Aus Sicherheitsgründen darf das Namensfeld kein
@ Zeichen enthalten!
„; $fautor = „“;
} else { $i++; }
$str = „:/,““;
if (strcspn($_POST[„send“][„mail“], $str) "; $fmail = „“ ;
} else { $i++ ; }
if (get_magic_quotes_gpc() == „1“) {
$_POST[„send“][„autor“] =
stripslashes($_POST[„send“][„autor“]);
$_POST[„send“][„betreff“] =
stripslashes($_POST[„send“][„betreff“]);
$_POST[„send“][„mail“] =
stripslashes($_POST[„send“][„mail“]);
$_POST[„send“][„nachricht“] =
stripslashes($_POST[„send“][„nachricht“]);
}
$sautor = htmlspecialchars($_POST[„send“][„autor“]);
$sbetreff = htmlspecialchars($_POST[„send“][„betreff“]);
$smail = htmlspecialchars($_POST[„send“][„mail“]);
$snachricht = htmlspecialchars($_POST[„send“][„nachricht“]);

if ($i == „12“) {
if ( $umbruch == „no“) {
$texto = $snachricht;
} else {
$texto = wordwrap($snachricht , $umbruch );
}
$snachricht = $sautor ." mit der Mail Adresse: „.$smail.“
hat ihnen folgende Nachricht gesendet: \n \n ".$texto;
$fautor = " Ihre Mail wurde versendet! ";
$fbetreff = „“;
$fmail = „“;
$fnachricht = „“;
// Und ab dafür… je nachdem mit oder ohne
additional_parameters
if( empty($add) ) {
if ( mail( $adresse, $sbetreff, $snachricht, "From:
".$smail, "-f ".$adresse ) ) {
$fautor = " Ihre Mail wurde
versendet! ";
unset($sautor);
unset($sbetreff);
unset($smail);
unset($snachricht);
} else {
$snachricht = $texto;
$fautor = " Fehler! Mail konnte nicht gesendet
werden. ";

Viel Erfolg.
Gruss,
Sebastian

hallo
dnake für die antwort sebastian
ich versteh aber nur bahnhof da ich ja nciht einmal html von php unterscheiden kann.
wäre es möglich, dass du die sachen schon in mein php einbaust dun ich es kopieren kann und einfügen und sehen kann ob es geht?
wäre das machbar?!

// Und zu guter Letzt werden die Sonderzeichen für die
HTML-Ausgabe codiert und die Backslashes aus der Mail entfernt
if( isset($_POST[„send“]) && is_array($_POST[„send“]) ) {
if(empty($_POST[„send“][„autor“])) {
$fautor = "Sie müssen einen Namen eingeben!
";
} else { $fautor = "Name ok!
"; $i++; }
if(empty($_POST[„send“][„betreff“])) {
$fbetreff = "Sie müssen einen Betreff eingeben!
";
} else { $fbetreff = "Betreff ok!
"; $i++; }
if(empty($_POST[„send“][„mail“])) {
$fmail = "Sie müssen Ihre E-Mail-Adresse
eingeben!
";
} else { $fmail = "Adresse ok!
"; $i++; }
if(empty($_POST[„send“][„nachricht“])) {
$fnachricht = "Sie müssen eine Nachricht
eingeben!
";
} else { $fnachricht = "Nachricht ok!
"; $i++; }
if ($lengthm > „50“) {
$flmail = "Ihre eingegebene E-Mail-Adresse ist zu
lang!
"; $fmail = „“; }
else { $i++; }
if ($lengtha > „30“) {
$flautor = "Ihr eingegebener Name ist zu lang!
";
$fautor = „“; }
else { $i++; }
if ($lengthb > „150“) {
$flbetreff = "Ihr eingegebener Betreff ist zu
lang!
"; $fbetreff = „“; }
else { $i++; }
if ($lengthn > „60000“) {
$flnachricht = "Ihre eingegebene Nachricht darf nicht
mehr
als 60000 Zeichen haben! Sie hat:
„.$lengthn.“
"; $fnachricht = „“; }
else { $i++; }
if (!strpos($_POST[„send“][„mail“], „@“) == „false“ or
substr_count($_POST[„send“][„mail“], „@“) > 1) {
$fgmail = „Ihre angegebene E-Mail Adresse ist nicht
gültig!
„; $fmail = „“; }
else { $i++; }
if( !empty ( $_POST[„send“][„mail“] ) && !checkdnsrr(
array_pop( explode(“@“,$_POST[„send“][„mail“]) ),„MX“ ) ){
$fgmail = "Ihre angegebene E-Mail Adresse ist
nicht gültig!
"; $fmail = „“; }
else { $i++; }

if (substr_count($_POST[„send“][„autor“], „@“) >= 1) {
$fgautor = "Aus Sicherheitsgründen darf das Namensfeld kein
@ Zeichen enthalten!
„; $fautor = „“;
} else { $i++; }
$str = „:/,““;
if (strcspn($_POST[„send“][„mail“], $str) "; $fmail = „“ ;
} else { $i++ ; }
if (get_magic_quotes_gpc() == „1“) {
$_POST[„send“][„autor“] =
stripslashes($_POST[„send“][„autor“]);
$_POST[„send“][„betreff“] =
stripslashes($_POST[„send“][„betreff“]);
$_POST[„send“][„mail“] =
stripslashes($_POST[„send“][„mail“]);
$_POST[„send“][„nachricht“] =
stripslashes($_POST[„send“][„nachricht“]);
}
$sautor = htmlspecialchars($_POST[„send“][„autor“]);
$sbetreff = htmlspecialchars($_POST[„send“][„betreff“]);
$smail = htmlspecialchars($_POST[„send“][„mail“]);
$snachricht = htmlspecialchars($_POST[„send“][„nachricht“]);

if ($i == „12“) {
if ( $umbruch == „no“) {
$texto = $snachricht;
} else {
$texto = wordwrap($snachricht , $umbruch );
}
$snachricht = $sautor ." mit der Mail Adresse: „.$smail.“
hat ihnen folgende Nachricht gesendet: \n \n ".$texto;
$fautor = " Ihre Mail wurde versendet! ";
$fbetreff = „“;
$fmail = „“;
$fnachricht = „“;
// Und ab dafür… je nachdem mit oder ohne
additional_parameters
if( empty($add) ) {
if ( mail( $adresse, $sbetreff, $snachricht, "From:
".$smail, "-f ".$adresse ) ) {
$fautor = " Ihre Mail wurde
versendet! ";
unset($sautor);
unset($sbetreff);
unset($smail);
unset($snachricht);
} else {
$snachricht = $texto;
$fautor = " Fehler! Mail konnte nicht gesendet
werden. ";

Viel Erfolg.
Gruss,
Sebastian