| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

17-02-2011, 20:41
|
|
kleinman
Registrierter Benutzer
|
|
Registriert seit: Feb 2011
Beiträge: 7
|
|
Kontaktformular 2. Versuch
Hallo,
bitte schaut Euch jetzt einmal mein Kontaktformular an. Bitte beurteilt doch dieses Formular einmal Manöverkritik ist erwünscht!!
Was ist noch zu verbessern?
Vielen Dank für die Hilfe Joerg
PHP-Code:
<?php $mail_adresse = "web@domaine.com"; $mail_adresse_1 = "info@domain.com"; define ('CHARSET', "ISO-8859-15"); // Zeichenkodierung ggfls. anpassen   # Prüfen ob Formular abgeschickt wurde (anhand vom Namen des Submit-Buttons # Wenn ja wird der "mail-Teil" ausgeführt if (isset($_POST["senden"])) { $name = $_POST['name']; $email = $_POST['email']; $nachricht = $_POST['nachricht']; $name_tag[0] = "Sonntag"; $name_tag[1] = "Montag"; $name_tag[2] = "Dienstag"; $name_tag[3] = "Mittwoch"; $name_tag[4] = "Donnerstag"; $name_tag[5] = "Freitag"; $name_tag[6] = "Samstag"; $num_tag = date( "w"); $day = $name_tag[$num_tag]; $year = date("Y"); $day_num = date("d"); $month = date("m"); $time = (date("H:i"));   if (!eregi("^[A-Za-z0-9]+((\\.|!|_|\\+|\\-)[A-Za-z0-9]+)*@([A-Za-z0-9]+(\\.|\\-))+[A-Za-z0-9]{2,4}$", $email)) { $valid_mail = "no"; $valid_mail_text = "Bitte achten Sie auch darauf, eine gültige E-Mail Adresse einzugeben."; } if ($name == "" || $email == "" || nachricht == "" || $valid_mail == "no"){ echo "<h2>Fehler bei der Übermittlung</h2>Bitte beachten Sie die hervorgehobenen Felder (*). Diese Felder sind Pflichtfelder.</p>"; echo "<p>$valid_mail_text</p>"; echo "<h3>Genauere Fehlerursache:</h3>"; echo "<ul>"; if ($name == "") { echo "<li>Sie haben keinen Namen eingegeben</li>"; } if ($email == "" || $valid_mail == "no") { echo "<li>Sie haben keine gültige Email-Adresse eingegeben</li>"; } if ($nachricht == "") { echo "<li>Sie haben keine Nachricht eingegeben...</li>"; } echo "</ul>"; echo "<p><a href='javascript:history.back()'>zurück</a></p>"; end; } else{ # SPAM-SCHUTZ # Quelle: http://www.drweb.de/webmaster/kontakt-formulare.shtml # --------------------------------------------------------------------------------------------------- $absender = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "", $_POST['email'] ); $absender = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $absender ); # ---------------------------------------------------------------------------------------------------   $EndNachricht = " Am $day, den $day_num.$month.$year um $time Uhr haben wir folgende Nachricht von Ihnen erhalten: Name: $name eMail: $email \n Nachricht:\n$nachricht\n Ihre Email wird so schnell wie möglich bearbeitet. Bei Fragen schreiben Sie bitte an: $mail_adresse_1"; $txt = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "", $EndNachricht ); mail("$mail_adresse", "web-Kontaktformular", $txt, "From: $absender\n"); mail("$absender", "Kontaktformular der Domaine", $txt, "From: $mail_adresse_1"); echo "<h2>Vielen Dank!</h2>"; echo "<p>Ihre Mail wurde erfolgreich verschickt und wird so schnell wie möglich beantwortet.</p>"; } } else{ ?> <!--------- "HTML" - TEIL --------------> <h2>Kontaktformular</h2> <p> </p> <fieldset> <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <p> <label for="name">Name*</label> <br /> <input type="text" name="name" id="name" /> </p> <p> <label for="email">E-Mail*</label> <br /> <input type="text" name="email" id="email" /> </p> <p> <label for="nachricht"> Nachricht*</label> <br /> <textarea name="nachricht" id="nachricht" cols="40" rows="5"></textarea> </p> <input type="submit" value="Absenden" name="senden"> <input type="reset" value="Löschen" name="reset"> </p> </form> </fieldset> <?php } ?>
|

17-02-2011, 20:52
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
OK, hier meine Anmerkungen:
1. Code einrücken, so kann das keine Sau vernünftig lesen
2. eregi ist veraltet und solltet nicht mehr benutzt werden
3. Besorg dir mal einen vernünftigen Editor, damit so was nicht passiert: & und #12288;
4. Die Validierung der POST-Werte scheint ziemlich oberflächlich zu sein. Ein gefundenes Fressen für Spam-Bots
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

17-02-2011, 21:03
|
|
kleinman
Registrierter Benutzer
|
|
Registriert seit: Feb 2011
Beiträge: 7
|
|
Vielen Dank für die schnelle Antwort.
Als Editor habe ich Codepad heruntergeladen. Ich denke der Editor reicht aus. Welchen Editor verwendet Ihr?
Ich verzweifele noch an dem Kontaktformular. Welche Kontaktformulare verwendet ihr?
Hat jemand von Euch etwas vernünftiges?
Vielen Dank für die Hilfe
Joerg
|

18-02-2011, 09:35
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Das kann XSS Attacken ermöglichen
Zitat:
|
mail("$mail_adresse",......
|
Variablen werden weder schöner, noch besser, wenn man sie in Anführungszeichen setzt.
Zitat:
|
enctype="multipart/form-data"
|
Das ist doch kein Upload Formular...
Geändert von combie (18-02-2011 um 09:38 Uhr)
|

18-02-2011, 12:39
|
|
eagle275
Registrierter Benutzer
|
|
Registriert seit: Jun 2010
Beiträge: 371
|
|
und wo combie schon auf das eine "Problem" beim Aufruf von mail eingeht ...
nimmt man gar nicht. Am besten schaust du dir mal eine vorgefertigte mail-Klasse wie phpmailer an, denn mit mail() müsstest du selbst für die Einhaltung aller Forderungen des RFC für emails sorgen.
Im übrigen nimmt man heute besser unicode in Gestalt von utf8, statt mit ascii-Derivaten (iso8859-1) zu arbeiten
__________________
Wer LESEN kann, ist klar im Vorteil!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|