Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с заголовком - возрат на ту же страничку
 
 автор: dream3000   (08.05.2006 в 23:01)   письмо автору
 
 

Проблема такова. Бьюсь-бьюсь над ней уже сколько дней, но пока усилия тщетны. Зато есть большой плюс – пока читала соответствующую лит-ру, поднатаскалась, но вот проблему так и не решила. Я вообще начинающий php-ишник, поэтому прошу не называть меня ламером. Все когда-то с чего-то начинали, в конце концов.
Ну, в общем, сама суть проблемы:
У меня есть файл со статьёй. Называется он 2006.php
Я скачала что-то типо гостевой книги на одном сайте, дабы на его примере уже накодить свою, точнее сделать на её основе линейку отзывов об этой статье (естессно уже со всей безопасностью). Файл с кодом отзывов называется sps.php, а файл, где содержится инфа о большинстве переменных (в основном для изменения текста) в файле sps_config.inc.php

В свою статью 2006.php вниз странички я добавила строку:
<?php include("sps.php"); ?>

Значит врубаю эту статью. Всё замечательно, пишу данные: ник, мыло, текст отзыва, нажимаю отправить. Да, всё отправилось, всё добавилось, только страничка вышла без статьи, а чисто отзывы. То есть сам sps.php

В самом sps.php в коде прописано следующее (всё писать не буду, только основное, с чем у меня проблемы):

Вначале я подключаю файл с переменными:

require "sps_config.inc.php";

Далее проверка: если данные были отправлены (т.е. если переменная op=add) то =>

Всякие проверки
И под конец:
header("location: $PHP_SELF");

иначе:
вывод по 10 сообщений..
Ну а в конце естессно форма для отправки:

echo "<form action=$PHP_SELF?op=add method=post>\n";
=======
======
======
всё писать не буду, это не име6ет отношения к делу. Переменная op определяется, были ли данные отправлены.

В файле же sps_config.inc.php в начале идёт следующее:

$PHP_SELF = "sps.php";

Да, вроде всё понятно, что нужно сделать, вместо $PHP_SELF вписать название статьи, то есть 2006.php а он вместо того, чтобы вывести сообщения пишет следующее:

Warning: Cannot modify header information - headers already sent by (output started at c:\www\scripts\20060421.php:8) in c:\www\scripts\sps.php on line 110

Линия 110 – это как раз тот заголовок: header("location: $PHP_SELF");

