mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: So 17.12.2017 01:24 Benutzername: Passwort: Auto-Login

Thema: PHP Formular Antispam mit verborgenem Feld funzt nicht vom 15.05.2013


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP Formular Antispam mit verborgenem Feld funzt nicht
Autor Nachricht
annarama
Threadersteller

Dabei seit: 23.09.2009
Ort: München
Alter: -
Geschlecht: Weiblich
Verfasst Mi 15.05.2013 14:36
Titel

PHP Formular Antispam mit verborgenem Feld funzt nicht

Antworten mit Zitat Zum Seitenanfang

Guten Tag Liebe Leute,

ich bin gerade am zusammenstückelns eines PHP Formulares. Das Formular hat soweit super funktioniert aber die Menge an Spam die darüber verschickt wurde, war außerordentlich hoch.

Jetzt hab ich gelesen das es die Möglichkeit gibt, in das Formular ein verstecktes Feld einzubauen, das ausgefüllt auf einen Spam-Bot hinweist.

Allerdings bin ich nicht bewandert in PHP und weiß daher nicht wo ich diesen Code

Code:
if(isset($_POST['vo_rname'])) {
                     // Formular wurde abgeschickt
                     if(!empty($_POST['nospam'])) {
                        // Honeypot
                        die("SPAM");
                     } else {
                        /*
                         * Das Feld "nospam" wurde nicht ausgefüllt, es ist daher
                         * wahrscheinlich dass es sich um keinen Spambot handelt
                         */
                  
                        // Weitere Validierung der restlichen Felder, Verarbeitung und ggf. Weiterleitung...
                     }
                  }


in den Bestehende Formularcode einbauen soll, damit es funktioniert.

