Formular überprüfung in php...

Simi

Angesehenes Mitglied
Hi all.

Mir stinkt es, eine Formularüberprüfung in Java Script zu haben. Ich möchte das ganze in php lösen. Ich habe es versucht, bin mir aber nicht sicher, wie sauber das ganze programmiert ist. Denn ich habe selber meine bedenken.
wink.gif


Zu meinem Code:

CODE
<?php
// Formular Auswertung
   
$select = $_POST['select'];
$name = $_POST['name'];
$vorname = $_POST['vorname'];
$email = $_POST['email'];
$nachricht = $_POST['nachricht'];
   
// Pflichtfelder ausgefüllt?
   
if (($name == '') OR ($vorname == '') OR ($nachricht == '')) {
   echo "Bitte füllen Sie die Pflichtfelder aus!<br><br>";
   }

     else {
             
     
    $mail  = "meine E-Mail adresse>";
    $messages = "$select"."\n"."Name: $name"."\n"."Vorname: $vorname"."\n"."E_Mail:$email" ."\n"."Nachricht: $nachricht" ."\n";
    mail($mail,"Kontaktanfrage von $name", "$messages", "From:$name");
    echo "Ihre Angaben:<br><br>";
    echo "$select<br>";
    echo "$name<br>";
    echo "$vorname<br>";
    echo "$email<br>";
    echo "$nachricht<br>";
   
        }
   
     ?>




Wie bereits geschrieben, es funktioniert eigentlich einwandfrei, ich möchte aber nun von euch Profis wissen was falsch ist, und was besser gemacht werden könnte.

Vielen Dank im voraus.

Gruss
Simi
 
Ich würde prüfen ob die email adresse richtig ist.

if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['email']) {
echo 'There is something wrong with your eMail, please check.'
} else {
echo "The eMail was valid";
}


Und zweitens, ich kenne keinen namen oder vorname der weniger als 3 buchstaben hat. Vielleicht "John Li"
smile.gif


if (strlen($_POST['name']) < 3) {
echo 'There is something wrong with your name, please check.'
}
 
Ist doch immer wieder praktisch solche Tips mit der Suche so einfach zu finden. Beim Eintippen hat sich wohl eine Klammer davongeschlichen. Für die weniger versierten:

if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['email'])){/*Aktion bei falscher Adresse*/}
 
QUOTE (radarin @ Mo 1.1.2007, 22:06)if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST['email'])){/*Aktion bei falscher Adresse*/}


Ui Vorsicht, so ist der Code heikel.

Es gibt inzwischen auch die Toplevel-Domains .mobi und .travel. Also müßte es auch die entsprechenden Mailadressen info@example.mobi und info@example.travel geben. Folglich:


QUOTE if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $_POST['email'])){/*Aktion bei falscher Adresse*/}


Es hängt natürlich etwas davon ab, für wen das Formular gedacht ist. Aber ausschließen sollte man diese Domains heute nicht mehr.
 
Hallo,

ich würde vielleicht die Variablen vor der Nutzung noch säubern, also nicht direkt
QUOTE
$select = $_POST['select'];
$name = $_POST['name'];
$vorname = $_POST['vorname'];
$email = $_POST['email'];
$nachricht = $_POST['nachricht'];



sondern lieber erstmal absichern:

QUOTE
$select = addslashes($_POST['select']);
$name = addslashes($_POST['name']);
$vorname = addslashes($_POST['vorname']);
$email = addslashes($_POST['email']);
$nachricht = addslashes($_POST['nachricht']);

 
QUOTE (TheGamer1701 @ Di 2.1.2007, 11:31)sondern lieber erstmal absichern:

QUOTE
$select = addslashes($_POST['select']);
$name = addslashes($_POST['name']);
$vorname = addslashes($_POST['vorname']);
$email = addslashes($_POST['email']);
$nachricht = addslashes($_POST['nachricht']);



Ich verwende ja kein PHP - aber das verstehe ich nicht.

addslashes macht, wie mich ein kurzes Googeln lehrt, aus


QUOTE O'Neill

nun

QUOTE O\'Neill


Aber da es sich nicht um einen Datenbank-Zugriff, sondern um das Versenden einer Mail handelt, ist diese Bearbeitung unter Sicherheitsgesichtspunkten völlig irrelevant.

Oder habe ich da irgendetwas übersehen?
 
QUOTE (TheGamer1701 @ Di 2.1.2007, 12:31) [...]
sondern lieber erstmal absichern:

QUOTE
$select = addslashes($_POST['select']);
$name = addslashes($_POST['name']);
$vorname = addslashes($_POST['vorname']);
$email = addslashes($_POST['email']);
$nachricht = addslashes($_POST['nachricht']);



Vor diesem Sichern solltest du lieber überprüfen, ob nicht Magic Quotes aktiv sind, was zu 80% der Fall sein dürfte. Denn das wirkt wie ein addslahses und Du würdest so ein zweites Mal die Variablen escapen. Nichts desto trotz sollte man sich nicht darauf verlassen, das Magic Quotes aktiv ist.

Ich kann jAuer auch nur zustimmen, bei einer E-Mail spielen andere Faktoren eine Rolle.
 
Zurück
Oben