Очистить данные GET через конструктор PHP - PullRequest
0 голосов
/ 21 января 2010

У меня есть следующий конструктор:

public function __construct(){
    foreach($_GET as $key=>$value){
        $_GET[$key] = addslashes($value);
    }
    $this->get = $_GET;
}

и используется так:

$app->get['id']

Где 'id' - параметр, передаваемый через URL.
Есть ли хороший способ очистки всех данных через конструктор?

Ответы [ 3 ]

1 голос
/ 21 января 2010

Немного более короткий способ сделать это:

public function __construct(){
    $this->get = array_map('mysql_real_escape_string', $_GET);
}
0 голосов
/ 02 мая 2013

Если вы знаете ожидаемый тип переменной, вы можете привести ее к желаемому типу, например

$this->id = (int)$app->get['id']; //forces type to be integer
0 голосов
/ 21 января 2010

Почему ты это делаешь? Чтобы предотвратить внедрение SQL?

Предотвращение внедрения должно быть сделано на уровне построения запроса, и, безусловно, оно должно быть выполнено с помощью более актуальной функции, такой как mysql_real_escape_string, которая будет перехватывать все нечетные случаи, а не только кавычки. То, что вы делаете здесь, не лучше, чем печально известная функция магических цитат, которая с тех пор была удалена из PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...