Code:
<?php
                    // wenn das Formular übermittelt wurde
                    if(isset($_POST['abschicken'])){
                      while(list($feld,$wert)=each($_POST)){
                        // übermittelte Inhalte "entschärfen"
                        $wert=preg_replace("/(content-type:|bcc:|cc:|to:|from:)/im", "",$wert);
                        $$feld=$wert;
                        // die übermittelten Variablen werden zum "Text der Email" zusammengefasst
                        if($feld!="abschicken") $mailnachricht.=ucfirst($feld).": $wert\n";
                      }
                      $mailnachricht.="\nDatum/Zeit: ". date("d.m.Y H:i:s");
                      // Überprüfen ob alle Pflichtfelder gefüllt sind
                      empty($na_chname) ? $err[] = "<p>- Bitte den Nachnamen angeben.</p>" : false;
                      empty($vo_rname) ? $err[] = "<p>- Bitte den Vornamen angeben.</p>" : false;
                      empty($em_ail) ? $err[] = "<p>- Bitte die Email-Adresse angeben.</p>" : false;
                      empty($te_xt) ? $err[] = "<p>- Welchen Wunsch haben Sie? Bitte den Text eingeben.</p>" : false;
                      // wenn nicht, werden die Fehlermeldungen ausgegeben und das "halbgefüllte" Formular angezeigt
                      if(!empty($err)) {
                        echo "<p>Bitte korrigieren Sie folgende Fehler:</p>";
                        foreach($err as $fehler){
                          echo $fehler;
                        }
                  
                  ?>
                        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                        <table width="100%" border="0" cellpadding="3" cellspacing="1" id="kontaktform" >
                        <tr>
                        <td width="140" align="right">*Nachname:</td><td align="left"><input type="text" name="nachname" value="<?php echo $na_chname; ?>" style="width:100%;" /></td>
                        <td align="right">*Vorname:</td><td align="left"> <input type="text" name="vorname" value="<?php echo $vo_rname; ?>" style="width:100%" /></td>
                        </tr>
                        <tr>
                        <td align="right">Telefon:</td><td align="left"><input type="text" name="telefon" value="<?php echo $te_lefon; ?>" style="width:100%" /></td>
                        <td align="right">*E-Mail:</td><td align="left"><input type="text" name="email" value="<?php echo $em_ail; ?>" style="width:100%" /> </td>
                        </tr>
                        <tr>
                        <td align="right">Firma:</td><td align="left"><input type="text" name="firma" value="<?php echo $fi_rma; ?>" style="width:100%" /></td>
                        <td align="right">Postanschrift:</td><td align="left"><input type="text" name="strasse" value="<?php echo $st_rasse; ?>" style="width:100%" /></td>
                        </tr>
                        <tr>
                        <td colspan="4"><textarea rows="12"  style="width:100%" name="text"><?php echo $te_xt; ?></textarea></td>
                        <td align="right"> </td><td> </td><td> </td>
                        </tr>
                        <tr>
                        <td colspan="4" align="center" nowrap><br /><input type="reset" value="L&ouml;schen" style="width:30%" class="kontakt_button" />  <input type="submit" name="abschicken" class="kontakt_button" value="Absenden" style="width:30%" /><div class="spam_protect">
        <label for="nospam">Dieses Feld bitte nicht ausfüllen! (Spamschutz)</label>
<input id="nospam" name="nospam" type="text" /></div>
                        </form></td></tr>
                        </table>
                        <p>*Pflichtfelder</p>
                    <?php    // sind keine Fehler vorhanden, wird die Email versendet
                      } else {
                        $mailbetreff="Kontaktformular ".$_SERVER['HTTP_HOST'];
                        // HIER DIE EMPFÄNGER EMAIL-ADRESSE ANPASSEN!!!       
                        echo (mail("123@123.de", $mailbetreff, $mailnachricht, "", "-f noreply@123.de")) ? "<p>Vielen Dank für Ihre E-Mail!</p>": "<p>Ein Fehler ist aufgetreten!</p>";
                      }
                    // das Formular welches als erstes dem Besucher angezeigt wird
                    } else { ?>
                        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                       
                        <table width="100%" border="0" cellpadding="3" cellspacing="1" id="kontaktform">
                        <tr>
                        <td width="140" align="right">*Nachname:</td><td align="left"><input type="text" name="na_chname" value="" style="width:100%;" /></td>
                        <td align="right">*Vorname:</td><td align="left"><input type="text" name="vo_rname" value="" style="width:100%" /></td>
                        </tr>
                        <tr>
                        <td align="right">Telefon:</td><td align="left"><input type="text" name="te_lefon" value="" style="width:100%" /></td>
                        <td align="right">*E-Mail:</td><td align="left"><input type="text" name="em_ail" value="" style="width:100%" /></td>
                        </tr>
                        <tr>
                        <td align="right">Firma:</td><td align="left"><input type="text" name="fi_rma" value="" style="width:100%" /></td>
                        <td align="right">Postanschrift:</td><td align="left"><input type="text" name="st_rasse" value="" style="width:100%" /></td>
                        </tr>
                        <tr>
                        <td colspan="4"><textarea rows="12" style="width:100%" name="te_xt"></textarea></td><td></td>
                        <td></td><td></td>
                        </tr>
                        <tr>
                        <td colspan="4" align="center" nowrap><br /><input type="reset" value="L&ouml;schen" style="width:30%" class="kontakt_button" />  <input type="submit" name="abschicken" value="Absenden" style="width:30%" class="kontakt_button" /><div class="spam_protect">
        <label for="nospam">Dieses Feld bitte nicht ausfüllen! (Spamschutz)</label>
<input id="nospam" name="nospam" type="text" /></div>
                       
                        </form></td></tr>
                        </table>
                        <p>*Pflichtfelder</p>
                        <br />
                       
                    <?php
                    }
                    ?>


Ich hoffe mir kann hier vielleicht einer helfen, weil ich das selbe Kontaktformular auf mehreren Seiten verwende und ungern mir etwas neues suchen möchte.

Vielen Dank!
Liebe Grüße
Anna
  View user's profile Private Nachricht senden
DEKONSTRUKTIV

Dabei seit: 22.06.2009
Ort: bln
Alter: -
Geschlecht: -
Verfasst Mi 15.05.2013 15:02
Titel

Re: PHP Formular Antispam mit verborgenem Feld funzt nicht

Antworten mit Zitat Zum Seitenanfang

annarama hat geschrieben:

Allerdings bin ich nicht bewandert in PHP


dann is das eh zum scheitern verurteilt.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
annarama
Threadersteller

Dabei seit: 23.09.2009
Ort: München
Alter: -
Geschlecht: Weiblich
Verfasst Mi 15.05.2013 15:24
Titel

Antworten mit Zitat Zum Seitenanfang

Wäre ichs, müsste ich nicht um Hilfe bitten. Aber mach deinem Namen ruhig weiter alle Ehre.

Zuletzt bearbeitet von annarama am Mi 15.05.2013 15:24, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Karlarsch

