EREG .... Brauche Hilfe

iLu_is_a_loser

Erfahrenes Mitglied
Hallo also ich macahe gerade ein Gästebuch und dort bau ich gerade eine Formularüberprüfung ein und ich möchte gern das wenn das input-Feld Email Buchstaben und/oder Zahlen enthält das hier ausgeführt wird

PHP:
if(!strstr($mail, "@") || !strstr($mail, "."))
  {
 echo '<font size="-1">Die eingetragende <font color="#FF0000">Email ist ungültig</font>.<br><a href="javascript:history.back()">Zurück zum Gästebuch</a></font>';
  }
  else
  {
  ...

Und wenn dort nichts eingetragen ist das es dann normal weitergeht.

Kann mir da jemand helfen? Ich weiß nur das es vielelciht mit ereg gehen würd... Wie weiß ic haber nicht.
 
Prinzipiell ist es nie schlecht erst einmal auf http://www.php.net/manual/de/ zu schauen und sich dort den dokumentierten ereg() Befehl anzuschauen.

Weil ich grad zu faul bin dein Codeschnippsel grad auszuprobieren, würd ich gerne ob er funktioniert, weil an sich müsste er doch auch funktionieren.
 
genau das Ergebniss was du mir mit Google gesucht hast ist falsch. Genau das glecihe hab ich nämlich jetzt auch schon. Ich möchte halt das diese Abfrage nur ist wenn auch Zeichen in dieser Variabel sind.


Gruß
 
Dann prüfe doch mit einer IF-Abfrage ob Daten in der Variablen sind:

Entweder so, wenn du es per URL weitergibst:
Code:
if($_GET["mail"])
{
...
}
oder wenn du sie als Formulardaten weitergegeben hast:
Code:
if($_POST["mail"])
{
...
}
 
Hi

Du möchtest gern ein bestimmtes Feld nach Syntax einer gültigen Email-Adresse überprüfen? Ich würde so vorgehen, dass ich, wenn ich ein Form abschicke, eine Var auf true (1) setze. Ist ein Feld nicht ausgefüllt, dann wird die Var false (0).

Sind alle Felder korrekt ausgefüllt, können dann entspr. Aktionen folgen.
Eine Email-Adresse überprüft man am besten mit bestimmten RegExp Mustern. Stimmen die überein, ist allesok ansonsten gibts nen Fehler.

bsp.

PHP:
if(isset($_POST['aktion'])){
	$allesok = 1;
	if(empty($nachname)){$allesok = 0; $Fehlernachname = "<span class=\"error\"> * Nachname einfügen</span>";}
	if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$email)) {
	$allesok=0;
	$FehlerEmail= "<span class=\"error\"> * Email einfügen</span>";
		}
	}
if($allesok){
// aktionen ausführen, die stattfinden sollen, wenn die Felder korrekt ausgefüllt sind.
} else {
// Anzeige des Formulars
};
 
Ja also ich möchte gern ein bestimmtest Feld erst nach dem Syntax überprüfen wenn dort auch überhautp was ist. Und wenn dort halt nichts ist, dass es dann nicht überprüft wird.
 
Also ein paar Möglichkeiten:
PHP:
if (!empty($_POST['email']) && !ereg("^.+@.+\\..+$", $_POST['email'])) {
    //Feld ist nicht leer und es ist keine E-Mailadresse
}
PHP:
if (empty($_POST['email']) || ereg("^.+@.+\\..+$", $_POST['email'])) {
    //Feld ist leer oder es ist eine E-Mailadresse
}
PHP:
if (!empty($_POST['email']) && ereg("^.+@.+\\..+$", $_POST['email'])) {
    //Feld ist nicht leer und es ist eine E-Mailadresse
}
PHP:
if (!empty($_POST['email'])) {
    //Feld ist nicht leer
    if (!ereg("^.+@.+\\..+$", $_POST['email'])) {
        //Feld ist nicht leer und ist keine E-Mailadresse
    } else {
        //Feld ist nicht leer und ist eine E-Mailadresse
    }
}
 
Zurück