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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: не сохраняются переменные сессии???

Сообщения:  [1-10]   [11-18] 

 
 автор: Trianon   (24.06.2007 в 23:31)   письмо автору
 
   для: Alex Boxgorn   (24.06.2007 в 21:30)
 

Переименовывать каталоги денвера действительно весьма рискованная процедура.
Для того чтобы не путаться, можно применить следующий способ.
один из доменов (site.ru и www.site.ru) пустить под денвер, а другой - под реальный сайт.
В этом случае, браузеру будут видны оба варианта.

   
 
 автор: Alex Boxgorn   (24.06.2007 в 21:30)   письмо автору
 
   для: Alex Boxgorn   (24.06.2007 в 19:45)
 

В общем нашел я в чем дело было...
Все оказалось очень просто.
Я придерживаюсь следующего правила - если ошибка появилась после каких-либо изменений, то нужно вернуть все в такой вид, который был до изменений.
У меня все сайты лежали в папках типа home/rtv.ru/www/..... и все работало.
Но у меня часто возникали проблемы при проверке выгруженного сайта в интернете при включенном виртуальном сервере. Т.е. и в интернете адрес сайта www.rtv.ru и на локальном сервере тоже самое www.rtv.ru. Для того чтобы не путаться я и переименовал локальные адреса сайтов в вид www.rtv_ru и после этого начались проблемы.
Я во-первых переустановил Денвер еще раз, но не на прежнюю букву виртуального диска Z:\ как раньше было, а под новую K:\ чтобы если остались файлы от старого денвера с настройками, то они бы не мешали новому Денверу. Потом проверил вышеуказанный код из двух PHP файлов test3.php и test7.php и все заработало.
Потом я проверил свой сайт сначала с именем домена www.rtv_ru и тест перестал работать, после переименования на www.rtv.ru тест корректно отработал.
Так что вот такие глюки затормозили мою работу на 1,5 дня.
Информация эта для всех тех, кто возможно сталкивался с такой проблемой и для всех тех, кто учится на чужих ошибках и не совершает их повторно.
Всем удачи!!!

   
 
 автор: Alex Boxgorn   (24.06.2007 в 19:45)   письмо автору
 
   для: sim5   (24.06.2007 в 19:40)
 

Спасибо всем за помощь! Буду искать где ошибка, работать же как-то надо ;-(((

   
 
 автор: sim5   (24.06.2007 в 19:40)   письмо автору
 
   для: Alex Boxgorn   (24.06.2007 в 19:11)
 

У меня все работает, естественно и ваши тесты не вызовут осложнений. Значит у вас что-то с настройками, либо проблемы с самим пакетом Денвера.

   
 
 автор: Alex Boxgorn   (24.06.2007 в 19:11)   письмо автору
 
   для: Osipov   (24.06.2007 в 16:51)
 

Тестирование кода указанного ниже и помещенного в файл test3.php привело к выводу слова TEST. Файл сессии в папке TEMP создался и в нем появилась запись user|s:4:"TEST";
<? 
session_start
(); 
$_SESSION["user"]="TEST"
echo 
$_SESSION["user"]; 
?>

Далее я довел ситуацию до моего случая я сделал файл test3.php с кодом
<? 
session_start
(); 
$_SESSION["user"]="TEST"
if(isset(
$_SESSION["user"])){ header("location: test7.php");} 
?> 

соответственно файл test7.php с кодом
<? 
session_start
(); 
$k=$_SESSION["user"];
echo 
$k
?>

После запуска файла test3.php вывелось сообщение:
Notice: Undefined index: user in z:\home\osdnsk_ru\www\test7.php on line 3
А созданный файл сессии пуст.

   
 
 автор: sim5   (24.06.2007 в 18:38)   письмо автору
 
   для: Alex Boxgorn   (24.06.2007 в 18:09)
 

Папка Webservers - папка установки Денвера по умолчанию, а путь сессий по умолчанию в php.ini /tmp, то есть сессии хранятся в папке Webservers/tmp и нигде более. Браузер к этому отношения не имеет.
Если вы Делал все тоже самое, но нет вывода на экран, и при этом Денвер и php.ini не подвергались экзекуции, то я не знаю что вам и сказать. Единственной проблемой со сессиями у меня было то, что сессия создавалась ТОЛЬКО ОДНА за все время сеанса работы Денвера. Причиной была ХР. Если вы запускаете отдельный файл, например, test.php, в котором содержится только:

<?
session_start
();
$_SESSION["user"]="TEST";
echo 
$_SESSION["user"];
?>

например, и у вас браузер покажет TEST, то причина не в сессиях как таковых, а в том, что вы не верно с ними работаете, другими словами у вас ошибки в коде. Если же браузер не выведет TEST, то причины надо искать в системе, какие - сама ОС, софт, настройки..., даже и трудно предположить. По крайней мере, мне подобного видеть не приходилось.

   
 
 автор: Alex Boxgorn   (24.06.2007 в 18:09)   письмо автору
 
   для: sim5   (24.06.2007 в 16:57)
 

ну естественно проверял. А как же я тогда узнал, что переменная теряется?
Делал все тоже самое что вы и написали.
А еще вопрос, Денвер не оставляет свои файлы еще где-нибудь, кроме как в папке Webservers?
В принципе, после сноса папки webservers с дистрибутивом Денвера все должно вылечиться.
А настройки эксплоэра на хранение переменных не может влиять?

   
 
 автор: sim5   (24.06.2007 в 16:57)   письмо автору
 
   для: Alex Boxgorn   (24.06.2007 в 16:28)
 

Если вы хотите записать в сессию, то просто пишите:
$_SESSION["user"] = что вам надо.
Проверить надо запись, значит пишите if (isset($_SESSION["user"] )) ваши действия.
Если у вас Денвер по умолчанию, если вы ничего не меняли в настройках, то:
$_SESSION["user"]="ПРОВЕРКА";
echo $_SESSION["user"];
Выведет вам ПРОВЕРКА. Вы это проверяли?

   
 
 автор: Osipov   (24.06.2007 в 16:51)   письмо автору
 
   для: Alex Boxgorn   (24.06.2007 в 07:22)
 

А не может быть у вас session_start после отправки заголовков? У вас стоит хороший error_reporting, но для того чтобы точно увидеть все ошибки, нужно ещё, на всякий случай, написать

ini_set("display_errors",true);

Перенесите session_start в самое начало --- так надёжнее (после error_reporting и ini_set)
Да, и вы уверены, что попытка session_start после отправки заголовков --- это не notice? Может уберёте &~E_NOTICE, на всякий случай.

   
 
 автор: Alex Boxgorn   (24.06.2007 в 16:28)   письмо автору
 
   для: sim5   (24.06.2007 в 12:10)
 

проверил - переменная не установлена говорит.
функция isset($_SESSION["user"] )=ложь

   

Сообщения:  [1-10]   [11-18] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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