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

Форум PHP

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

 

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

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

тема: По учебникам М.Кузнецова и И.Симдянова не могу установить кукки и сессии
 
 автор: Romantic   (07.02.2015 в 23:19)   письмо автору
9 Кб
 
 

Суть в том, что мне нужно установить сессию и передать переменную на другую страницу.

  Ответить  
 
 автор: Mookapek   (07.02.2015 в 23:28)   письмо автору
 
   для: Romantic   (07.02.2015 в 23:19)
 

Приведите код.
Суть в том, что перед вызовом session_start произошел вывод в браузер. В этом и ошибка.
Нет ли у вас в скрипте перед <?php пустой строки или пробела?

  Ответить  
 
 автор: Romantic   (07.02.2015 в 23:43)   письмо автору
 
   для: Mookapek   (07.02.2015 в 23:28)
 

Пожалуйста, вот сам код по учебнику, впереди нет ни одной пустой строики и пробела

<?php
session_start();
$_SESSION['a'] = "value";
$arr = array("one", "two", "three");
$_SESSION['arr'] = $arr;
echo "<a href=http://m/test/other.php>другая страница</а>"
?>

  Ответить  
 
 автор: Romantic   (07.02.2015 в 23:58)   письмо автору
 
   для: Mookapek   (07.02.2015 в 23:28)
 

Кстати, случайное наблюдение: я ставлю кодировку в NotePad++ UTF-8 и это сообщение Warning есть, но когда я ставлю кодировку UTF-8(без BOM) и обновляю страницу, то Warning пропадает, и скрит работает, но весть русский текст превращается в иероглифы((( Р’С‹ посетили эту страницу 29 раз

  Ответить  
 
 автор: Romantic   (08.02.2015 в 00:33)   письмо автору
 
   для: Mookapek   (07.02.2015 в 23:28)
 

Кстати, нашёл ответ! Всё дело действительно было в кодировке (UTF-8), а в NotePad++ нужно выбирать UTF-8(без BOM) - тогда сесии и куки начнут работать, а иероглифы превратить обратно в русский язык можно с помощью header("Content-Type: text/html;charset=UTF-8"); Возможно кому-то пригодится!

<?php
$_COOKIE['a']++;
setcookie("a", $_COOKIE['a']);
header("Content-Type: text/html;charset=UTF-8");
echo ("Вы посетили эту страницу $_COOKIE[a] раз");
?>

  Ответить  
 
 автор: coller13   (11.02.2015 в 14:24)   письмо автору
 
   для: Romantic   (08.02.2015 в 00:33)
 

Чтобы понять эту проблему погуглите на тему BOM (Маркер последовательности байтов). Если вы откроете пустой документ в UTF-8 стандартным Блокнотом, то можете увидеть в начале файла 3 непонятных символа. Это и есть BOM, который перед session_start() отправляется на вывод в браузер. Это и порождает ошибку.

  Ответить  
 
 автор: artem01   (11.02.2015 в 17:03)   письмо автору
 
   для: Mookapek   (07.02.2015 в 23:28)
 

>Приведите код.
>Суть в том, что перед вызовом session_start произошел вывод в браузер. В этом и ошибка.
>Нет ли у вас в скрипте перед <?php пустой строки или пробела?


<?php
ob_start
(); // не выводит в браузер а помещает в буфер   

// ваш код 

ob_end_flush();   // вы водит в браузер   // таким образом обошли ограничения php с заголовками 

?>


  Ответить  
 
 автор: Sfinks   (11.02.2015 в 19:32)   письмо автору
 
   для: artem01   (11.02.2015 в 17:03)
 

Не по теме.

  Ответить  
Rambler's Top100
вверх

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