|
|
|
| Проблема такова. Бьюсь-бьюсь над ней уже сколько дней, но пока усилия тщетны. Зато есть большой плюс – пока читала соответствующую лит-ру, поднатаскалась, но вот проблему так и не решила. Я вообще начинающий 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)
| | ОК, я посмотрю, только вот раз так, почему тогда у меня всё прекрасно работало, когда я эти отзывы не вставила в эту статью 2006.php??? Всё прекрасно добавлялось! и ничего не глючило. | |
|
|
|
|
|
|
|
для: dream3000
(08.05.2006 в 23:28)
| | Скорее всего, до строки с заголовком не происходил вывод какой-либо информации в браузер. | |
|
|
|
|
|
|
|
для: Саня
(08.05.2006 в 23:36)
| | А вообще я уже на этих ссылках была оказывается. Ну да, там написано, что заголовок должен перед всеми выводами находится, но тогда я не знаю, что в этой ситуации можно сделать, ведь мне нужно, чтобы он как-то перенаправлял меня на ту страницу, откуда были посланы данные :( Можно как-нибудь перенаправлять без этих заголовков тогда? Ну или как из этой ситуации в этом случае можно выйти? Что-то не понимаю совсем :(
Сейчас выложу файл | |
|
|
|
|
|
|
|
для: dream3000
(08.05.2006 в 23:43)
| | Создайте в папке со скриптами файл .htaccess (с точкой в начале имени) и напишите в нём:
php_value output_buffering On
|
Это включит буфферизацию вывода, и заголовки можно отсылать в любом месте скрипта. | |
|
|
|
|
|
|
|
для: Саня
(08.05.2006 в 23:50)
| | Он не хочет писать точку вначале. Пишет, что я должна ввести имя. Надо какую-то настройку наверное сделать в винде? Подскажите какую? | |
|
|
|
|
|
|
|
для: dream3000
(09.05.2006 в 11:27)
| | А вы при помощи какого менеджера файл создаёте - нет возможности воспользоваться альтернативным? | |
|
|
|
|
|
|
|
для: dream3000
(09.05.2006 в 11:27)
| | А вы в блокноте создайте новый документ и при сохранении выберите тип файла "Все файлы".
См. скриншот ----> | |
|
|
|
|
|
|
|
для: Саня
(09.05.2006 в 13:06)
| | Да, получилось, точку поставила, в фале написала, как вы сказали и всё равно выдают ту же самую ошибку про заголовок.
И всё равно не могу я взять в толк… НУ ПОЧЕМУ ОН РАБОТАЛ У МЕНЯ? Стоило только адрес поменять на 2006.php в файле sps_config.inc.php и выдается ошибка :( Раньше-то он после выводов тоже стоял, но работало ведь. Может вам ссылку на эту гостевую дать? ftp://softlinks.ru/s202510/sps.zip Стоит вставить это в какой-нибудь файл с помощью include и изменять адрес ничего не пашет. | |
|
|
|
|
|
|
|
для: dream3000
(09.05.2006 в 15:48)
| | А вы куда этот файл положили?
Его надо бросить в папку, где находится скрипт 2006.php. Или в корень сайта. | |
|
|
|
|
|
|
|
для: Саня
(09.05.2006 в 17:19)
| | всё лежит в однй папке, кроме коментов. Коменты в папке post | |
|
|
|
|
|
|
|
для: dream3000
(09.05.2006 в 18:09)
| | Странно. Возможно хостер запретил использоывать директиву php_value. Ну ладно.
Вот стопроцентный способ. В самое начало скрипта 2006.php вставьте строки:
<?php
# перед <?php не должно быть вообще ничего
# даже пустых строк
ob_start();
?>
|
А в самый конец:
<?php
$buff = ob_get_clean();
print $buff;
?>
|
| |
|
|
|
|
|
|
|
для: Саня
(09.05.2006 в 19:18)
| | Всё остальное на месте оставить? Ничего не изменяя, просто вначало и в конец этот код?
Так же самая ошибка ( | |
|
|
|