Milordas, сначала проверяй ошибки, потом уже смотри сколько их, потом в базу
Блин, я проверяю же. существует ли переменная $password?
Но её не существует, а пароль всё равно записывается в базу.
Пароль который в браузере сохранен
if (isset($login, $password)) {
/* записываю в базу */
}
Milordas, попробуй через mb_strlen считать длинну, проверять длинну через > 0
# 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>';
}
}
}
убери внезапность проверок, каждая отдельно, а то у тебя одна в другой
так что ли?
херня какая-то получилась.
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>';
}
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'])));
}
даже если не ввожу пароль, ошибка не выдаётся.