Minimale und maximale Stärke Länge
Im arbeiten auf ein Formular, das braucht ein Kennwort, das zwischen 6 und 25 Zeichen. Der Benutzername und vollständiger name muss weniger als 25 Zeichen sein. Der Benutzername und vollständiger name-Teil funktioniert gut, aber wenn ich in ein Kennwort, das 10 Zeichen lang ist es echos aus meinem Fehler-code, als wäre es weniger als 6. Was mache ich falsch?
Bitte werfen Sie einen Blick auf den code werfen und mir bitte helfen:
Das Problem ist in dem Gebiet, kommentiert //überprüfen Sie Passwort-Länge. Dank jeder
Den php-code ist:
<?php
echo "<h1>Register</h1>";
$submit = filter_input(INPUT_POST, 'submit');
//form data
$fullname = strip_tags (filter_input(INPUT_POST, 'fullname'));
$username = strip_tags (filter_input(INPUT_POST, 'username'));
$password = strip_tags(filter_input(INPUT_POST, 'password'));
$repeatpassword = strip_tags(filter_input(INPUT_POST, 'repeatpassword'));
$date = date("Y-m-d");
if ($submit)
{
//check for existence
if($fullname&&$username&&$password&&$repeatpassword)
{
$password = md5($password);
$repeatpassword = md5($repeatpassword);
if ($password==$repeatpassword)
{
//check char length of username and fullname
if (strlen($username)>25||strlen($fullname)>25)
{
echo "Length of username or full name is too long!";
}
else
{
//check password length
if (strlen ($password)>25 || strlen ($password)<6)
{
echo "Password must be between 6 and 25 characters";
}
else
{
//register user
}
}
}
else echo "Your passwords do not match";
}
else echo "Please fill in <b>all</b> fields!";
}
?>`
und der html-Code:
<html>
<form action='register.php' method='POST'>
<table>
<tr>
<td>
Your full name:
</td>
<td>
<input type='text' name='fullname'>
</td>
</tr>
<tr>
<td>
choose a username:
</td>
<td>
<input type='text' name='username'>
</td>
</tr>
<tr>
<td>
Choose a password:
</td>
<td>
<input type='password' name='password'>
</td>
</tr>
<tr>
<td>
Repeat your password:
</td>
<td>
<input type='password' name='repeatpassword'>
</td>
</tr>
<table>
<p>
<input type='submit' name='submit' value='Register'>
Diese Frage scheint off-topic, weil es VERALTET ist.
InformationsquelleAutor Ryan Sinclair | 2012-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überschreiben Sie das Passwort mit MD5-Summe hier:
Ich würde vorschlagen, mit unterschiedlichen Variablennamen für diese unterschiedlichen Werte:
Benennung Ihrer Variablen appropraitely entfernen Verwirrung und reduzieren das Risiko von Fehlern.
Richtig; man könnte auch einfach verschieben Sie den Teil des Codes, wo Sie
md5
Ihr Passwort an, wo Sie//register user
; keinen Sinn in der Verwendungmd5
auf$repeatpassword
wieder, da hast du schon geprüft, es entspricht der$password
.Ich legte $Passwort = md5($Passwort); nur oben //register Benutzer. Aber sollte ich $Passwort = md5($Passwort) oder die $password_md5 = md5($Passwort) gibt es? Das ist intuitiver und weniger wahrscheinlich, um künftig Probleme verursachen?
Wenn Sie
$password = md5($password);
gibt, dann sollte es gut funktionieren, da vermutlich haben Sie dann legen Sie es in die Datenbank. Vergessen Sie$password_md5
, das war nur ein Vorschlag Mark Byers gemacht für zukünftige Referenz für das speichern der modifizierten version einer variable, wenn Sie wollen immer noch laufen die Kontrollen auf das original.okay krank halten es so, wie es jetzt ist. Vielen Dank an alle!
InformationsquelleAutor Mark Byers
Führen Sie MD5 auf Ihr Passwort und wiederholen Sie das Kennwort, bevor Sie es vergleichen. Machen Sie den Vergleich und die Länge überprüfen Sie vor der Ausführung von MD5 auf Sie.
InformationsquelleAutor ChrisWue
Warum nicht Sie beenden die MD5 und stattdessen verwenden Whirlpool?
Immer noch Ihre Zweifel?
Wenn es ist, Ihre Antwort auf Stackoverflow wurde bereits beantwortet :
Die eine ist mehr gesichert md5 oder whirlpool (hashes) und Warum?
{ mehr info }
http://md5-sha-whirlpool.reviews.r-tt.com
InformationsquelleAutor Mr. Morgan