Hallo Gemeinschaft,
ich möchte ein Formular erstellen. Momentan steht oben:
deine seite wird aufgerufen
und gibt aus
Nun soll ein Spamschutz vorgeschaltet werden. Der Code dafür
lautet:
Dieses Feld bitte nicht ausfüllen! Es
dient als Spam-Schutz.
jetzt prüft es ob daten gesendet wurden (was beim ersten aufruf bestimmt nie der fall ist.
<?php : if($_POST['youremail'] != ""){
das ergenis wird kein WAHR sein beim ersten aufruf.
// Bot!
die(„Bitte gehen Sie zurück und kontrollieren Sie Ihre
Angaben!“);
}
else {
also gehts heir weiter , ohne eingabe , keine wahren ergebnisse also auch keine kontrolle.
// normale Anweisungen, kein Bot!
}
?>
somit wird an den browser das formular ausgeliefert.
der user füllt aus oder auch nicht … und klickt auf senden.
damit wird nun die eingabe nach /cgi-bin/send_form_mail.php.cgi geschickt und die form gesendet.
die logik ist , ein php kann dann erst auf eingabe daten reagieren, wenn es ziel der daten ist und diese auch vorhanden sind.
wenn also dein formular.php heisst, und du aber bei senden zu
/cgi-bin/send_form_mail.php.cgi sendest, dann ist das
$_POST[‚youremail‘] != „“ unsinnig, weil du schickst ja nie daten an formular.php
Irgendwie wird die php-Anweisung aber ignoriert, d.h. der
Spamschutz funktioniert nicht. Muss ich den Code in eine
.php-Datei auslagern, an die dann das Formular erst übergeben
wird? Und wie leite ich dann weiter an send_form_mail.php.cgi?
Danke für Eure Hilfe.
ne nicht wirklich, aber du kannst daten nur an ein ziel senden.
ergo müsse wenn die prüfung in send_form_mail.php.cgi ablaufen.
Oder du mast ne preprüfung , dann muss der sendende aber nochmal bestöätigen, schön wenn man das mit einer vorschau der gemachten eingabe verbindet.
<?php // formular eingabe, botcheck mit preview und senden and email<br />if (!isset($\_POST['youremail'])) {
// erster aufruf ohne daten
?\>
<?php } else {
// weiter mit daten
if ($\_POST['youremail'] != "") {
// botfach ist nicht leer
?\>
Bitte überprüfen Sie ihre Eingaben.
<?php } else {
// kein spam also vorschau erstellen, felder unsichtbar empfänger ist mailer php :smile:
?\>
name : <?php echo $_POST['yourname'] ; ?>
<?php }
}
?\>
das problem bleibt aber immernoch, wenn man send\_form\_mail.php.cgi von aussen aufrufen kann, kann sich jeder einfach sein eigenes formular machen und senden. Also es wäre fast pflicht es innerhalb des email scriptes zu prüfen, oder midestens einen token mitgeben damit der mailer wirklich nur sendet was vorher verifiziert wurde.
also ohne wissen kannst du dir richtig probleme einhandeln, weil so wie es jetzt ist, kann jeder dein mailer script direkt ansprechen, egal was du da für einen spam schutzt vorsetzt.
lass dich also beraten wie man es macht, bzw ob das ne gute idee ist mit dem cgi etc .