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

Форум PHP

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

 

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

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

тема: Сессия "с характером"
 
 автор: Eugene77   (16.10.2008 в 08:49)   письмо автору
 
 

Странная у меня сессия получается.
Скрипт, который её инициирует,
выдаёт на экран две ссылки:
1. одну на себя же, но с другими параметрами
2. вторую на другой скрипт

При переходе по первой ссылке сессия пропадает
При переходе на другой скрипт - сохраняется.

Просто в голове не укладывается...
Вчера весь вечер сидел и тупо кликал, так и не понял что ещё можно предпринять для отладки

  Ответить  
 
 автор: sim5   (16.10.2008 в 09:06)   письмо автору
 
   для: Eugene77   (16.10.2008 в 08:49)
 

Значит у вас в первом скрипте нет продолжения сессии, скорее всего.

  Ответить  
 
 автор: Eugene77   (16.10.2008 в 09:21)   письмо автору
 
   для: sim5   (16.10.2008 в 09:06)
 

>Значит у вас в первом скрипте нет продолжения сессии, скорее всего.
Как оно должно выглядеть?
Я просто обращиаюсь :
print_r($_SESSION);

С сессией работает подключаемый через requier_once один и тот же файл.
Вот он-то мне и пишет в первом случае
Notice: Undefined variable _SESSION
При том, что сесионная кука стоит на месте.
Никуда она не исчезла!
более того, второй скрипт всё отрабатывает нормально

  Ответить  
 
 автор: chexov   (16.10.2008 в 09:28)   письмо автору
 
   для: Eugene77   (16.10.2008 в 09:21)
 

передавайте в конце кажой ссылки параметр SID пример: <a href='index.php?".SID."'>Ссылка</a>

  Ответить  
 
 автор: Eugene77   (16.10.2008 в 09:55)   письмо автору
 
   для: chexov   (16.10.2008 в 09:28)
 

>передавайте в конце кажой ссылки параметр SID пример: <a href='index.php?".SID."'>Ссылка</a>
Это на дырку в безопасности похоже...
Как вы считаете?

Ну, и вообще, хотелось разобраться...
Если это моя ошибка, то исправить, а если сессии вообще такая ненадёжная штука, то не пользоваться больше ими.

  Ответить  
 
 автор: sim5   (16.10.2008 в 09:54)   письмо автору
 
   для: Eugene77   (16.10.2008 в 09:21)
 

>Как оно должно выглядеть?

Если в скрипте А стартуется сессия как session_start();, затем устанавливается переменная в сесси, а затем идет переход на скрипт В, в котором сессия продолжается как session_start();, то запросив в скрипте В эту сессионную переменную, вы ее обязательно получите. Если не продолжать сессию, то сессия будет прервана.

  Ответить  
 
 автор: Eugene77   (16.10.2008 в 10:20)   письмо автору
 
   для: sim5   (16.10.2008 в 09:54)
 

Я начинаю сессию так:
session_set_cookie_params(0, '/');
session_start();
$_SESSION['id'] = $_GET['id'];

И запрашиваю при повторном запуске этого же скрипта с другим параметром print_r($_SESSION), но не получаю,
как я уже говорил другой скрипт, подключая этот же участок кода - получает.

  Ответить  
 
 автор: sim5   (16.10.2008 в 10:26)   письмо автору
 
   для: Eugene77   (16.10.2008 в 10:20)
 

А вы путь хранения сессии не трогайте и попробуйте.

  Ответить  
 
 автор: Eugene77   (16.10.2008 в 11:00)   письмо автору
 
   для: sim5   (16.10.2008 в 10:26)
 

>А вы путь хранения сессии не трогайте и попробуйте.
Я изначально его не трогал, но тогда Сессионной куки вообще опера не показывает, хотя
session_start() выполняется без ошибки.

  Ответить  
 
 автор: Eugene77   (16.10.2008 в 11:05)   письмо автору
 
   для: sim5   (16.10.2008 в 10:26)
 

Хотя, странно...
print_r($_SESSION),
если настройки сессии никак не трогать выдаёт вместо нотиса, что не определена - пустой массив Array()
При этом сессиоонной куки опера не показывает...

  Ответить  
 
 автор: sim5   (16.10.2008 в 11:47)   письмо автору
 
   для: Eugene77   (16.10.2008 в 11:05)
 

Вы настройки РНР своего посмотрите, если те что вам нужны, проверьте с ними, а уж потом пытайтесь менять их посредством скрипта. Что-то у вас с ними путаница получается.

  Ответить  
 
 автор: Eugene77   (16.10.2008 в 17:08)   письмо автору
 
   для: sim5   (16.10.2008 в 11:47)
 

Я наоборот считал, что самому предпочтительней настраивать параметры сессии.
Тогда неважно что там хостеру изменить захочется.
Но я мало чего понимаю в этих настройках.
Вот всё, что в php.ini
значится:
session.save_handler = files
session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly = 
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor     = 100
session.gc_maxlifetime = 1440
session.bug_compat_42 = 1
session.bug_compat_warn = 1
session.entropy_length = 0
session.entropy_file =
session.cache_expire = 180
session.hash_bits_per_character = 4

  Ответить  
 
 автор: sim5   (16.10.2008 в 17:30)   письмо автору
 
   для: Eugene77   (16.10.2008 в 17:08)
 

Значение этих параметров в мануале описно.

PS. Поищите в сети, есть php.ini по русски, если почитать нечего.

  Ответить  
 
 автор: Eugene77   (16.10.2008 в 19:52)   письмо автору
 
   для: sim5   (16.10.2008 в 17:30)
 

Если бы знать что в мануале искать...
Я читал коментарии к этим значениям на английском, но меня что-то не проняло.
Трудно себе представить чтобы моя проблема хоть как-то могла бы быть связана хоть с одной из этих переменных.
Словом,полный затык - герметичный.

Брошу я это дело, перепишу всё на куках...

Спасибо, что пытались помочь!

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

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