Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Фильтрация переменной.
Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2015
Помог: 0 раз(а)
Здравствуйте,я только начал изучать php и не могу понять одну штуку с фильтрацией переменной. Хочу очистить логин из формы который записал в переменную login от пробелов этим кодом:
Но записывается он в базу все равно с пробелами. Где моя тут ошибка? И второй вопрос отфильтровать пробелы этого мало? нужно отфильтровать всякие скобки,запятые? (Добавление)
-------------------------------- -------------------------------- --------------
ВСЕ Понял=)
Так нужно: ( что меняем, на что меняем)
Я нуб=)
А как все эти знаки почистить из логина?
Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2015
Помог: 0 раз(а)
Так не корректная фильтрация получается пишу в форму логина <a? d .m i' n2>
а в базу записывается lamn, а хотелось бы что бы записывался логин admin2 (Добавление)
Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013 Откуда: Belarus
Помог: 22 раз(а)
После функции htmlspecialchars в логине не будет символов < > ' "
бессмысленно дальше заменять их на другие символы
Проверка логина заключается в том, чтобы разрешить или запретить пользователю использовать этот логин. А что-то заменять, фильтровать автоматически может привести к не совсем ожидаемому результату. ИМХО, пусть юзер сам позаботится, чтоб логин соответствовал требованиям.
И вообще, грамотная фильтрация данных при занесении или выборке их из базы данных делает подобные фильтрации бесполезными, ибо никакого вреда это не нанесёт. (Добавление)
и еще, str_replace может принять массивы в качестве первых двух аргументов
Покинул форум
Сообщений всего: 32
Дата рег-ции: Май 2015
Помог: 0 раз(а)
Ts.Saltan пишет:
После функции htmlspecialchars в логине не будет символов < > ' "
бессмысленно дальше заменять их на другие символы
Проверка логина заключается в том, чтобы разрешить или запретить пользователю использовать этот логин. А что-то заменять, фильтровать автоматически может привести к не совсем ожидаемому результату. ИМХО, пусть юзер сам позаботится, чтоб логин соответствовал требованиям.
И вообще, грамотная фильтрация данных при занесении или выборке их из базы данных делает подобные фильтрации бесполезными, ибо никакого вреда это не нанесёт. (Добавление)
и еще, str_replace может принять массивы в качестве первых двух аргументов
$msg="<b>Имя</b> содержит запрещенные символы. Разрешены рус. или англ. буквы обоих регистров, цифры, символы: пробел, _, !, ~, -, .,@ <br>\n";}
Ts.Saltan
Отправлено: 20 Мая, 2015 - 15:48:30
Посетитель
Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013 Откуда: Belarus
Помог: 22 раз(а)
Как вариант, можно и так
Sail
Отправлено: 20 Мая, 2015 - 16:44:32
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Александерр пишет:
Тоже не прокатывает в базу записывается как ltadmin2gt а должно admin2
Есть HTML-сущности, которые кодируются как &code;
Их надо просто декодировать.
То есть, преобразовать предложенный Panoptik'ом вариант следующим образом:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.