Различные вопросы по PHP и MySQL

99.69K
.
(\/)____o_O____(\/)
Milordas, сначала проверяй ошибки, потом уже смотри сколько их, потом в базу
.
Блин, я проверяю же. существует ли переменная $password?
Но её не существует, а пароль всё равно записывается в базу.
Пароль который в браузере сохранен

if (isset($login, $password)) {
/* записываю в базу */
}
.
(\/)____o_O____(\/)
Milordas, попробуй через mb_strlen считать длинну, проверять длинну через > 0
.
Koenig, не помогает
.
# Milordas (20.01.2014 / 11:00)
Блин, я проверяю же. существует ли переменная $password?
Но её не существует, а пароль всё равно записывается в базу.
Пароль который в браузере сохранен

[php]if (isset($login, $password)) {
/*
А ты проверяй не на существование, а на пустоту, т.е. empty юзай.
.
Да проверяю я.


if (isset($_POST['submit'])) {
  if (!empty($_POST['login'])) {
    if (!preg_match("/[^a-zа-я0-9_]/i",strip_tags(trim($_POST['login'])))) {
      if ((strlen(strip_tags(trim($_POST['login'])))>=4) AND (strlen(strip_tags(trim($_POST['login'])))<=15)) {
        $login=strip_tags(trim($_POST['login']));
        } else {
            $err_len_l='Длина логина - min: 4, max: 12 символов<br>';
            }
      } else {
          $err_preg_l='Логин содержит недопустимые символы<br>';
          }
    } else {
        $err_emp_l='Вы не ввели логин<br>';
        }

  if (!empty($_POST['password'])) {
    if (!preg_match("/[^a-z0-9_]/i",strip_tags(trim($_POST['password'])))) {
      if ((strlen(strip_tags(trim($_POST['password'])))>=6) AND (strlen(strip_tags(trim($_POST['password'])))<=18)) {
        $password=strip_tags(trim(md5($_POST['password'])));
        } else {
            $err_len_p='Длина пароля - min: 6, max: 18 символов<br>';
            }
      } else {
          $err_preg_p='Пароль содержит недопустимые символы<br>';
          }
    } else {
        $err_emp_p='Вы не ввели пароль<br>';
        }

  if (isset($login, $password)) {
    $res=mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users` WHERE `login`='$login'"));
    if ($res['id']=="") {
      $_SESSION['login']=$login;
      $sex=htmlspecialchars(trim($_POST['sex'], ENT_QUOTES));
      mysql_query("INSERT INTO `users`
                        (`login`, `password`, `date_reg`, `real_date`, `sex`, `about`)
                         VALUES
                         ('$login', '$password', '$date', '$date', '$sex', 'Не заполнено')");
      header("Location: http://['HTTP_HOST']."/");
      exit();
      } else {
          $err_res='Этот логин уже занят<br>';
          }
    }
  }
.
(\/)____o_O____(\/)
убери внезапность проверок, каждая отдельно, а то у тебя одна в другой
.
так что ли?
херня какая-то получилась.
if (!empty($_POST['login'])) {
    } else {
        $err_emp_l='Вы не ввели логин<br>';
        }

    if (!preg_match("/[^a-zA-Zа-яА-Я0-9_]/u",strip_tags(trim($_POST['login'])))) {
     } else {
          $err_preg_l='Логин содержит недопустимые символы<br>';
          }

      if ((mb_strlen(strip_tags(trim($_POST['login'])),'UTF-8')>=4) AND (mb_strlen(strip_tags(trim($_POST['login'])),'UTF-8')<=15)) {
        $login=strip_tags(trim($_POST['login']));
        } else {
            $err_len_l='Длина логина - min: 4, max: 12 символов<br>';
            }
.
(\/)____o_O____(\/)
Milordas, могу показать как я делал проверки, тут глянь Отправка электронной почты Администрации...
.
Koenig, не помогло.
при такой проверке
if (empty($_POST['pass'])) {
    $err_emp_p='Вы не ввели пароль<br>';
    } elseif (preg_match("/[^a-zA-Z0-9_]/u",strip_tags(trim($_POST['pass'])))) {
        $err_preg_p='Пароль содержит недопустимые символы<br>';
        } elseif ((mb_strlen(strip_tags(trim($_POST['pass'])),'UTF-8')<6) OR (mb_strlen(strip_tags(trim($_POST['pass'])),'UTF-8')>18)) {
            $err_len_p='Длина пароля - min: 6, max: 18 символов<br>';
            } else {
                $password=strip_tags(trim(md5($_POST['pass'])));
                }

даже если не ввожу пароль, ошибка не выдаётся.
Всего: 7969