Thema: PHP-Kontaktformular und Grafik-Check
Klicke hier, um dich anzumelden
Du kannst aus dieser Liste ein Symbol für deine Nachricht auswählen.
Wenn du diese Option aktivierst, werden URLs automatisch mit BB-Code ergänzt. www.beispiel.de wird zu [URL]http://www.beispiel.de[/URL].
Wenn du möchtest, kannst du dieses Thema bewerten.
Danke sehr. Mit dem Captcha habe ich es nun auch gelöst.
Hallo, das was du suchst, nennt sich captcha (http://de.wikipedia.org/wiki/Captcha) Selbstverständlich hab ich nicht die zeit, dir diese funktionalität zu programmieren, aber ich kann dir zwei hinweise geben: 1.) um eine Captcha funktionalität selber zu bauen, benötigst du PHP Grafikbibilothek PHP GD 2.) wenn dies etwas zu kompliziert ist kannst du fertuge sachen nehmen, wie dieses simple beispiel: http://www.stoppt-den-spam.info/webm...hp-script.html
Hallo liebe Forengemeinde, ich benutze unten aufgeführtes Skript für ein PHP-Kontaktformular. Es funktioniert auch ganz gut und mit dem E-Mail-Check klappt auch alles. Das Problem ist, dass dass die ganzen Bots mittlerweile ja schon etwas schlauer sind und die ganzen Formulare korrekt ausfüllen. Daher wollte ich einfach eine Grafik mit einer Zahl oder einem Wort neben das Formular packen und eine Abfrage eben dieses Wortes einrichten, so dass der ganze Mist nicht mehr durchkommt. Da ich mich kaum mit PHP auskenne, benötige ich eure Hilfe und frage euch, wie das Skript stattdessen aussehen müsste? Muss die Abfrage in einer anderen Datei stattfinden, damit der Bot das Wort nicht schon in der PHP- Datei auslesen kann oder wie löst man das Problem? Vielen Dank euch im Voraus. kontakt.php: Code: <? require("$DOCUMENT_ROOT/menulinks.inc.php"); $status = $menu["kontakt"]["id"]; require("$DOCUMENT_ROOT/header.inc.php"); ?> <div id="main"> <?php function generate_formular() { ?> <div id="contentleft"> <p class="centered"> Bei ernsthaftem Interesse an einer Zusammenarbeit freue ich mich über eine Anfrage mit vollständigen Angaben. </p> <form action="kontakt.php" method="post"> <p> <label for="anrede">Anrede</label> <select name=anrede size="1"> <option selected>Herr <option>Frau <option>Firma/Agentur </select> </p> <p> <label for="name">Name</label> <input type="text" name="name" size="40" maxlength="120" /> </p> <p> <label for="telefon">Telefon</label> <input type="text" name="telefon" size="40" maxlength="80" /> </p> <p> <label for="email">E-Mail-Adresse</label> <input type="text" name="email" size="40" maxlength="90" /> </p> <!! ------------------------------------------------------Angaben Referenzen des Fotografen -----------------------------------------------------------------!!> <p> <label for="website">Internetpräsenz</label> <input type="text" name="website" size="40" maxlength="90" /> </p> <p> <label for="betreff2">Betreff</label> <input type="text" name="betreff2" size="40" maxlength="90" /> </p> <p> <label for="nachricht">Nachricht</label> <textarea name="nachricht" cols="40" rows="8"></textarea> </p> <textarea class="gbcommentnv" name="comment1" cols="40" rows="5"></textarea> <textarea class="gbcommentnv" name="comment2" cols="40" rows="5"></textarea> <textarea class="gbcommentnv" name="comment3" cols="40" rows="5"></textarea> <p> <input type="submit" name="mail" value="E-Mail verschicken" /> </p> </form> <p class="centered"> <br /><br /> Bitte keine Anfragen bezüglich Escort-Service oder ähnlicher Dienstleistungen. </p> </div> <!-- contentleft --> <div id="contentright"> <img id="right" src="images/kontakt.jpg" alt="Bild des Autors" /> </div> <? } function generate_answer() { ?> <p class="headline"> Ihre Mail wurde zugestellt.<br /> Herzlichen Dank für Ihr Interesse. </p> <? } /* function *main* */ if (!sent || strlen($name) < 2 || strlen($email) <2) { generate_formular(); } else { $pruefung = array( 'email' => '/^ [\w.!#%&\*\/=\?\^\`\{\|\}\~+-]{1,64} \@ [[:alnum:].-]{1,255} \. [a-z]{2,6} $/xi', 'name' => '/^[[:print:]]{3,}$/', 'betreff' => '/^[[:print:]]{3,}$/'); //Eingabeprüfung $fehler = array(); foreach($_POST as $parameter => $wert) { if(isset($pruefung[$parameter])) { if(!preg_match($pruefung[$parameter], $wert)) { $fehler[] = "Probleme mit Feld " . $parameter . ": " . $wert; } } else { unset($_POST[$parameter]); } } if(strlen($_POST['comment1']) == 0 and strlen($_POST['comment1']) == 0 and strlen($_POST['comment1']) == 0 and empty($fehler)){ $betreff = "E-Mail über Kontaktformular"; $message = "<html><body> <p align=\"left\"> <b>Anrede: </b> $anrede<br /> <b>Name: </b> $name<br /> <b>Telefon: </b> $telefon<br /> <b>E-Mail: </b> $email<br /> <b>Internetpräsenz: </b> <a href=\"$website\">$website</a><br /><br /> <b>Betreff: </b> $betreff2<br /> <b>Nachricht: </b> $nachricht<br /> </p> </body></html> "; $header = "From: $email\r\n"; $header .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n"; $header .= "X-Mailer: PHP ". phpversion(); mail ("bla@xsdfsdfdsfsd.org", $betreff, $message, $header); generate_answer(); } else { // if commentfelder 0 if(!empty($fehler)){ ?><ul><? foreach($fehler as $row){ echo"<li>".$row."</li>"; } ?></ul><? } generate_formular(); } } ?> </div> <!-- div main --> <?php require("$DOCUMENT_ROOT/footer.inc.php"); ?>
<? require("$DOCUMENT_ROOT/menulinks.inc.php"); $status = $menu["kontakt"]["id"]; require("$DOCUMENT_ROOT/header.inc.php"); ?> <div id="main"> <?php function generate_formular() { ?> <div id="contentleft"> <p class="centered"> Bei ernsthaftem Interesse an einer Zusammenarbeit freue ich mich über eine Anfrage mit vollständigen Angaben. </p> <form action="kontakt.php" method="post"> <p> <label for="anrede">Anrede</label> <select name=anrede size="1"> <option selected>Herr <option>Frau <option>Firma/Agentur </select> </p> <p> <label for="name">Name</label> <input type="text" name="name" size="40" maxlength="120" /> </p> <p> <label for="telefon">Telefon</label> <input type="text" name="telefon" size="40" maxlength="80" /> </p> <p> <label for="email">E-Mail-Adresse</label> <input type="text" name="email" size="40" maxlength="90" /> </p> <!! ------------------------------------------------------Angaben Referenzen des Fotografen -----------------------------------------------------------------!!> <p> <label for="website">Internetpräsenz</label> <input type="text" name="website" size="40" maxlength="90" /> </p> <p> <label for="betreff2">Betreff</label> <input type="text" name="betreff2" size="40" maxlength="90" /> </p> <p> <label for="nachricht">Nachricht</label> <textarea name="nachricht" cols="40" rows="8"></textarea> </p> <textarea class="gbcommentnv" name="comment1" cols="40" rows="5"></textarea> <textarea class="gbcommentnv" name="comment2" cols="40" rows="5"></textarea> <textarea class="gbcommentnv" name="comment3" cols="40" rows="5"></textarea> <p> <input type="submit" name="mail" value="E-Mail verschicken" /> </p> </form> <p class="centered"> <br /><br /> Bitte keine Anfragen bezüglich Escort-Service oder ähnlicher Dienstleistungen. </p> </div> <!-- contentleft --> <div id="contentright"> <img id="right" src="images/kontakt.jpg" alt="Bild des Autors" /> </div> <? } function generate_answer() { ?> <p class="headline"> Ihre Mail wurde zugestellt.<br /> Herzlichen Dank für Ihr Interesse. </p> <? } /* function *main* */ if (!sent || strlen($name) < 2 || strlen($email) <2) { generate_formular(); } else { $pruefung = array( 'email' => '/^ [\w.!#%&\*\/=\?\^\`\{\|\}\~+-]{1,64} \@ [[:alnum:].-]{1,255} \. [a-z]{2,6} $/xi', 'name' => '/^[[:print:]]{3,}$/', 'betreff' => '/^[[:print:]]{3,}$/'); //Eingabeprüfung $fehler = array(); foreach($_POST as $parameter => $wert) { if(isset($pruefung[$parameter])) { if(!preg_match($pruefung[$parameter], $wert)) { $fehler[] = "Probleme mit Feld " . $parameter . ": " . $wert; } } else { unset($_POST[$parameter]); } } if(strlen($_POST['comment1']) == 0 and strlen($_POST['comment1']) == 0 and strlen($_POST['comment1']) == 0 and empty($fehler)){ $betreff = "E-Mail über Kontaktformular"; $message = "<html><body> <p align=\"left\"> <b>Anrede: </b> $anrede<br /> <b>Name: </b> $name<br /> <b>Telefon: </b> $telefon<br /> <b>E-Mail: </b> $email<br /> <b>Internetpräsenz: </b> <a href=\"$website\">$website</a><br /><br /> <b>Betreff: </b> $betreff2<br /> <b>Nachricht: </b> $nachricht<br /> </p> </body></html> "; $header = "From: $email\r\n"; $header .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n"; $header .= "X-Mailer: PHP ". phpversion(); mail ("bla@xsdfsdfdsfsd.org", $betreff, $message, $header); generate_answer(); } else { // if commentfelder 0 if(!empty($fehler)){ ?><ul><? foreach($fehler as $row){ echo"<li>".$row."</li>"; } ?></ul><? } generate_formular(); } } ?> </div> <!-- div main --> <?php require("$DOCUMENT_ROOT/footer.inc.php"); ?>
Foren-Regeln