Как сделать многостраничную html форму - Как сделать многостраничную html форму стр.2
| Индекс материала |
|---|
| Как сделать многостраничную html форму |
| Как сделать многостраничную html форму стр.2 |
| Как сделать многостраничную html форму стр.3 |
| Все страницы |
Основной способ применения скрытых полей состоит в том, чтобы включить их внутрь html формы.
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
<input type="hidden" name="username" value="<?php echo htmlentities($_GET['username'])?>" />
После того как эта html форма будет отправлена повторно, элемент $_GET['username'] будет содержать предыдущее значение, если только кто нибудь не поменяет его. Есть и более сложное, но безопасное решение – преобразовать переменные в строку с помощью PHP функции serialize(), вычислить секретный хеш из данных применив PHP функцию md5() и поместить обе части информации в форму. Затем в следующем запросе проверьте достоверность данных и выполните обратное преобразование.
Если данные не пройдут проверки на достоверность, вы будете знать, что кто то пытался модифицировать информацию. Кодирующая функция pc_encode(), показанная в примере ниже принимает данные для декодирования в виде массива.
Пример pc_encode():
$secret = 'Foo25bAr52baZ';
function pc_encode($data)
{
$data = serialize($data);
$hash = md5($GLOBALS['secret'] . $data);
return array($data, $hash);
}
В функции pc_encode() данные преобразуются в строку, вычисляется контрольный хеш и эти переменные возвращаются. Функция pc_decode(), показанная в примере ниже делает работу обратную той, которую выполнил ее двойник.
Пример pc_decode():
function pc_decode($data, $hash)
{
if (!empty($data) && !empty($hash))
{
if (md5($GLOBALS['secret'] . $data) == $hash)
{
return unserialize($data);
}
else
{
error_log("Validation Error: Data has been modified");
return false;
}
}
return false;
}
Функция pc_decode() вновь создает хеш секретного слова с данными и сравнивает его со значением хеша из формы. Если они равны, то переменная $data считается достоверной и поэтому над ней выполняется обратное преобразование. Если проверка заканчивается неудачей, то функция записывает сообщение в журнал ошибок и возвращает false.
Информация копипастерам
Внимание! Копирование контента с сайта, возможно только с разрешения администратора. Т.е. Меня! Я скорее всего разрешу Вам это сделать, в обмен на живую ссылку, на статью оригинал.
Как сделать многостраничную html форму - Как сделать многостраничную html форму стр.2