Как я только не пробовала, какие интерпретации не писала, и в форму писать 2006.php, а в заголовке оставлять sps.php… короче по-разному…. всё равно выводит одно и тоже. Замучалась уже :( Хотя я хотела, если честно, самой допереть, но не получилось и дабы сберечь свои нервы обращаюсь к вам.

   
 
 автор: Саня   (08.05.2006 в 23:15)   письмо автору
 
   для: dream3000   (08.05.2006 в 23:01)
 

Заголовки нужно посылать до вывода информации в браузер. Тема с заголовками неоднократно поднималась.
http://softtime.ru/forum/srchform.php?id_forum=1&name=modify+headers&numberthemes=30&srchwhere=2&id_forum=1&logic=1&send=%CD%E0%E9%F2%E8
http://softtime.ru/forum/read.php?id_forum=1&id_theme=16726
http://softtime.ru/forum/read.php?id_forum=1&id_theme=16234

   
 
 автор: dream3000   (08.05.2006 в 23:28)   письмо автору
 
   для: Саня   (08.05.2006 в 23:15)
 

ОК, я посмотрю, только вот раз так, почему тогда у меня всё прекрасно работало, когда я эти отзывы не вставила в эту статью 2006.php??? Всё прекрасно добавлялось! и ничего не глючило.

   
 
 автор: Саня   (08.05.2006 в 23:36)   письмо автору
 
   для: dream3000   (08.05.2006 в 23:28)
 

Скорее всего, до строки с заголовком не происходил вывод какой-либо информации в браузер.

   
 
 автор: dream3000   (08.05.2006 в 23:43)   письмо автору
 
   для: Саня   (08.05.2006 в 23:36)
 

А вообще я уже на этих ссылках была оказывается. Ну да, там написано, что заголовок должен перед всеми выводами находится, но тогда я не знаю, что в этой ситуации можно сделать, ведь мне нужно, чтобы он как-то перенаправлял меня на ту страницу, откуда были посланы данные :( Можно как-нибудь перенаправлять без этих заголовков тогда? Ну или как из этой ситуации в этом случае можно выйти? Что-то не понимаю совсем :(
Сейчас выложу файл

   
 
 автор: Саня   (08.05.2006 в 23:50)   письмо автору
 
   для: dream3000   (08.05.2006 в 23:43)
 

Создайте в папке со скриптами файл .htaccess (с точкой в начале имени) и напишите в нём:
php_value output_buffering On

Это включит буфферизацию вывода, и заголовки можно отсылать в любом месте скрипта.

   
 
 автор: dream3000   (09.05.2006 в 11:27)   письмо автору
 
   для: Саня   (08.05.2006 в 23:50)
 

Он не хочет писать точку вначале. Пишет, что я должна ввести имя. Надо какую-то настройку наверное сделать в винде? Подскажите какую?

   
 
 автор: cheops   (09.05.2006 в 11:32)   письмо автору
 
   для: dream3000   (09.05.2006 в 11:27)
 

А вы при помощи какого менеджера файл создаёте - нет возможности воспользоваться альтернативным?

   
 
 автор: Саня   (09.05.2006 в 13:06)   письмо автору
 
   для: dream3000   (09.05.2006 в 11:27)
 

А вы в блокноте создайте новый документ и при сохранении выберите тип файла "Все файлы".
См. скриншот ---->

   
 
 автор: dream3000   (09.05.2006 в 15:48)   письмо автору
 
   для: Саня   (09.05.2006 в 13:06)
 

Да, получилось, точку поставила, в фале написала, как вы сказали и всё равно выдают ту же самую ошибку про заголовок.
И всё равно не могу я взять в толк… НУ ПОЧЕМУ ОН РАБОТАЛ У МЕНЯ? Стоило только адрес поменять на 2006.php в файле sps_config.inc.php и выдается ошибка :( Раньше-то он после выводов тоже стоял, но работало ведь. Может вам ссылку на эту гостевую дать? ftp://softlinks.ru/s202510/sps.zip Стоит вставить это в какой-нибудь файл с помощью include и изменять адрес ничего не пашет.

   
 
 автор: Саня   (09.05.2006 в 17:19)   письмо автору
 
   для: dream3000   (09.05.2006 в 15:48)
 

А вы куда этот файл положили?
Его надо бросить в папку, где находится скрипт 2006.php. Или в корень сайта.

   
 
 автор: dream3000   (09.05.2006 в 18:09)   письмо автору
 
   для: Саня   (09.05.2006 в 17:19)
 

всё лежит в однй папке, кроме коментов. Коменты в папке post

   
 
 автор: Саня   (09.05.2006 в 19:18)   письмо автору
 
   для: dream3000   (09.05.2006 в 18:09)
 

Странно. Возможно хостер запретил использоывать директиву php_value. Ну ладно.
Вот стопроцентный способ. В самое начало скрипта 2006.php вставьте строки:
<?php
# перед <?php не должно быть вообще ничего
# даже пустых строк
ob_start();
?>

А в самый конец:
<?php
$buff 
ob_get_clean();
print 
$buff;
?>

   
 
 автор: dream3000   (09.05.2006 в 21:33)   письмо автору
 
   для: Саня   (09.05.2006 в 19:18)
 

Всё остальное на месте оставить? Ничего не изменяя, просто вначало и в конец этот код?
Так же самая ошибка (

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования