Достаточная ли фильтрация данных

chemax
На сайте с 07.01.2009
Offline
206
896

Отправляется форма регистрации.

Вопрос знатокам, нормально ли фильтруются данные, какие ошибки в коде.

(проверка на встречающийся логин пропущена специально)


if(isset($_POST['reg']))
{
$errors=0;
if(!$_POST['login'])
{
$msgbox[]=$lang['check_login'];
$errors++;
}
else
{
$login=filter_var($_POST['login'],FILTER_SANITIZE_STRING);
$login=trim($login);
}

if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL))
{
$msgbox[]=$lang['check_email'];
$errors++;
}
else
{
$email=$_POST['email'];
$email=trim($email);
}

if(strcmp($_POST['password'],$_POST['repassword']))
{
$msgbox[]=$lang['check_repassword'];
$errors++;
}
else
{
if (strlen($_POST['password']) < 5)
{
$msgbox[]=$lang['check_lenpassword'];
$errors++;
}
else
{
$password=filter_var($_POST['password'],FILTER_SANITIZE_STRING);
$password=md5($password);
}
}
if($errors==0)
{
$sql = "INSERT INTO users SET name='$login', email='$email', password='$password'";
$sql_result = $mysql->query($sql);

if($sql_result)
{
$msgbox[]=$lang['register_ok'];
}
else
{
$msgbox[]=$lang['register_notok'];
}
}
else
{
$msgbox[]=$lang['register_notok'];
}
}
Качественный хостинг, VPS и сервера. (http://ihc.ru/?ref=569)
MD
На сайте с 11.04.2010
Offline
22
#1

только что теста ради сравнили скорость работы filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) с самописной функцией... жуткое зрелище. 0,000006 против 0.03224 у filter_var()

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#2

не достаточно!

Обязательно:

$sql = "INSERT INTO users SET name='mysql_real_escape_string($login)', email='mysql_real_escape_string($email)', password='mysql_real_escape_string($password)'";

остальное это уже чистка от мусора

$login=filter_var($_POST['login'],FILTER_SANITIZE_STRING);

$login=trim($login);

$password=filter_var($_POST['password'],FILTER_SANITIZE_STRING);

$password=md5($password);

вы уверены, что логин и пароль не изменится?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
chemax
На сайте с 07.01.2009
Offline
206
#3
LEOnidUKG:
не достаточно!
Обязательно:
$sql = "INSERT INTO users SET name='mysql_real_escape_string($login)', email='mysql_real_escape_string($email)', password='mysql_real_escape_string($password)'";

остальное это уже чистка от мусора

$login=filter_var($_POST['login'],FILTER_SANITIZE_STRING);
$login=trim($login);
$password=filter_var($_POST['password'],FILTER_SANITIZE_STRING);
$password=md5($password);

вы уверены, что логин и пароль не изменится?

с паролем горячку спорол. а вот в логине думаю не надо символов <>?

а mysql_real_escape_string() вылетело что то из головы.

chemax добавил 16.10.2010 в 14:25

mago de sombra:
только что теста ради сравнили скорость работы filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) с самописной функцией... жуткое зрелище. 0,000006 против 0.03224 у filter_var()

вот я и думаю, использовать свое или эту функцию...:)

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4
с паролем горячку спорол. а вот в логине думаю не надо символов <>?

Вдруг у меня логин: >|<uk

:D

MD
На сайте с 11.04.2010
Offline
22
#5
вот я и думаю, использовать свое или эту функцию...

При такой медленной скорости - функция для мазохистов, ну или для тех, кому лень написать пару лишних строк :)

Str01tel
На сайте с 27.12.2009
Offline
26
#6
filter_var()
0.000215
0.000191
0.000187

preg_match('/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i' , $email);
0.000148
0.000152
0.000152

я б не заморачивался ) темболее это не тот участок кода который нужно оптимизировать

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий