Password Länge und Art prüfen


Identität

Erfahrenes Mitglied
Einige kennen mich sicherlich schon, ich habe viele Fragen, da ich gerade viel programmiere und meinen Code so perfekt wie möglich haben möchte. Also ich habe ein Registrierungsscript. Sobald sich ein User registriert, wird alles mögliche geprüft.

Ich möchte noch eine Abfrage machen zur Länge und Art des Passwortes. Es soll mindestens 6 Stellen haben und nur aus A-Z , a-z und 0,9 bestehen. Geht das auch besser als meine Variante?

Code:
if (strlen($pwd) >= 6 && ereg("[A-Z]",$pwd) && ereg("[a-z]",$pwd) && ereg("[0-9]",$pwd)) {
 echo "okay."
}

So sieht die komplette Abfrage aus, ist das so okay? (Der obere teil ist noch nicht eingebaut.)

Code:
<?php
    if($_POST['submit']){
        $username = htmlentities($_POST['username']);
        $email = htmlentities($_POST['email']);
        $password = htmlentities($_POST['password']);
        $password2 = htmlentities($_POST['password2']);
        
        if(empty($username)){
            $fehler = '- Bitte einen Usernamen eingeben.<br />';
        }
        if(mysql_num_rows(mysql_query("SELECT name FROM user WHERE name = '".$username."' ")) > 0){
            $fehler .= '- Der Username ist bereits vergeben.<br />';
        }
        if(empty($password) OR $password !== $password2){
            $fehler .= '- Es wurde kein Passwort eingegeben oder die Passwortabfrage war falsch.<br />';
        }
        if(empty($email)){
            $fehler .= '- Bitte eine E-Mail-Adresse eingeben.<br />';
        }
        if(mysql_num_rows(mysql_query("SELECT email FROM user WHERE email = '".$email."' ")) > 0){
            $fehler .= '- Diese E-Mail-Adresse ist bereits vergeben.<br />';
        }
        if (eregi("^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,4}\$",$_POST['email'])!==1) {
            $fehler .= '- Bitte eine gültige E-Mail-Adresse eingeben.<br />';
        }
        if($fehler){
            echo '<p class="error">'. $fehler . '</p>';
        }
        else{
        $actcode = substr(md5(time()), 0, 11) . rand(1000, 9999);
            mysql_query("INSERT INTO `portal`.`user` (
`id` ,
`name` ,
`password` ,
`email` ,
`regdate` ,
`lastlogin` ,
`actcode` ,
`level` ,
`ip` ,
`geschlecht` ,
`alter` ,
`avatar` ,
`website` ,
`land` ,
`stadt` ,
`beruf` ,
`kontakt` ,
`read` ,
`bemerkung`
)
VALUES (
'' , '". $username ."', '". md5($password) ."','". $email ."', '". time() ."', '0', '". $actcode ."', '0', '". $_SERVER['REMOTE_ADDR'] ."', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0')");
echo 'Okay';
echo $actcode;

        }
    } 
        
?>
<br />
<div style="width:370px;float:left;">
<form method="post" action="index.php?content=register">
    <table width="353" border="0">
      <tr>
        <td width="170">Username:</td>
        <td width="190" align="right"><input name="username" type="text" size="30"></td>
      </tr>
      <tr>
        <td>Passwort:</td>
        <td align="right"><input name="password" type="password" maxlength="16"></td>
      </tr>
      <tr>
        <td>Password wiederholen:</td>
        <td align="right"><input name="password2" type="password" maxlength="16"></td>
      </tr>
      <tr>
        <td>E-Mail:</td>
        <td align="right"><input name="email" type="text" maxlength="80"></td>
      </tr>
      <tr>
        <td colspan="2" align="right"><input type="submit" name="submit" value="Registrieren"></td>
      </tr>
    </table>
</form>
 

Identität

Erfahrenes Mitglied
Danke, also war mein Code doch wieder zu kompliziert ;-)

Danke euch, wer noch im Code Lücken findet, kann sie mir gern melden =)