Formurüberprüfung - funktioniert nicht

ava99

Erfahrenes Mitglied
Hallo Community !

Habe einen Codeschnipsel wollte den testen, nur leider klappt das leider bei mir.
Die IF - Abfrage führt er nicht vollständig aus.
Code:
<form name="form1" method="post" action="<? $PHP_SELF ?>">
 <input type="text" class="input" name="email"><br><br>
 <input type="submit" name="senden" class="input" value="Senden"><br><br>
 (Eine ungültige Email-Adresse ist zum<br>Beispiel: test@test oder test&test@test.de)
</form>

<?php
$email = $_POST['email'];
echo $email;
if($senden) {
  if(!eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",$email)) {
    echo "<font color=#FF0000>Ung&uuml;ltige Email-Adresse!</font>";
    exit;
	}
}
?>

Ich sehe aber jetzt auch nicht wurm er mir die IF - Abfrage nicht ausführt.

Vielen Dank für eure Hilfe

Grüße Ava99
 
Was heißt, der führt nicht komplett aus?
Die innere oder äußere If-Abfrage?

Verwende mal $_POST und $_GET, ein reines $senden funktioniert nur mit eingeschalteten globalen Variablen und ist äußerst unschön.
 
PHP:
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 <input type="text" class="input" name="email"><br><br>
 <input type="submit" name="senden" class="input" value="Senden"><br><br>
 <input type="hidden" name="send" value="1" />
 (Eine ungültige Email-Adresse ist zum<br>Beispiel: test@test oder test&test@test.de)
</form>

<?php
#$email = $_POST['email'];
#echo $email;

if ( isset ( $_POST['send'] )
    && $_POST['send'] == 1 )
{
    if ( !eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",$_POST['email'] ) )
    {
        echo "<font color=#FF0000>Ung&uuml;ltige Email-Adresse!</font>";
        exit;
    }
}
?>

Versuch mal so.

//edit: Zur Erklärung: <? $PHP_SELF ?> funktioniert nicht. Erstens muss man das mit echo ausgeben und zweitens ist das eine Superglobale $_SERVER.
Zum prüfen ob ein Formular abgeschickt wurde finde ich es schöner ein hidden-Feld zu haben auf das geprüft wird.
 
Zuletzt bearbeitet:
Zurück