Registrierung sofort alle Daten ungültig

Fielu

Mitglied
Hallo zusammen,
ich habe Probleme mit meiner Registrierung. Wenn ich die Registrierung teste und Daten eingebe wird mir jedes mal angezeigt ungülter Benutzername, ungültiges Passwort, ungültige Emailadresse. Habe ich beim Muster was falsche gemacht?
Ich poste mal 'nen Ausschnitt:
PHP:
<?php
if (empty($_POST['unregister']) && !empty($_POST['user'])) {
$user = trim($_POST['user']);
$pw1 = trim($_POST['pw1']);
$pw2 = trim($_POST['pw2']);
$email = trim($_POST['email']);
$muster1= "/^[a-zA-Z0-9-_.](5,15)$/";
if (preg_match($muster1, $user) == 0){
$status .= "Das ist kein gültiger Benutzername!<br>";
}
if (preg_match($muster1, $pw1) == 0){
$status .= "Das ist kein gültiges Passwort.<br>";
}
if ($pw1 != $pw2){
$status .= "Die Passworte stimmen nicht überein!<br>";
}
$muster2= "/^[a-zA-Z0-9-_.][a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";

if (preg_match($muster2, $email) == 0) {
$status .= "Das ist keine gültige Emailadresse.<br>";
}
if (empty($status)) {
$sql_usercheck = "SELECT * FROM userlogin WHERE user='$user'";
$result = mysql_query($sql_usercheck);
if (mysql_num_rows($result) == 1) {
$status .= "Nutzername schon weg! Brauchst nen anderen!<br>";
.
.
.
}
 
Bei muster1 ist zumindest mal ein Fehler:

PHP:
$muster1= "/^[a-zA-Z0-9-_.]{5,15}$/";

Versuch mal folgende Regex für Email:

PHP:
^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$
 
Zuletzt bearbeitet:
Hallo Saftmeister, danke für die schnelle Unterstützung.
Email, Passwort und Benutzername sind immer noch ungültig allerdings habe ich jetzt ne Fehlermeldung.
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in /mnt/web4/....regicheck.inc.php on line 8

für folgende Zeile
if (preg_match($muster1, $user) == 0){



Gruß Fielu
 
Zuletzt bearbeitet:
Hmm,

eigentlich sehe ich da keinen Fehler, habe mal den . escaped und den i - Modifikator gesetzt, sowie die Bedingung angepasst! Versuch das bitte nochmal:

PHP:
$muster1= "/^[a-z0-9_-\.]{5,15}$/i";
if (!preg_match($muster1, $user)) {
 
Der einzige Fehler dabei ist, das man ein Beispiel einfach eins zu eins kopiert.
So wurde eben dieses Beispiel ohne Delimiter per Copy&Paste in den eigenen Code kopiert, was natürlich zu einem Fehler führt. :rolleyes:
 
Ja,

hätte er den regulären Ausdruck mitgepostet, wäre es wohl ein leichtes gewesen den Fehler zu finden, aber einigen muss man es einfach aus der Nase ziehen!
 
Ich habe jetzt alles per Hand eingegeben. Es ist immer noch alles ungültig und folgende Fehlermeldungen kommen.
Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 11 in /mnt/web4/21/68/51575168/htdocs/forum/regicheck.inc.php on line 8

Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 11 in /mnt/web4/21/68/51575168/htdocs/forum/regicheck.inc.php on line 11
 
PHP:
<?php
if (empty($_POST['unregister']) && !empty($_POST['user'])) {
$user = trim($_POST['user']);
$pw1 = trim($_POST['pw1']);
$pw2 = trim($_POST['pw2']);
$email = trim($_POST['email']);
$muster1= "/^[a-z0-9_-\.]{5,15}$/i";
if (!preg_match($muster1, $user)) {
$status .= "Das ist kein gültiger Benutzername!<br>";
}
if (preg_match($muster1, $pw1) == 0){
$status .= "Das ist kein gültiges Passwort.<br>";
}
if ($pw1 != $pw2){
$status .= "Die Passworte stimmen nicht überein!<br>";
}
$muster2= "/^[a-zA-Z0-9-_.][a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";

if (preg_match($muster2, $email) == 0) {
$status .= "Das ist keine gültige Emailadresse.<br>";
}
if (empty($status)) {
$sql_usercheck = "SELECT * FROM userlogin WHERE user='$user'";
$result = mysql_query($sql_usercheck);
if (mysql_num_rows($result) == 1) {
$status .= "Nutzername schon weg! Brauchst nen anderen!<br>";
}
$pw=md5($pw1);
$sql_pwcheck = "SELECT * FROM userlogin WHERE pw='$pw'";
$result = mysql_query($sql_pwcheck);
if (mysql_num_rows($result) == 1) {
$status .= "Anderes Passwort wählen!<br>";
}
}
if (empty($status)) {
$sql_putin = "INSERT INTO userlogin
(user, pw, email, member, timestamp)
VALUES ('$user', MD5('$pw1'), '$email', 0, NOW())";
if (mysql_query($sql_putin) && mysql_affected_rows() > 0) { 
$status = "Registrierung erfolgreich!<br>";
$status .= actimail($user, $email);
} else {
$status = "Registrierung nicht erfolgreich!<br>";
}
}
}
?>
 
Und angezeigt wird mir auf der Seite dann:


Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 11 in /mnt/web4/21/68/51575168/htdocs/forum/regicheck.inc.php on line 8

Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 11 in /mnt/web4/21/68/51575168/htdocs/forum/regicheck.inc.php on line 11

Das ist kein gültiger Benutzername!
Das ist kein gültiges Passwort.
Das ist keine gültige Emailadresse.
Benutzername wählen:

Passwort wählen:

Passwort wiederholen:

Emailadresse:
 
Zurück