|
|
|
| Добрый день.
Вопрос такой: пытаюсь реализовать защиту от заполнения формы с др. сайта по книге "PHP 5 на примерах". У меня выходит след. ситуация:
сама форма подключается с помощью file_get_contents('forma.tpl');
В этой форме, в самом начале я прописываю
<?рпр
// Инициируем сессию
session_start();
?>
<form action="plot_submit.php" ....>
...
<input type="submit" name="send" value="Отправить">
<input type=hidden name=session_id value=<?php echo session_id();?>>
|
В обработчике формы также ставлю session_start(); в самом начале
<?php
session_start();
if($_POST['session_id'] != session_id())
{
exit("Попытка передачи данных с другого хоста. Скрипт остановлен.");
}
|
Результатом работы обработчика всегда является "Попытка передачи данных с другого хоста. Скрипт остановлен."
Просматривая заголовки, вижу , что значение session_id() пустое.
что то типа этого
Content-Length: 61
name=anj&pass=05&send=%CE%F2%EF%F0%E0%E2%E8%F2%FC&session_id=
|
Подскажите в чем ошибка, почему значение session_id() пустое? | |
|
|
|
|
|
|
|
для: Pusep
(03.01.2011 в 09:12)
| | 1.диагностика ошибок включена?
2.HTML-код страницы с формой (со стороны браузера) как выглядит?
ps. когда ж это кончится-то... | |
|
|
|
|
|
|
|
для: Trianon
(03.01.2011 в 09:20)
| | ...получается вывод сначала основного шаблона сайта, а в нем уже форма
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w1.org/1999/xhtml" lang="ru" xml:lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<title>Шаблон верстки страницы из 3 колонок</title>
<link rel="stylesheet" href="style-site.css" type="text/css" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
....
<div id="content">....</div>
<?рпр
// Инициируем сессию
session_start();
?>
..
<input type="submit" name="send" value="Отправить"><input type=hidden name=session_id value=<?php echo session_id();?>>
...
|
Можно ли прописать один раз session_start(); в основном шаблоне сайта?? он будет работать для всех подключаемых форм?? | |
|
|
|
|
|
|
|
для: Pusep
(03.01.2011 в 12:06)
| | php не имеет дела ни с шаблонами, ни с формами.
php исполняет php-код, и выдает http-отклик.
session_start() достаточен один раз на http-запрос. | |
|
|
|