PHP Login Problem seid Webspace neue Version PHP 5.3

11/07/2011 21:37 -20-Sawboy-20-#1
Hallo Epvpers

Ich Habe zwei Probleme und es ist wegen PHP 5.3

Fehler meldung

Email:
Deprecated: Function ereg() is deprecated in /xxx/form-login.ph p on line 15

Password:
Deprecated: Function ereg() is deprecated in /xxx/form-login.ph p on line 17


Code:

if(!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.) +([a-zA-Z]{2,4})$",$email)){ $mail_ok=0; if ($email != '') { $fehler .= "- Die E-Mail-Adresse ist ungültig!<br>"; } } else {$mail_ok=1;}

if(!ereg("^[a-zA-Z]{7}$",$pass)){ $pass_ok=0; if ($pass != '') { $fehler .= "- Das Passwort ist ungültig!<br>"; } } else {$pass_ok=1;}


was soll ich ändren ?

weil ereg veraltet ist
11/07/2011 21:40 NotEnoughForYou#2
PHP Code:
preg_match() 
verwenden
11/07/2011 22:01 -20-Sawboy-20-#3
preg_match schon versucht aber es kommt dann dies als Fehler.

Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in /xxx/form-login.ph p on line 15

Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in /xxx/form-login.ph p on line 17
11/07/2011 22:05 NotEnoughForYou#4
zeig mal deinen preg_match code
11/07/2011 22:08 -20-Sawboy-20-#5
Code

Quote:
EMAIL

if(!preg_match("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$email)){ $mail_ok=0; if ($email != '') { $fehler .= "- Die E-Mail-Adresse ist ungültig!<br>"; } } else {$mail_ok=1;}

PASSWORT

if(!preg_match("^[a-zA-Z]{7}$",$pass)){ $pass_ok=0; if ($pass != '') { $fehler .= "- Das Passwort ist ungültig!<br>"; } } else {$pass_ok=1;}
11/07/2011 22:13 .exTremez™#6
Laut dem PHP Error ist der Regex falsch?
11/07/2011 22:16 NotEnoughForYou#7
Hab dir mal die jeweiligen Funcs geschrieben
PHP Code:
 function checkMail($mail) { 
    if(
preg_match("/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}$/"$mail)) { 
      return 
true
    } 
    else {  
    return 
false
     } 
  } 

function 
checkPW($pass) { 
   if(
preg_match("/^[a-zA-Z0-9]+$/",$pass)) { 
    
      return 
true
    } 
    else { 
      return 
false
     
  } 


Und dann eben
PHP Code:
if(checkPW($pass)) {
}
else {
echo
'<p>Passtwort enthät ungültige Zeichen.</p>';
}


if(
checkMail($mail)) {
}
else {
echo
'<p>Mail ist ungültig.</p>';

11/07/2011 22:22 -20-Sawboy-20-#8
Versucht und geht nicht

Code

Quote:
if(!preg_match("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$",$email)){ $mail_ok=0; if ($email != '') { $fehler .= "- Die E-Mail-Adresse ist ungültig!<br>"; } } else {$mail_ok=1;}

if(!preg_match("^[a-zA-Z]{7}$",$pass)){ $pass_ok=0; if ($pass != '') { $fehler .= "- Das Passwort ist ungültig!<br>"; } } else {$pass_ok=1;}

if (($form_ok=='1') && ($pass_ok=='1') && ($mail_ok=='1')) {
$passwort = md5($pass);
$sql11_user = "SELECT * FROM user WHERE user_email = '$email' AND user_pass = '$passwort'";
$res11_user = mysql_query($sql11_user);
$z11_user = mysql_num_rows($res11_user);
if ($z11_user!='0') { $db_ok=1;
$sql2_user = "SELECT * FROM user WHERE user_email = '$email' AND user_pass = '$passwort'";
$res2_user = mysql_query($sql2_user);
while($row = mysql_fetch_assoc($res2_user)) {
$user_id = $row['user_id'];
}
}
else { $db_ok=0; $fehler.="- Die Zugangsdaten waren nicht korrekt!<br>";}
}
else { $db_ok=0; $fehler.="- Die Zugangsdaten waren nicht korrekt!<br>"; }
Die Full PHP-Datei
[Only registered and activated users can see links. Click Here To Register...]
oder
[Only registered and activated users can see links. Click Here To Register...]
11/07/2011 22:38 NotEnoughForYou#9
ich weiss ja nicht was du hast ...


[Only registered and activated users can see links. Click Here To Register...]


Hab jetzt nur mal die PW Func geadded, email klappt aber genauso.
11/07/2011 22:40 -20-Sawboy-20-#10
Wenn ich erlich bin Bekomme das echt nicht hin habe noch nie mit preg_match gearbeitet da muss man fast alles ändren

Und dann noch die mysql Datenbank zusammenarbeiten.
11/07/2011 22:58 Fratyr#11
Merk dir mal für die Zukunft das wenn du ne Meldung mit "deprecated" bekommst, das die Funktion
die du verwendest veraltet ist. Das hat den Sinn das die Guten mit doppelten Funktionen in PHP
schluss machen wollen.

@NotEnoughForYou
Ich finde das Logo auf [Only registered and activated users can see links. Click Here To Register...] ziemlich cool!
11/07/2011 23:10 -20-Sawboy-20-#12
[Only registered and activated users can see links. Click Here To Register...]
11/08/2011 15:58 NotEnoughForYou#13
Quote:
Originally Posted by Fratyr View Post
Merk dir mal für die Zukunft das wenn du ne Meldung mit "deprecated" bekommst, das die Funktion
die du verwendest veraltet ist. Das hat den Sinn das die Guten mit doppelten Funktionen in PHP
schluss machen wollen.

@NotEnoughForYou
Ich finde das Logo auf [Only registered and activated users can see links. Click Here To Register...] ziemlich cool!
danke ^^ projekt wurde leider abgesagt vom Leiter :( ....


@te, ein neuer Thread ist überflüssig. Übernimm meine Funktion oder verbessere dein regex... in meinem vorherigen Post habe ich dir alles gegeben was du dafür brauchst.
11/08/2011 18:02 -20-Sawboy-20-#14
Hier bekommt man echt kopf weh ... der sagt so der sagt so und der sagt omg macht das so oder lass es so ..... ES geht nicht einfach so!

edit: [Only registered and activated users can see links. Click Here To Register...]
11/08/2011 19:52 Fratyr#15
Ich weiß nich was daran so schwer sein soll. ereg ist veraltet benutze preg_match().
Das hat nichts mit Kopfweh zu tun, dir wurde ausreichend geholfen, man hat dir sogar
ein fertiges Script hingeklatscht. Was willst du den noch mehr? Bessere Hilfe kannst du
nich bekommen. Und wenn dir das immer zu wenig ist musst du eben Reguläre Ausdrücke
lernen. Viel Spaß dabei, das gehört meiner Meinung nach mit zu den Schwersten Sachen
im Bereich PHP. Oder du machst einfach das was dir nun schon mehrmals in diesem
Thread gesagt wurde.

Und doch es geht einfach so, du brauchst eigentlich nur die Delimeter hinzuzufügen und
das !ereg durch !preg_match auszutauschen! Sorry, aber wenn dir das zu viel ist dan weiß
ich ja auch nicht...