|
автор: Сергей АК (21.10.2006 в 22:49) |
|
| Нужно защитить скрипт от инъекции, нужно выводить сообщение об ошибке, если пользователь ввел символ ' . Есть функция:
if (!preg_match("/^\d+/",$showworkday) || !preg_match("/^\d+/",$showsaturday) || !preg_match("/^\d+/",$showsunday)) $er .= "
|
Куда вставить символ ' , чтобы в случае его введения выдавалось то же сообщение об ошибке? Я куда ни вставлял, в этом случае выводится сообщение даже если я не вводил этот символ. | |
|
|
|
|
|
|
|
для: Сергей АК
(21.10.2006 в 22:49)
| | Данный код проверяет, являются ли переменные $showworkday, $showsaturday и $showsunday числами, если нет - условие if срабатывает. Правда они ориентированы только на начальные значения. Если исправить код следующим образом, то переменные не смогут содержать никакие другие символы кроме чисел.
<?php
if (!preg_match("/^\d+$/",$showworkday) || !preg_match("/^\d+$/",$showsaturday) || !preg_match("/^\d+$/",$showsunday)) $er .= "
?>
|
или требуется что-то другое. | |
|
|
|
|
автор: Сергей АК (22.10.2006 в 11:03) |
|
|
для: cheops
(21.10.2006 в 23:04)
| | Спасибо, требуется запретить вводить все символы, кроме чисел. | |
|
|
|
|
|
|
|
для: Сергей АК
(21.10.2006 в 22:49)
| | Омг, а почему просто не искать сей символ в строке и выводить ерор если он присутствует? Зачем прег_матч?
А вообще функция защищающая от инекции, правда она символы экранирует.. :
function make_save_query (&$value)
{
// если magic_quotes_gpc включена - используем stripslashes
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// Если переменная - число, то экранировать её не нужно
// если нет - то экранируем
if (!is_numeric($value))
{
$value = mysql_real_escape_string($value);
}
return $value;
}
|
| |
|
|
|