[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Перепосылка данных GET'ом
ikebastuz
Здравствуйте.
Написал (передрал) простейшую гостевую книгу.
В ней вставил вот это

header("Location: $_SERVER[REQUEST_URI]");
exit;

Чтобы данные перепосылались и при обновлении страницы запись не дублировалась (так учат на курсе специалист).

Сама по себе отдельным файлом гостевая работает. Но включая ей в сайт пишет
Warning: Cannot modify header information - headers already sent by (output started at D:\PHP\ikebastuz_site\index.php:18) in D:\PHP\ikebastuz_site\gb.php on line 9
Вот код гостевухи. Он include'ом вставляется в index.php


<?php
define("USERS_LOG","users.log");
if($_SERVER["REQUEST_METHOD"] == "POST"){
$fname = trim(strip_tags($_POST['fname']));
$email = trim(strip_tags($_POST['email']));
$comm = trim(strip_tags($_POST['comm']));
$user = "$fname($email): $comm\n";
file_put_contents(USERS_LOG, $user, FILE_APPEND);
header("Location: $_SERVER[REQUEST_URI]");
exit;
}

?>
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<title>
ТЕСТ</title>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<br />
<form
action="<?php echo $_SERVER[REQUEST_URI]; ?>" method="POST">
<h1>
Заполните форму</h1>
<p>
Имя: <input type="text" name="fname" /></p>
<p>
E-mail: <input type="text" name="email" /></p>
<p>
Комментарий: <input type="text" name="comm" /></p>

<br />

<input
type="submit" value="Отправить!" />
</form>
<?php

if(file_exists(USERS_LOG)){
$users = file(USERS_LOG);
if(is_array($users)){
$users = array_reverse($users);
echo '<ol>';
foreach($users as $value){
echo '<li><p class=color1>'.$value.'</p></li>';
}
echo '</ol>';
}
}

?>
</body>
</html>




18-я строка index.php:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Вот. у меня в связи с этим ступор. подскажите как это подправить. спасибо.




Спустя 23 минуты (13.08.2012 - 07:16) killer8080 написал(а):
Заголовки нельзя отправлять, после того как начался вывод контента.

Спустя 8 минут, 14 секунд (13.08.2012 - 07:24) ikebastuz написал(а):
И никак не сделать это по другому?

Спустя 5 минут, 28 секунд (13.08.2012 - 07:29) killer8080 написал(а):
ikebastuz
а тебя не смущает, что твой код выдает готовый html код, вместе с тегами html, head, body и т.д. и тупо вставляется в другую страницу? Что по твоему браузер должен с ним делать? Нужно выдавать валидный html код.

UPD
А заголовки нельзя посылать после начала вывода контента, если только не включена буферизация. В твоем случае нужно пересматривать всю логику приложения.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.