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

Форум PHP

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

 

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

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

тема: Пример простой сессии. Не передается значение переменной.
 
 автор: Kirill-rat   (14.07.2007 в 16:15)   письмо автору
 
 

Уважаемые профессионалы! помогите пожалуйста разобраться в чем ошибка!
Не передается значение переменной в сессии (делаю буквально как в учебнике).
Страница 1:
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251">
<title>page1.php</title>
</head>

<body>
<?
@session_start();
$_SESSION['username']="maksim";
echo 'Привет,'.$_SESSION['username']."<br>";
echo "<a href='page2.php'>На следующую страницу</a>";
?>
</body>
</html>

Страница 2:

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251">
<title>page2.php</title>
</head>
<body>
<br>
<?
@session_start();
echo @$_SESSION['username'].' ты перешел на другую страницу сайта!';
echo ("<br>");
?>
<a href="page3.php">На следующую</a>
</body>
</html>

и наконец последняя:

<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251">
<title>page3.php</title>
</head>
<body>
<?
@session_start();
unset($_SESSION['username']);
echo "Привет,".@$_SESSION['username'];
session_destroy();
?>

</body>
</html>

Заранее благодарен всем.

   
 
 автор: Unkind   (14.07.2007 в 16:19)   письмо автору
 
   для: Kirill-rat   (14.07.2007 в 16:15)
 

Вы специально at перед session_start() поставили?

   
 
 автор: Kirill-rat   (14.07.2007 в 16:26)   письмо автору
 
   для: Unkind   (14.07.2007 в 16:19)
 

да, специально,поскольку инчаче выводилось следующее предупреждение :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\www\page2.php:9) in C:\www\page2.php on line 10

   
 
 автор: sms-send   (14.07.2007 в 16:34)   письмо автору
 
   для: Kirill-rat   (14.07.2007 в 16:26)
 

Функцию session_start нужно вызывать перед любым выводом в браузер. Иначе cookie не отсылаются, в этом вся проблема. И вопрос нужно было задавать именно по этому поводу.

Т.е. в вашем случае это будет выглядеть так:

<?php
session_start
();
?><html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251">
<title>page1.php</title>
</head>

<body>
<?
$_SESSION
['username']="maksim";
echo 
'Привет,'.$_SESSION['username']."<br>";
echo 
"<a href='page2.php'>На следующую страницу</a>";
?>
</body>
</html>

   
 
 автор: Kirill-rat   (14.07.2007 в 16:44)   письмо автору
 
   для: sms-send   (14.07.2007 в 16:34)
 

Спасибо огромное! Все работает!
Следовательно, это означает, что ошибка в самом учебнике, либо описание очень сжатое и новичкам трудно отследить подобные нюансы?

   
 
 автор: sms-send   (14.07.2007 в 16:48)   письмо автору
 
   для: Kirill-rat   (14.07.2007 в 16:44)
 

А в учебнике перед символами "<?" что то есть? И что за учебник?

   
 
 автор: Kirill-rat   (14.07.2007 в 16:56)   письмо автору
 
   для: sms-send   (14.07.2007 в 16:48)
 

Учебник, который лежит здесь же:

P.S. Другие пока отложил на время.

http://www.softtime.ru/bookphp/gl8_1.php

   
 
 автор: sms-send   (14.07.2007 в 17:24)   письмо автору
 
   для: Kirill-rat   (14.07.2007 в 16:56)
 

В учебнике перед session_start нет никакого вывода, а у вас есть.

<?
  session_start
();
  
$_SESSION['username'] = "maksim";
  echo 
'Привет, '.$_SESSION['username']."<br>";
?>
  <a href="page2.php">На следующую страницу </a>


Единственную ошибку, которую там заметил (опечатка скорее):

$result = session_is_registerd("username");

   
 
 автор: Unkind   (14.07.2007 в 18:11)   письмо автору
 
   для: Kirill-rat   (14.07.2007 в 16:26)
 

да, специально,поскольку инчаче выводилось следующее предупреждение :
Если выводится предупреждение, то следует узнать причину его возникновения и устранять ошибку, а не подавлять.

делаю буквально как в учебнике
Если бы сделали буквально, как в учебнике, то заметили, что ошибки такой нет.

   
Rambler's Top100
вверх

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