Martin_N
wissensdurstig
Huhu =)
Ich lerne zurzeit Webdesign, speziell Programmieren mit PhP und PhPMyAdmin, MySQL.
Mein derzeitiges Lernprojekt ist ein Browsergame(Thematik: irgend etwas kaufen, verkaufen und verwalten, sehr simpel gehalten, aber egal jetzt..) . Seit einigen Stunden bin ich daran das Registrierungsformular best möglich zu sichern und Fehler seiten des Benutzers rechtzeitig zu erkennen um den Benutzer XY auf diese aufmerksam zu machen.
Nun zu meinem genauen Problem.. Ich möchte überprüfen ob die eingetragenen und übertragene Variable "newemail" einer echten e-Mail ähnelt.
Das ganze realisiere mit dem Befehl preg_match("such nach", $in_variable)
Teil des Formulares. (<form ~~> </form> fehlt.)
PhP Teil
Ich habe bereits nach dem Fehler gegoogled und nichts gefunden, des weiteren habe ich ein wenig mit den Zeichen rumgespielt, die für das durchsuchen der variable genutzt werden. Was mir bis lang auch viel geholfen hat. An diesem Punkt hänge ich aber fest..
Des weiteren habe ich "check_email("test@test.de")" gefunden. Wenn ich diesen Befehl anwende gibt er mir folgende Fehlermeldung aus:
Ich lerne zurzeit Webdesign, speziell Programmieren mit PhP und PhPMyAdmin, MySQL.
Mein derzeitiges Lernprojekt ist ein Browsergame(Thematik: irgend etwas kaufen, verkaufen und verwalten, sehr simpel gehalten, aber egal jetzt..) . Seit einigen Stunden bin ich daran das Registrierungsformular best möglich zu sichern und Fehler seiten des Benutzers rechtzeitig zu erkennen um den Benutzer XY auf diese aufmerksam zu machen.
Nun zu meinem genauen Problem.. Ich möchte überprüfen ob die eingetragenen und übertragene Variable "newemail" einer echten e-Mail ähnelt.
xy = a-zA-Z0-9
xy@xy.xy
Das übertragen der Variable funktioniert fehlerfrei. Fehler die vor dem @ Zeichen gemacht werden, sprich wenn keine Zahl oder Buchstabe geschrieben wurde:
werden erkannt und die entsprechende Fehlermeldung wird ausgegeben.@as.de2
Wenn ich eine Zahl oder einen Buchstaben nach dem @ schreibe:
test@a.de2funktioniert alles brav und wunderbar.
So bald nach dem @ jedoch 2 oder mehr Zeichen stehen, wird mir die e-Mail als falsch erkannt.
test@as.de2
Teil des Formulares. (<form ~~> </form> fehlt.)
HTML:
<table>
<tr>
<td class="td_describ">e-Mail:</td>
<td><input class="account_input" type="text" value="<?php echo $_POST['newemail'];?>" name="newemail" /></td>
</tr>
</table>
PhP Teil
PHP:
// e-Mail:
if (isset($_POST['newemail']) && preg_match("/[a-zA-Z0-9]@[a-zA-Z0-9]\.[a-zA-Z0-9]/", $_POST['newemail']) == true) {
echo '<br />Die e-Mail scheint korrekt zu sein';
$newemail = $_POST['newemail'];
$newemailOK = 1;
} else {
echo '<br />Die e-Mail entspricht <span class="bold">nicht</b> den Anforderungen.';
$newemailOK = 0;
}
Ich habe bereits nach dem Fehler gegoogled und nichts gefunden, des weiteren habe ich ein wenig mit den Zeichen rumgespielt, die für das durchsuchen der variable genutzt werden. Was mir bis lang auch viel geholfen hat. An diesem Punkt hänge ich aber fest..
Des weiteren habe ich "check_email("test@test.de")" gefunden. Wenn ich diesen Befehl anwende gibt er mir folgende Fehlermeldung aus:
Fatal error: Call to undefined function check_mail() in C:\xampp\htdocs\tesconic\content\konto.php on line 161
PHP:
if (check_mail("test@test.de")) {
echo '<br />Die e-Mail scheint korrekt zu sein';
$newemail = $_POST['newemail'];
$newemailOK = 1;
echo "<br /><br />".$_POST['newemail'];
} else {
echo '<br />Die e-Mail entspricht <span class="bold">nicht</b> den Anforderungen.';
$newemailOK = 0;
echo "<br /><br />".$_POST['newemail'];
}