PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Spam-Bot hebelt mein javascript aus
Beitrag
<blockquote data-quote="strichcode" data-source="post: 2481926" data-attributes="member: 131073"><p>So! Vielen, vielen Dank für Eure Antworten. Ich melde mich erst jetzt, da ich mich mit Euren Infos erstmal vergraben musste. ;-)</p><p></p><p>Ich habe jetzt folgenden Code zusammengebraut, also ein Script von Stefan Münz mit</p><p>Validierungen versehen.</p><p></p><p>Zwei Fragen habe ich noch dazu:</p><p>Es kommen noch ein paar Abfragen der Pflichtfelder, usw. dazu, aber reicht das so?</p><p>Ist das ein sicheres Mail-Script für ein Kontaktformular?</p><p></p><p>Und:</p><p>Ich hätte gern folgendes abgefragt:</p><p>Die Telefonnummer soll mit einem *+* oder einer *0* beginnen müssen und</p><p>das Feld PLZ muß bitte Ziffern enthalten. Nicht ausschließlich Ziffern, wegen ausländischen Zip-Codes, aber Ziffern müssen dabei sein.</p><p></p><p>In meiner js-prüfung habe ich die Telefonnummer folgendermaßen geprüft:</p><p></p><p>[code=JavaScript]if (document.sendform.telefon.value.indexOf("0") == -1 && document.sendform.telefon.value.indexOf("+") == -1)</p><p>{</p><p>alert ("Telefon-Nr. ist nicht richtig.");</p><p>checked=false;</p><p>}[/code]</p><p></p><p></p><p>Aber wie mache ich das in php?</p><p></p><p>Warum gibt es eigentlich nicht mehr diesen Button mit dem man den code ordentlich einbinden kann???</p><p>Es tut mir leid, so hänge ich mein Script jetzt einfach so ohne hightlighting unten ran.</p><p>Vlt. wisst Ihr auch hierfür eine Antwort. ;-)</p><p></p><p></p><p>[php]<?php</p><p>// ======= Konfiguration:</p><p>error_reporting(E_ALL);</p><p>$mailTo = 'xx';</p><p>$mailFrom = '"xx>';</p><p>$mailSubject = 'Feedback selbstgebauter Formmailer';</p><p>$returnPage = 'xx/danke.html';</p><p>$returnErrorPage = 'xx/fehler.html';</p><p>$mailText = "";</p><p>//Pfichtfelder abfragen und weitere Spammschutzhürden</p><p>if(isset($_POST['submit'])) {</p><p> </p><p> if (!empty($_POST['phone']) && is_numeric($_POST['phone']) == false) { //Wenn Feld nicht leer, dann auf nur Ziffern prüfen</p><p>$errors[] = "Telefonnummer bitte nur mit Ziffern angeben";</p><p>echo "nummer falsch";}</p><p> if(empty($_POST['email'])){ //Wenn Email leer</p><p>$errors[] = "Bitte Emailadresse angeben";</p><p>echo "email fehlt";</p><p>} elseif (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) == false) { //Emailformat überprüfen ab PHP 5.2</p><p>$errors[] = "Bitte geben Sie ein gültige Emailadresse an";</p><p>echo "email falsch";</p><p>}</p><p>//Wenn die Abfragen positiv sind</p><p>if(empty($errors) ) {</p><p>// ======= Text der Mail aus den Formularfeldern erstellen:</p><p>// Wenn Daten mit method="post" versendet wurden:</p><p>if(isset($_POST)) {</p><p> // alle Formularfelder der Reihe nach durchgehen:</p><p> foreach($_POST as $name => $value) {</p><p> // Wenn der Feldwert aus mehreren Werten besteht:</p><p> // (z.B. <select multiple>)</p><p> if(is_array($value)) {</p><p> // "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen</p><p> $mailText .= $name . ":\n";</p><p> // alle Werte des Feldes abarbeiten</p><p> foreach($valueArray as $entry) {</p><p> // Einrückungsleerzeichen, Wert und Zeilenumbruch</p><p> // dem Mailtext hinzufügen</p><p> $mailText .= " " . $value . "\n";</p><p> } // ENDE: foreach</p><p> } // ENDE: if</p><p> // Wenn der Feldwert ein einzelner Feldwert ist:</p><p> else {</p><p> </p><p> // "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen</p><p> $mailText .= $name . ": " . $value . "\n";</p><p> } // ENDE: else</p><p> } // ENDE: foreach</p><p>} // if</p><p>// ======= Korrekturen vor dem Mailversand</p><p>// Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt:</p><p>if(get_magic_quotes_gpc()) {</p><p> // eventuell eingefügte Backslashes entfernen</p><p> $mailtext = stripslashes($mailtext);</p><p>}</p><p>// ======= Mailversand</p><p>// Mail versenden und Versanderfolg merken</p><p>$mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom);</p><p>// ======= Return-Seite an den Browser senden</p><p>// Wenn der Mailversand erfolgreich war:</p><p>if($mailSent == TRUE) {</p><p> // Seite "Formular verarbeitet" senden:</p><p> header("Location: " . $returnPage);</p><p>}</p><p>// Wenn die Mail nicht versendet werden konnte:</p><p>else {</p><p> // Seite "Fehler aufgetreten" senden:</p><p> header("Location: " . $returnErrorPage);</p><p>}</p><p>// ======= Ende</p><p>exit();</p><p>}}</p><p>//Ende if isset und Ende empty errors</p><p>?>[/php]</p></blockquote><p></p>
[QUOTE="strichcode, post: 2481926, member: 131073"] So! Vielen, vielen Dank für Eure Antworten. Ich melde mich erst jetzt, da ich mich mit Euren Infos erstmal vergraben musste. ;-) Ich habe jetzt folgenden Code zusammengebraut, also ein Script von Stefan Münz mit Validierungen versehen. Zwei Fragen habe ich noch dazu: Es kommen noch ein paar Abfragen der Pflichtfelder, usw. dazu, aber reicht das so? Ist das ein sicheres Mail-Script für ein Kontaktformular? Und: Ich hätte gern folgendes abgefragt: Die Telefonnummer soll mit einem *+* oder einer *0* beginnen müssen und das Feld PLZ muß bitte Ziffern enthalten. Nicht ausschließlich Ziffern, wegen ausländischen Zip-Codes, aber Ziffern müssen dabei sein. In meiner js-prüfung habe ich die Telefonnummer folgendermaßen geprüft: [code=JavaScript]if (document.sendform.telefon.value.indexOf("0") == -1 && document.sendform.telefon.value.indexOf("+") == -1) { alert ("Telefon-Nr. ist nicht richtig."); checked=false; }[/code] Aber wie mache ich das in php? Warum gibt es eigentlich nicht mehr diesen Button mit dem man den code ordentlich einbinden kann??? Es tut mir leid, so hänge ich mein Script jetzt einfach so ohne hightlighting unten ran. Vlt. wisst Ihr auch hierfür eine Antwort. ;-) [php]<?php // ======= Konfiguration: error_reporting(E_ALL); $mailTo = 'xx'; $mailFrom = '"xx>'; $mailSubject = 'Feedback selbstgebauter Formmailer'; $returnPage = 'xx/danke.html'; $returnErrorPage = 'xx/fehler.html'; $mailText = ""; //Pfichtfelder abfragen und weitere Spammschutzhürden if(isset($_POST['submit'])) { if (!empty($_POST['phone']) && is_numeric($_POST['phone']) == false) { //Wenn Feld nicht leer, dann auf nur Ziffern prüfen $errors[] = "Telefonnummer bitte nur mit Ziffern angeben"; echo "nummer falsch";} if(empty($_POST['email'])){ //Wenn Email leer $errors[] = "Bitte Emailadresse angeben"; echo "email fehlt"; } elseif (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) == false) { //Emailformat überprüfen ab PHP 5.2 $errors[] = "Bitte geben Sie ein gültige Emailadresse an"; echo "email falsch"; } //Wenn die Abfragen positiv sind if(empty($errors) ) { // ======= Text der Mail aus den Formularfeldern erstellen: // Wenn Daten mit method="post" versendet wurden: if(isset($_POST)) { // alle Formularfelder der Reihe nach durchgehen: foreach($_POST as $name => $value) { // Wenn der Feldwert aus mehreren Werten besteht: // (z.B. <select multiple>) if(is_array($value)) { // "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen $mailText .= $name . ":\n"; // alle Werte des Feldes abarbeiten foreach($valueArray as $entry) { // Einrückungsleerzeichen, Wert und Zeilenumbruch // dem Mailtext hinzufügen $mailText .= " " . $value . "\n"; } // ENDE: foreach } // ENDE: if // Wenn der Feldwert ein einzelner Feldwert ist: else { // "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen $mailText .= $name . ": " . $value . "\n"; } // ENDE: else } // ENDE: foreach } // if // ======= Korrekturen vor dem Mailversand // Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt: if(get_magic_quotes_gpc()) { // eventuell eingefügte Backslashes entfernen $mailtext = stripslashes($mailtext); } // ======= Mailversand // Mail versenden und Versanderfolg merken $mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom); // ======= Return-Seite an den Browser senden // Wenn der Mailversand erfolgreich war: if($mailSent == TRUE) { // Seite "Formular verarbeitet" senden: header("Location: " . $returnPage); } // Wenn die Mail nicht versendet werden konnte: else { // Seite "Fehler aufgetreten" senden: header("Location: " . $returnErrorPage); } // ======= Ende exit(); }} //Ende if isset und Ende empty errors ?>[/php] [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 7, ▼ = 3, ◇ = 2 und die Summe von ▲ und ▼ durch ◇ geteilt wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
Spam-Bot hebelt mein javascript aus
Oben