PHP 5 » Blog Archive » Функция protect ()

Функция protect ()

Для того чтобы облегчить генерацию МВ5-подписей и элементов форм, создадим вспомогательную функцию, которую будем использовать для генерации цифровых подписей в HTML-формах. Эта функция имеет имя protect |) и следующий синтаксис:
protect(Sname, Svalue, Ssecret)
где Sname представляет атрибут МАМЕ скрытого элемента HTML-формы, Svalue — текущее значение этого элемента, a Ssecret — секретную строку, используемую ддя генерации подписи. Эта функция возвращает строковое представление скрытых элементов формы — текущее значение и MDS-подпись. Атрибут NAME подписи МПЗ будет определен этой функцией как _checksum, где name — это имя текущей величины, которая будет передана в форму.
Код функции приведен в листинге 15.3.
Листинг 5.3. protect () — генератор цифровой подписи MD5 формы
define(1PROTECTED^KEY1, ‘mysecretword’); function my_addslashes(Sstring) (
return (get_magic_quotes_gpc() == 1) ? Sstring : addslashes(Sstring);
I
function protect(Sname, Svalue, Ssecret) ( Stag = “”;
Sseed = md5(Sname.Svalue.Ssecret); Shtml_name = Sname.”^checksum”;
Stag = “\n”; return Stag;
)
?>
НА ЗАМЕТКУ -
Забыли, что такое myaddslashes {) и urlencode () ? Назначение этих функций рассмотрено в предыдущих раэдепах этой главы (”Работа с “магическими” кавычками” и “Преобразование и кодирование данных”).
На практике функция protect () используется всегда, когда нужен скрытый элемент формы:



Введите сообщение (у вас есть максимум 5 минут):



После обработки в PHP-сценарии в клиентском браузере будет отображен следующий HTML-код:I Часть I


VALUE=”3b6f5fa33bb4fb99e68cfle3f5bi5478″> Введите сообщение (у вас есть максимум 5 минут):
Теперь, проверив, что скрытый элемент времени соответствует МП5-подписи, содержащейся в time_checksum (вместе с секретной строкой), можно быть уверенным в правильности данных.

Tags: , ,

Related posts


Leave a Reply