• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Leerzeilen in Passwort + minimale Länge

farchris

Mitglied
Hallo,
ich möchte die Leerzeilen in einem md5 verschlüsselten Passwort herausfiltern und eine minimale Länge von 5 Zeichen vorschreiben. Wenn ich bei dem Namen weniger als 5 Zeichen benutze, erscheint die gewünschte Fehlermeldung. Wenn ich allerdings einen korrekten Benutzernamen eingebe und auf das Passwort verzichte, kommt überhaupt keine Fehlermeldung und der Benutzer kann sich ohne Passwort registrieren und einloggen. Wenn ich jeweils das selbe korrekte Passwort eingebe (unter 5 Zeichen), funktioniert es auch. (wenn pw1 nicht pw2 ist, erscheint eine Fehlermeldung, die ich aber nicht in den Code unten kopiert habe)

Somit funktioniert bei dem Passwort "trim" sowie "strlen" nicht.

Code:
if (isset($_POST['_abschicken']))
{
   $name = mysql_real_escape_string(trim($_POST["name"]));
   $pw = md5($_POST["pw"]);
   $pw = trim($pw);
   $pw2 = md5($_POST["pw2"]);
   $err = false;

if (strlen($name) <= 4)
{
echo "<br>";
echo "<font size = '4' color='red'>Der Name ist zu kurz. Mindestens 5 Zeichen</font>";
echo "<br>";
$err = true;
}

if (strlen($pw) <= 4)
{
echo "<br>";
echo "<font size = '4' color='red'>Das Passwort ist zu kurz. Mindestens 5 Zeichen.</font>";
echo "<br>";
$err = true;
}

Was kann ich da machen?
 
Werbung:
Nur so nebenbei. Wenn du ein Passwort zu md5 umwandelst, dann wird dieses automatisch länger. Und erst dann die Leerzeichen zu entfernen ist gaaaarkeine gute Idee :D Das soltest du vorher machen. vor dem umwandeln.
 
Hallo,
ich habe es nun folgendermaßen:

Code:
$pw = trim($_POST["pw"]);
$pw = md5($pw);
if (strlen($pw) <= 4)
{
echo "<br>";
echo "<font size = '4' color='red'>Das Passwort ist zu kurz. Mindestens 5 Zeichen.</font>";
echo "<br>";
$err = true;
}

Die Fehlermeldung beim Passwort wird dennoch nicht angezeigt.

Die Daten werden erst eingetragen, wenn alles auf "$err = false" ist. Zu Beginn ist die Variabel $err auf false, wenn dann z.B. den Name keine 5 Zeichen hat, springt diese auf true über und die Fehlermeldung wird ausgeben. Dies sollte auch beim Passwort gemacht werden, aber da passiert nichts.

Danke.
 
Werbung:
Du hast ja immer noch nicht auf meinen Ratschlag gehört :D
Lass dir mal das Passwort ausgeben nachdem du es als md5 gemacht hast.
Hab grade mal "test" umgewandelt und bekomme dann alleine schon sowas "098f6bcd4621d373cade4e832627b4f6"
Du kannst nicht die passwortlänge prüfen, nachdem du das ganze in md5 gewandelt hast. Das kommt erst ganz am Ende beim Eintragen.

So Sachen wie Font Size gehölren sich ja auch nicht :D
Mach die Abfragen am besten vor dem HTML und setze dann nur die Variable: $passError oder ähnliches. und im HTML hast du dann sowas stehen
HTML:
<form blabla>
   <?php echo $userError; ?>
   <input name="user" type="text" />
   <?php echo $passError; ?>
   <input name="pass" type="text" />
</form>

Und die Variabel gestaltest du auch nicht mit alten HTML Elementen :D Sondern machst das ganze auch über Klasse.
Könnte dann so aussehen
PHP:
<?php
$passError = "<p class='error'>Passwort muss mindestens 5 zeichen haben</p>";
?>
So stimmt dann auch die Semantik :)
 
Zurück
Oben