У меня есть проблема с регистрационной формой на моем веб-сайте, независимо от того, как я набираю пароль подтверждения, который он конвертирует в один (я знал это, когда я эхо-пароль и подтверждаю пароль), и хотя эти два значения отличаются друг от друга, это всегда дает мне правду, когда я сравниваю между паролем и подтверждением
вот HTML:
<span><p>Password:</p>
<input type="password" size="25" name="password" placeholder="Enter Your Password" style="margin-bottom:2ex;" />
<font color="red">*</font>
<font color="grey">At least 8 characters.</font></span>
<span><p>Confirm Password:</p>
<input type="password" size="25" name="confirm_password" placeholder="Confirm Your Password" style="margin-bottom:2ex;" />
<font color="red">*</font></span>
и вот мой PHP-код
if (isset($_POST['signup'])) {
if ($_POST['password'] != NULL && $_POST['confirm_password'] = !NULL) {
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password'];
if ($password != $confirm_password) {
print ("<p><b><font color='red'>Provided passwords do not match</font></b></p>");
}
else {
$password = md5($password);
//do the rest of code
}
}
}
ОБНОВИТЬ
Есть некоторая скрытая часть кода, имя кнопки отправки - это регистрация, и я проверил, что значения полей не являются нулевыми, другая вещь, конвертирующая в одну, означает, что значение всегда равно 1
Эта строка:
if ($_POST['password'] != NULL && $_POST['confirm_password'] = !NULL) {
это = !NULL
должно быть != NULL
if ($_POST['password'] != NULL && $_POST['confirm_password'] != NULL) {
Хранилище паролей:
Подумайте об использовании функции CRYPT_BLOWFISH или PHP 5.5 password_hash()
. Для PHP <5.5 используйте password_hash() compatibility pack
.
signup
поэтому ваш условный оператор не будет работать. Если это не в непоказанной части вашего кода. Я сделаю ставку на твою кнопку отправки, верно ? - Ах, знал это.password
иconfirm_password
указаны, а не пустые (и, возможно, некоторые дополнительные правила).