Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не получается с куками

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: почему-то они не создаются
Sara
Отправлено: 16 Февраля, 2012 - 09:10:28
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Здравствуйте .
я - только-только начинающая, не судите строго.
работаю в денвере.
ребята, помогите найти ошибку в 19-ой строке.
идея в том, что я создаю счётчик посещений (цифры будут картинками)):
Цитата:
<?

$file_name="counter.txt";
//cуществует ли файл, в котором хранится занчение счётчика?
if(!file_exists($file_name)) {
$fp=fopen($file_name, "w");
fwrite($fp, "0");
fclose($fp);
}

//cчитываем значение счётчика:
$fp=fopen($file_name, "r");
$counter=fread($fp, 10);
fclose($fp);

//опрашиваем значение cookie:
$visitor=$_COOKIE["visitor"];
if(!isset($visitor)) {
setcookie("visitor", "yes");
$counter++;
$fp=fopen($file_name, "w");
fwrite($fp, $counter);
fclose($fp);
}

//преобразуем счётчик в граф.изобр.:
$number=strlen($counter);
$counter_graphic="";
for($pos=0; $pos<$number; $pos++)
{
$digit=substr($counter, $pos, 1);
$counter_graphic .= "<img src=\"$digit.png\" >";
}
echo "счётчик посещений: ", $counter;
?>


броузер упорно выдаёт ошибку для строки 19 :
setcookie("visitor", "yes"); - (она на 19-ой строке)
следующего содержания:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\denwer_f.ru\www\cookie.php:1) in Z:\home\denwer_f.ru\www\cookie.php on line 19
похоже, что эти куки почему-то просто не создаюся. Почему?
я всё сделала по учебнику один в один.
По идее, счётчик с куками уже не должен увеличивать своё значение (если я сама каждый раз открываю страницу), но он продолжает увеличивать, как будто и нет никаких куков.
Может, это потому, что всё в денвере, может, никаких куки денвер и не создаёт? А только настоящий сервер?
эту строчку в самом конце: echo "счётчик посещений: ", $counter; я подставила, т.к. у вас нет моих картинок для цифр, и цифры будут выводиться по-простому.

))помогите, кто может.
спасибо.
 
 Top
sKaa
Отправлено: 16 Февраля, 2012 - 09:17:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Дело в том, что setcookie необходимо выполнять до того как на странице будет выведена хотябы один символ.
У вас уже где-то выводятся символы (а следовательно сервер отправляет заголовки), поэтому setcookie не срабатывает.
Там кстати есть ещё такой аргумент функции как время на которое нужно установить куки.
PHP:
скопировать код в буфер обмена
  1. setcookie('visitor', 'yes', time() + 60 * 60 * 24 ) // 24 hours
 
 Top
Мелкий Супермодератор
Отправлено: 16 Февраля, 2012 - 09:29:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)






-----
PostgreSQL DBA
 
 Top
Sara
Отправлено: 16 Февраля, 2012 - 09:48:49
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Мелкий пишет:
пресловутый BOM
http://forum.php.su/topic.php?fo...1&topic=3026

я уже все файлы PHP перевела на (без BOM); ничего меняется
(Добавление)
sKaa пишет:
Дело в том, что setcookie необходимо выполнять до того как на странице будет выведена хотябы один символ.

а что я должна сделать, чтобы куки был выведен прежде любых символов?

sKaa пишет:

У вас уже где-то выводятся символы (а следовательно сервер отправляет заголовки), поэтому setcookie не срабатывает.

я создала отдельный файл PHP, в котором сохранила 2 скрипта(вывод даты и счётчик с этими куками) и в мета-теге Html пришиваю этот скрипт PHP. А переменные уже расставляю в нужное место в файле Html .
где я делаю ошибку? Как мне отследить, что сервер отсылает первым и как решить эту проблему?

посоветуйте ещё что-нибудь к моей проблеме.
только , прошу, популярным языком, без заумных терминов ..я пока плоховато в этом разбираюсь.

спасибо огромное всем за ответы.

(Отредактировано автором: 16 Февраля, 2012 - 10:04:40)

 
 Top
kappa
Отправлено: 16 Февраля, 2012 - 10:00:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




Вот как то так:

PHP:
скопировать код в буфер обмена
  1. if(isset($_COOKIE['count'])) {
  2.    
  3.     $value = $_COOKIE['count'];
  4.    
  5.     $value++;
  6.    
  7.     setcookie("count", $value, time()+3600*24);// 24 hour
  8.  
  9.     file_put_contents("counter.txt",$value);
  10.    
  11.     $count = file_get_contents("counter.txt");
  12.    
  13.    
  14.     echo "Вы посетили эту страницу $count раз" ;
  15.    
  16. }  else {
  17.  
  18. setcookie("count", "1", time()+3600*24);// 24 hour
  19.  
  20. }

(Отредактировано автором: 16 Февраля, 2012 - 10:01:11)

 
 Top
