среда, 29 октября 2008 г.

Объявление переменных _POST

В PHP после отправки данных методом POST , объявление переменных происходит через массив _POST, который появился в PHP 4.1. Можно упростить объявление и обработку переменных методом _POST и избавить себя от лишних строчек кодописания.

Объявления и обработка переменных выглядит следующим образом:

$login = $_POST['login'];
$psw = $_POST['password'];
$email = $_POST['email'];

//Обработка переменной логин
$login = trim($login);
$login = strip_tags($login);
$login = htmlspecialchars($login);
$login = addslashes($login);

//Обработка переменной пароль
$psw = trim($psw);
$psw = strip_tags($psw);
$psw = htmlspecialchars($psw);
$psw = addslashes($psw);

//Обработка переменной логин
$email = trim($email);
$email = strip_tags($email);
$email = htmlspecialchars($email);
$email = addslashes($email);


* This source code was highlighted with Source Code Highlighter.


Тоже самое действие можно сделать и более простым кодом:
$vars = $_POST;
foreach (array_keys($vars) as $key){
${$key} = trim($vars[$key]);
${$key} = strip_tags(${$key});
${$key} = htmlspecialchars(${$key});
${$key} = addslashes(${$key});
}


* This source code was highlighted with Source Code Highlighter.

Ещё проще выше приведённый код можно представить так:
$vars = $_POST;
foreach (array_keys($vars) as $key){
${$key} = addslashes( htmlspecialchars( strip_tags( trim( $vars[$key] ) ) ) );
}


* This source code was highlighted with Source Code Highlighter.


Данный упрощённый способ можно представить в виде функции, но для того чтобы данная функция заработала вам придётся пренебречь безопасностью, чего я вам не советую делать, включив переменную register_globals в php.ini. При использование данного метода не значительно повышается время исполнения кода, где-то на 21% - это десятитысячные доли мили секунд, так что данный способ вполне можно использовать не опасаясь.