Dabei seit: 05.02.2007
Ort: -
Alter: 51
Geschlecht: Männlich
Verfasst Mi 15.05.2013 16:28
Titel

Antworten mit Zitat Zum Seitenanfang

annarama hat geschrieben:
Wäre ichs, müsste ich nicht um Hilfe bitten.


Es gibt genug Quellen die es dir ermöglichen PHP im Selbststudium zu lernen. PHP nutzen zu wollen ohne zu wissen was man da macht ist grob fahrlässig und leichtsinnig.
Darüber hinaus gibt es auch viele Quellen die dir erklären wie man sicheres Formularhandling mit PHP zu machen ist.

Wenn du dann auch ein konkretes Problem stößt, helfen wir gerne. Du wirst von uns aber (i.d.R.) keinen fertigen Code bekommen sondern Hilfe zur Selbsthilfe.

Wenn du nicht willens oder motiviert bist dich selber in das Thema einzuarbeiten, dann gibt es immer noch die Jobbörse. Dort kannst du jemanden suchen der dein Problem für dich behebt.

Gruß
Karl
  View user's profile Private Nachricht senden
annarama
Threadersteller

Dabei seit: 23.09.2009
Ort: München
Alter: -
Geschlecht: Weiblich
Verfasst Do 16.05.2013 10:24
Titel

Antworten mit Zitat Zum Seitenanfang

Meiner Ansicht nach habe ich ein konkretes Problem. Ich verlange keinen kompletten Code oder eine Abhandlung über PHP. Es ist auch nicht so das ich mich nicht einlesen will in das Thema, aber bei PHP braucht man als Anfänger manchmal eine Hilfestellung. Ich habe selber schon sämtliche varianten ausprobiert und nichts funktioniert. Aber wenn mir hier keiner helfen will dann muss ich mir selbst wohl anders helfen.
Bin sehr enttäuscht über die "Hilfsbereitschaft".
  View user's profile Private Nachricht senden
Alex

Dabei seit: 28.11.2005
Ort: Dortmund
Alter: 31
Geschlecht: Männlich
Verfasst Do 16.05.2013 10:30
Titel

Antworten mit Zitat Zum Seitenanfang

Dein "konkretes Problem" ist die Frage, dass du nicht weißt wo du den PHP Code im HTML unterbringen sollst.

Das ist absolute Grundlage und kann man sich definitiv selbst anlesen.
Deiner Beschreibung nach hast eben diese Grundlagen nicht verstanden und daher ist es für uns absolut sinnlos dir Tips zu geben, da du diese auch nicht verstehen würdest.

Im Prinzip wäre das einzige was wir für dich machen KÖNNTEN den komplett fertigen Quellcode zu posten.

Und das ist nicht sinn der Sache *zwinker*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
annarama
Threadersteller

Dabei seit: 23.09.2009
Ort: München
Alter: -
Geschlecht: Weiblich
Verfasst Do 16.05.2013 11:12
Titel

Antworten mit Zitat Zum Seitenanfang

Ich habe nur das Problem, das ich nicht weiß wo genau im PHP Teil, ich den Code einbaue damit er funktioniert. Ich weiß wo er im HTML plaziert werden soll, nur eben nicht innerhalb des PHP Code bereiches. Habe wie gesagt einige Varianten durchprobiert, bin da nicht ganz so unwissend wie man denkt. Habe nur um Hilfe gebeten und habe mich von den ANtworten angegriffen gefühlt, weil man jemandem auch anders sagen kann als mir zu unterstellen ich wäre zu Faul. "Hey ich hab da keinen Bock drauf, das is mehr Arbeit als du denkst, lies dich vll in die if/else Bedingungen ein, und dann ist das Problem leicht zu lösen." Wäre etwas mit dem ich klar komme. Aber meinetwegen können wir das Thema abschließen, habe das Gefühl nicht verstanden zu werden. No hard feelings.

Zuletzt bearbeitet von annarama am Do 16.05.2013 11:13, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen [Javascript] Pro Klick was anderes in Formular-Feld einfügen
[PHP] Zeilenumbruche in <textarea>-Feld
Gutschein Feld in Seite (php)
Zusätzliches Feld zur Registrierung beim PHP BB
Mehrdimensionales Array-Feld in PHP auslesen
[PHP]MySQL Connect funzt net
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.