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 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:
<?
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">
<label for="anrede">Anrede</label>
<select name=anrede size="1">
<option selected>Herr
<option>Frau
<option>Firma/Agentur
</select>
</p>
<label for="name">Name</label>
<input type="text" name="name" size="40" maxlength="120" />
</p>
<label for="telefon">Telefon</label>
<input type="text" name="telefon" size="40" maxlength="80" />
</p>
<label for="email">E-Mail-Adresse</label>
<input type="text" name="email" size="40" maxlength="90" />
</p>
<!! ------------------------------------------------------Angaben Referenzen des Fotografen -----------------------------------------------------------------!!>
<label for="website">Internetpräsenz</label>
<input type="text" name="website" size="40" maxlength="90" />
</p>
<label for="betreff2">Betreff</label>
<input type="text" name="betreff2" size="40" maxlength="90" />
</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>
<input type="submit" name="mail" value="E-Mail verschicken" />
</p>
</form>
<p class="centered">
Bitte keine Anfragen bezüglich Escort-Service oder ähnlicher Dienstleistungen.
</p>
</div>
<div id="contentright">
[img]images/kontakt.jpg[/img]
</div>
<?
}
function generate_answer() {
?>
<p class="headline">
Ihre Mail wurde zugestellt.
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
[b]Name: [/b] $name
[b]Telefon: [/b] $telefon
[b]E-Mail: [/b] $email
[b]Internetpräsenz: [/b] <a href=\"$website\">$website</a>
[b]Betreff: [/b] $betreff2
[b]Nachricht: [/b] $nachricht
</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"[*]".$row."";
}
?>[/list]<?
}
generate_formular();
}
}
?>
</div>
<?php
require("$DOCUMENT_ROOT/footer.inc.php");
?>
Alles anzeigen