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...
PHP-Kontaktformular, Sicherheit und Fragen
Beitrag
<blockquote data-quote="Duddle" data-source="post: 2250440" data-attributes="member: 17775"><p><strong>AW: PHP-Kontaktformular, Sicherheit und Fragen</strong></p><p></p><p></p><p>Die Mail wird durch mail() abgeschickt (bzw. versucht), der Rückgabewert der Funktion wird in $send_mail gespeichert. </p><p>Das ist das gleiche wie wenn du beim Pizzaboten anrufst und bestellst: er startet den internen Prozess des Pizza-Bestellens und gibt dir am Ende Bescheid / zurück, ob alles okay war. Auch wenn es fehl schlägt, wurde der interne Prozess dennoch gestartet.</p><p></p><p></p><p>Du solltest prüfen, ob eine Variable gesetzt und nicht-leer ist / die Anforderungen erfüllt. Wenn du aber sowieso z.B. $email auf bestimmte Zeichen prüfst, könntest du darin auch gleich prüfen ob sie leer ist. Eine leere Mail-Adresse ist auch nicht valide. Ich hatte mich da etwas inkorrekt ausgedrückt.</p><p></p><p>Dabei fällt mir jetzt im Code auch noch mehr auf:</p><p>[PHP]</p><p>if (isset ($_POST['submit']) && ($_POST['abs_name']) && ($_POST['abs_email']) && ($_POST['abs_nachricht'])) {</p><p>[/PHP]</p><p>Warum hast du dort nur ein Mal isset()?</p><p></p><p>Auch hast du einen Logik-Fehler in der Fehlerabfrage: du prüfst in Zeile 50 mit !empty($name) usw., springst dann in den Block mit den check-Funktionen, hast aber <em>nach</em> diesem Block ein mail(). Erstens ist das ein doppeltes mail(), zweitens wird dann die Mail unabhängig von dem !empty($name) usw. geschickt.</p><p></p><p>Ich empfehle dir, das ganze drastisch zu entschlacken. Du brauchst die ganzen check-Funktionen nicht wirklich. Abgesehen davon dass die Regex-Muster sowieso nicht ausreichen, gibt es wie erwähnt eine fertige und durchdachte Funktionssammlung in <a href="http://www.php.net/manual/de/ref.filter.php" target="_blank">Filter</a>. Auch könntest du in folgendem Abschnitt die Doppelungen vermeiden: </p><p>[PHP]</p><p>if (empty($name)) {</p><p> echo '<div class="fehler_name"><p>How may I call you?</p><p>Please fill in a name.</p></div>';</p><p> echo '<input class="button" type="submit" name="submit" value="again">';}</p><p>if (empty($email)) {</p><p> echo '<div class="fehler_email"><p>How may I reply?</p><p>Please fill in an email adress.</p></div>';</p><p> echo '<input class="button" type="submit" name="submit" value="again">';}</p><p>if (empty($nachricht)) {</p><p> echo '<div class="fehler_nachricht"><p>How may I help you?</p><p>Please fill in your question.</p></div>';</p><p> echo '<input class="button" type="submit" name="submit" value="again">';}</p><p>[/PHP]</p><p>Beispiel:</p><p>[PHP]</p><p>$errormsg = "";</p><p>if(empty($name)) $errormsg .= "<p>Please fill in a name.</p>";</p><p>if(empty($email)) $errormsg .= "<p>Please fill in an email address.</p>"; //übrigens: "address"</p><p>if(empty($nachricht)) $errormsg .= "<p>Please fill in your question.</p>";</p><p></p><p>if($errormsg != "") {</p><p> echo '<div class="fehler">'.$errormsg.'</div>';</p><p> echo '<input class="button" type="submit" name="submit" value="again">';</p><p>}</p><p>[/PHP]</p><p>Du brauchst sicher keine zusätzliche Klasse pro Fehler. Wenn du die "how may I"-Fragen brauchst, wirf sie in $errormsg.</p><p></p><p></p><p>Duddle</p></blockquote><p></p>
[QUOTE="Duddle, post: 2250440, member: 17775"] [b]AW: PHP-Kontaktformular, Sicherheit und Fragen[/b] Die Mail wird durch mail() abgeschickt (bzw. versucht), der Rückgabewert der Funktion wird in $send_mail gespeichert. Das ist das gleiche wie wenn du beim Pizzaboten anrufst und bestellst: er startet den internen Prozess des Pizza-Bestellens und gibt dir am Ende Bescheid / zurück, ob alles okay war. Auch wenn es fehl schlägt, wurde der interne Prozess dennoch gestartet. Du solltest prüfen, ob eine Variable gesetzt und nicht-leer ist / die Anforderungen erfüllt. Wenn du aber sowieso z.B. $email auf bestimmte Zeichen prüfst, könntest du darin auch gleich prüfen ob sie leer ist. Eine leere Mail-Adresse ist auch nicht valide. Ich hatte mich da etwas inkorrekt ausgedrückt. Dabei fällt mir jetzt im Code auch noch mehr auf: [PHP] if (isset ($_POST['submit']) && ($_POST['abs_name']) && ($_POST['abs_email']) && ($_POST['abs_nachricht'])) { [/PHP] Warum hast du dort nur ein Mal isset()? Auch hast du einen Logik-Fehler in der Fehlerabfrage: du prüfst in Zeile 50 mit !empty($name) usw., springst dann in den Block mit den check-Funktionen, hast aber [i]nach[/i] diesem Block ein mail(). Erstens ist das ein doppeltes mail(), zweitens wird dann die Mail unabhängig von dem !empty($name) usw. geschickt. Ich empfehle dir, das ganze drastisch zu entschlacken. Du brauchst die ganzen check-Funktionen nicht wirklich. Abgesehen davon dass die Regex-Muster sowieso nicht ausreichen, gibt es wie erwähnt eine fertige und durchdachte Funktionssammlung in [URL=http://www.php.net/manual/de/ref.filter.php]Filter[/URL]. Auch könntest du in folgendem Abschnitt die Doppelungen vermeiden: [PHP] if (empty($name)) { echo '<div class="fehler_name"><p>How may I call you?</p><p>Please fill in a name.</p></div>'; echo '<input class="button" type="submit" name="submit" value="again">';} if (empty($email)) { echo '<div class="fehler_email"><p>How may I reply?</p><p>Please fill in an email adress.</p></div>'; echo '<input class="button" type="submit" name="submit" value="again">';} if (empty($nachricht)) { echo '<div class="fehler_nachricht"><p>How may I help you?</p><p>Please fill in your question.</p></div>'; echo '<input class="button" type="submit" name="submit" value="again">';} [/PHP] Beispiel: [PHP] $errormsg = ""; if(empty($name)) $errormsg .= "<p>Please fill in a name.</p>"; if(empty($email)) $errormsg .= "<p>Please fill in an email address.</p>"; //übrigens: "address" if(empty($nachricht)) $errormsg .= "<p>Please fill in your question.</p>"; if($errormsg != "") { echo '<div class="fehler">'.$errormsg.'</div>'; echo '<input class="button" type="submit" name="submit" value="again">'; } [/PHP] Du brauchst sicher keine zusätzliche Klasse pro Fehler. Wenn du die "how may I"-Fragen brauchst, wirf sie in $errormsg. Duddle [/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...
PHP-Kontaktformular, Sicherheit und Fragen
Oben