Formularfeld: Überprüfen ob @ Zeichen vorhanden

medico

Erfahrenes Mitglied
Hallo,

wie kann ich mittels PHP prüfen ob in einem Forumlarfeld ein @ zeichen vorhanden ist und wenn dies nicht der Fall ist, das eine Fehlermeldung ausgegeben wird?

Gruß Medico
 
Gut, das Tutorial sollte man vllt nicht mehr verwenden, da es einfach ein wenig spezifisch ist.

Aber die Funktion [phpf]strpos[/phpf] sollte dir behilflich sein.
 
Meinst du Naja ok deine Quellenangabe ist sicherlich allgemeiner und der Lerneffekt wäre größer ;)

Aber die Grunddaten wie man sowas umsetzt sind ja auch da vorhanden.
 
Ich finde es hält sich in Grenzen...
HTML sollte in Funktionen möglichst vermieden werden. Denn ich vermute, du hast ein anderes Formular, als der geehrte Autor dieses Tutorials. Sprich du müsstest hergehen und sämtlichen HTML Code ändern (der auch noch in PHP eingebettet ist und auch noch ohne Zeilenumbrüche geschrieben ist. Das macht bestimmt Spaß.

Weiterer Punkt ist register_globals, aufgrund des Alters ist das Tutorial daher eigentlich obsolet, da diese möglichst immer ausgeschaltet sein sollten.

Ich finde sogenannte Voids, also Funktionen ohne Rückgabewert, nicht sehr schön.

Weiterhin ist die Prüfung der E-Mailadresse ein "Witz"... ;)
PHP:
if(strstr($mail,"@") && strstr($mail,".")){
Eine gültige E-Mail wäre also ".@."

Gleichzeitig wäre diese Zeile übrigens die, die ihm helfen würde, denn [phpf]strstr[/phpf] ist eine ähnliche Funktion, wie [phpf]strpos[/phpf].

Lerneffekt, ja. Leider aber mit Fehlern drin, deshalb sollte man auf soetwas achten.
 
Super danke, da habt Ihr mir echt weiter geholfen!

Obwohl ich doch noch ne andere Frage hätte, wie ist der Befehl das im Formularfeld nur Zahlen stehen dürfen. Finde da nichts passendes.
 
Viele wege führen nach Rom:
PHP:
if(preg_match('~^[0-9]+$~', $deinFeld))
{
    echo "Valide, nur Zahlen!";
} else
{
    echo "Nö!";
}
 
Ich muss doch noch mal nach fragen, es funktioniert nicht so wie ich es mit vorstelle, also es soll so sein das wenn ein Formular ausgefüllt ist, sollen folgende Punkt geprüft werden:
1. Pflichtfelder ausgefüllt
2. @ Zeichen vorhanden (das reicht)
3. Ob bei der Telefonummer nur Zahlen sind.

Naja wenn ich das alles einzeln mache klappt das auch, nur wenn ich das zusammen mache kommt das irgendwie nicht hin. Hier mal mein Code:

PHP:
<? session_start (); 

$_SESSION['tele'] = $_POST['tele'];
$_SESSION['name'] = $_POST['name'];
$_SESSION['text'] = $_POST['text'];
$_SESSION['email'] = $_POST['email'];

if(strstr($_POST[email],"@"))        {
}
else {
  $stop_email = "stop_email";
 } 

if(preg_match('~[0-9]+~', $_POST[tele])) {
}
else {
  $stop_tele = "stop_tele";
 } 

if(empty($_POST[name]))        {
  $stop = "stop";
}
if(empty($_POST[email]))        {
  $stop = "stop";
}
if(empty($_POST[tele]))        {
  $stop = "stop";
}

if(empty($_POST[text]))        {
  $stop = "stop";
}

if ($stop == "stop")        {

header ("Location: contact.php?fehler=1"); 
}

if ($stop_email == "stop_email")        {

header ("Location: contact.php?fehler=2"); 
}

if ($stop_tele == "stop_tele")        {

header ("Location: contact.php?fehler=3"); 
}

else  {

Ich bin leider kein Profi in PHP also nicht lachen ;-)

Wenn ich das so benutze, dann prüft er das Tele Feld aber das andere wird ignoriert sobald im Tele Feld nur Zahlen sind.

Danke schon mal
Gruß Medico
 
Zurück