Поле подтверждения пароля всегда равно 1

0

У меня есть проблема с регистрационной формой на моем веб-сайте, независимо от того, как я набираю пароль подтверждения, который он конвертирует в один (я знал это, когда я эхо-пароль и подтверждаю пароль), и хотя эти два значения отличаются друг от друга, это всегда дает мне правду, когда я сравниваю между паролем и подтверждением

вот 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

  • 1
    У вас нет именованного элемента с именем signup поэтому ваш условный оператор не будет работать. Если это не в непоказанной части вашего кода. Я сделаю ставку на твою кнопку отправки, верно ? - Ах, знал это.
  • 0
    Вам необходимо убедиться, что password и confirm_password указаны, а не пустые (и, возможно, некоторые дополнительные правила).
Показать ещё 7 комментариев
Теги:
passwords

1 ответ

0
Лучший ответ

Эта строка:

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.


  • MD5 считается слишком быстрым и устаревшим.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню