|
|
|
| Писала код с книги, поэтому всё вроде правильно. Нужно, что бы голосовать мог только один человек, ну или по крайней мере увеличить такую возможность при помощи куки.
Пишет значит такую ошибку.
Warning: Cannot modify header information - headers already sent by (output started at c:\www\scripts\dream\story\story_file\otziv.php:6) in c:\www\scripts\dream\story\story_file\otziv.php on line 57
А вот код. Ошибка в той строчке, где написано SetCookie
Без этой строчке всё работает, только голосования можно проводить каждому человеку по 1000000 раз. В общем мало приятного.
<?php
$namecook=$nom."haveest";
if ($$namecook=="")
{
SetCookie("$namecook","1",time()+2592000);
$dirct="../cnt";
$kolvooc="$nom"."kol";
$ocenka="$nom"."est";
if ((file_exists("$dirct/$kolvooc")!=True) || (file_exists("$dirct/$name2")!=True))
{
$hdl1 = fopen("$dirct/$kolvooc", "a+");
fwrite($hdl1,1);
fclose($hdl1);
$hdl2 = fopen("$dirct/$ocenka", "a+");
fwrite($hdl2,$ocen);
fclose($hdl2);
}
else
{
$hdl1 = fopen("$dirct/$kolvooc", "r+");
$kvo = fread($hdl1, filesize("../cnt/$kolvooc"));
$kvo++;
rewind($hdl1);
fwrite($hdl1,$kvo);
fclose($hdl1);
$hdl2 = fopen("$dirct/$ocenka", "r+");
$sred = fread($hdl2, filesize("../cnt/$ocenka"));
$sred=($sred*($kvo-1)+$ocen)/$kvo;
rewind($hdl2);
fwrite($hdl2,$sred);
fclose($hdl2);
}
echo ("<center><p>Благодарю вас за оценку!</p>");
}
else
{
echo("Вы уже голосаовали за эту статью!");
}
?>
|
| |
|
|
|
|
автор: cheops (из кафе) (03.06.2006 в 09:48) |
|
|
для: dream3000
(03.06.2006 в 09:23)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12 | |
|
|
|
|
|
|
|
для: cheops (из кафе)
(03.06.2006 в 09:48)
| | В принципе, я это знала, но в учебнике так было написано, вот я и подумала, написать, как есть.... Хм... а как тогда можно этот пример переделать?
Я попробовала сделать так:
<?php
$namecook=$nom."haveest";
if ($$namecook=="")
{
SetCookie("$namecook","1",time()+2592000);
?>
|
<html><head>
и т д
стили,
таблица,
<?php
$dirct="../cnt";
$kolvooc="$nom"."kol";
$ocenka="$nom"."est";
if ((file_exists("$dirct/$kolvooc")!=True) || (file_exists("$dirct/$name2")!=True))
{
$hdl1 = fopen("$dirct/$kolvooc", "a+");
fwrite($hdl1,1);
fclose($hdl1);
$hdl2 = fopen("$dirct/$ocenka", "a+");
fwrite($hdl2,$ocen);
fclose($hdl2);
}
else
{
$hdl1 = fopen("$dirct/$kolvooc", "r+");
$kvo = fread($hdl1, filesize("../cnt/$kolvooc"));
$kvo++;
rewind($hdl1);
fwrite($hdl1,$kvo);
fclose($hdl1);
$hdl2 = fopen("$dirct/$ocenka", "r+");
$sred = fread($hdl2, filesize("../cnt/$ocenka"));
$sred=($sred*($kvo-1)+$ocen)/$kvo;
rewind($hdl2);
fwrite($hdl2,$sred);
fclose($hdl2);
}
echo ("<center><p>Благодарю вас за оценку!</p>");
}
else
{
echo("Вы уже голосаовали за эту статью!");
}
?>
<?php echo ("<p><a href=$nazad>Назад</a></p></center>"); ?>
|
Всё равно пишет:
Warning: Cannot modify header information - headers already sent by (output started at c:\www\scripts\dream\story\story_file\otziv.php:2) in c:\www\scripts\dream\story\story_file\otziv.php on line 6 | |
|
|
|
|
|
|
|
для: dream3000
(03.06.2006 в 10:20)
| | А ты попробуй убрать пустые строчки до начала кода и смени редактор еслт пользуешся блокнотом.
Он там ставит какойто ASCII символ в начале текста не как не ставив тебя об этом в извесность. | |
|
|
|
|
|
|
|
для: dream3000
(03.06.2006 в 10:20)
| | Что находится во второй строке файла otziv.php? | |
|
|
|
|
|
|
|
для: cheops
(03.06.2006 в 14:27)
| | Я в Dreamweaver пишу
Во второй строке
$namecook=$nom."haveest"; | |
|
|
|
|
|
|
|
для: dream3000
(03.06.2006 в 19:08)
| | Не могли бы вы прикрепить файл otziv.php к сообщению как файл - может нам удасться что-нибудь свежим взлядом обнаружить - невидимые символы или ещё что-то мещающее... | |
|
|
|
|
|
|
|
для: cheops
(03.06.2006 в 22:47)
| | Извините, случайно топиком ошибся. | |
|
|
|
|
|
|
|
для: valenok
(03.06.2006 в 23:16)
| | ОК, вот | |
|
|
|
|
|
|
|
для: dream3000
(04.06.2006 в 09:42)
| | А почему в первом посте ошибка в 57 строке, а несколькими постами выше в 6? Вы ничего в скриптах не меняли? Прикреплённый скрипт в какой строке ошибку выдаёт... Дело в том, что у него функция setcookie() распоожена в 5 строке, и, если ошибка присутствует, она должны бы возникать в 5 строке? | |
|
|
|
|
|
|
|
для: cheops
(04.06.2006 в 11:19)
| | Всё заработало! :) Спасибо :) | |
|
|
|