Zuldek
Отправлено: 16 Февраля, 2012 - 10:35:12
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Цитата:
и в мета-теге Html пришиваю этот скрипт PHP

До setcookie в браузер пользователя вы не должны отправлять ничего!
Ни, <html>, ни мета-теги, не сценарных ошибок выводить ошибок.
Сценарий должен начинаться:
setcookie(...)
любой вывод в браузеров htmlя, ошибок, заголовков должен быть ниже.
 
 Top
sKaa
Отправлено: 16 Февраля, 2012 - 10:42:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


PHP:
скопировать код в буфер обмена
  1.  
  2. $filename = 'counter.txt';
  3. $count = (isset($_COOKIE['count'])) ? $_COOKIE['count'] : 0;
  4.  
  5. if(!headers_sent($file, $line)){
  6.         if($count == 0)
  7.                 $count = (is_int(file_get_contents($filename))) ? file_get_contents($filename) : 0;
  8.         $count++;
  9.         setcookie('count', $count, 3600 * 24);
  10.         file_put_contents($filename, $count);
  11. }else{
  12.         echo 'Ошибка : Заголовки были отправлены в файле '. $file .', строка : '. $line ;      
  13. }
  14. echo 'Вы посетили эту страницу '. $count .' раз';
  15.  
 
 Top
Sara
Отправлено: 16 Февраля, 2012 - 11:01:10
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




ой
всё получилось.
правда, я так и не поняла , что сделала.

спасибо огромное всем за ответы и советы.
много полезного узнала.
 
 Top
Sara
Отправлено: 17 Февраля, 2012 - 12:24:57
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Здравствуйте снова.

Ребята, помогите определить проблему. В следующем коде:
Цитата:
//фрагмент кода с отправкой письма:
if (empty($error))
$nl=chr(13).chr(10);
$site=$_SERVER["SERVER_NAME"];
$where="fativ@yandex.ru";
$theme="Сообщение с контактной формы";
$from="От: <sender@$site>";
$date="Дата: ".date("j.n.Y").$nl;
$time="Время: ".date("H:i").$nl;
$author="Автор: $name3." <".$address3.">".$nl;
$line= "------------------------".$nl;
$text=$date.$time.$author.$line.$message;
$text=convert_cyr_string($text, "w", "k");
mail($where, $theme, $text, "From: $from");
?>

пишет предупреждение (по поводу строки в краном):
Parse error: syntax error, unexpected '>' in Z:\home\denwer_f.ru\www\index_my.php on line 529
а что ему не нравится, если я всё это списала с учебника один в один?
там, вроде , проблема с ">" ? я , често сказать, не понимаю, для чего здесь эти символы, просто списала с учебника, как есть. Знаний моих ещё не достаточно.

подскажите, пожалуйста.
спасибо.
 
 Top
illy
Отправлено: 17 Февраля, 2012 - 12:27:17
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




PHP:
скопировать код в буфер обмена
  1. $author="Автор: $name3 <$address3>$nl";

либо
PHP:
скопировать код в буфер обмена
  1. $author="Автор: ".$name3." <".$address3.">".$nl;

(Отредактировано автором: 17 Февраля, 2012 - 12:28:56)



-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
sKaa
Отправлено: 17 Февраля, 2012 - 12:35:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Sara зачем вам вообще это надо если не секрет?)
 
 Top
Sara
Отправлено: 17 Февраля, 2012 - 12:36:33
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




illy, спасибо большое, всё в порядке , вроде.
и ещё учебник, называется.

(Добавление)
sKaa пишет:
Sara зачем вам вообще это надо если не секрет?)

sKaa, я начала изучать PHP по учебнику.
попробовала сначала на курсах, но туда уже приходят матёрые ребята, видно, что не первый видят PHP . ..вот я теперь решила тоже поучиться самой , а потом уже с теми ребятами продолжать.

(Отредактировано автором: 17 Февраля, 2012 - 12:42:33)

 
 Top
sKaa
Отправлено: 17 Февраля, 2012 - 12:44:57
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


Помог: 25 раз(а)

[+]


Sara, очень любопытно посмотреть на матерых ребят посещающих курсы пхп )) как говорится : "Лучше один раз увидеть, чем сто раз услышать", а я и слышу впервые и не видел ни разу Недовольство, огорчение...
Но это всё не дает ответа на вопрос :
sKaa пишет:
Sara зачем вам вообще это надо

Вообще всё это пхп зачем??? Вы веб мастером хотите стать?
 
 Top
illy
Отправлено: 17 Февраля, 2012 - 12:45:55
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




Sara хотите работать веб-программистом? Хорошо


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
Sara
Отправлено: 17 Февраля, 2012 - 13:12:52
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




illy пишет:
Sara хотите работать веб-программистом?

illy,)), конечно, хочу

(Отредактировано автором: 17 Февраля, 2012 - 13:13:35)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB