Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > session.save_path


Автор: Гость_Sirius 22.8.2005, 05:15
Я раньше строил сайт где в настройках ПХП в разделе SESSION было

session.save_path /tmp

И все работало...

Потом перешел на другое место..и там сессии не работают (хотя ошибок тоже не выдается).

Посмотрел в настройках, и вижу там


session.save_path C:\PHP\sessiondata

Возможно причина в этом, но я все равно толком не понял. К примеру, как я могу изменить их настройки?...и почему сессии все же не работают?...

Создал там в основном root документе (где все файлы сайта) папку tmp и в моем файле где должна работать сессия, перед session_start кинул строчку session_save_path('/tmp/');
Тем самым указав чтоб файлы сессии хранились там..но все равно не работает.

Словом если знаете какие-либо способы обойти эту проблему, и в чем именно она вообще заключается..Прошу помочь! Застрял.. smile

Автор: Bikutoru 22.8.2005, 08:20
Цитата
session.save_path C:\PHP\sessiondata

А эта папка существует? Если нет, то ничего работать и не должно

Цитата
перед session_start кинул строчку session_save_path('/tmp/');

Это означает, что сессии должны хранится в папке /tmp, причем путь идет о корня сервера, а не от корня сайта. Попробуй сделать так
Код

session_save_path($_SERVER["DOCUMENT_ROOT"] . '/tmp/');

Автор: Mal Hack 22.8.2005, 12:12
1. /tmp/ на виндоусе быть не может.
2. session.save_path = "d:/usr/php-4.3.10/sessiondata" - по шаблону укажи путь.

Автор: Гость_Sirius 22.8.2005, 13:45
Да, папка
C:\PHP\sessiondata конечно существует ( у меня на компе)
но все равно не работает..

session_save_path($_SERVER["DOCUMENT_ROOT"] . '/tmp/'); так тоже не работает ...

d:/usr/php-4.3.10/sessiondata такой путь тоже указал

session_save_path('d:/usr/php-4.3.10/sessiondata');

Словом ничего не работает..

Автор: Mal Hack 22.8.2005, 13:58
1. Указывай в php.ini.
2. Обрати внимание на слэши. И путь ты должен свой указать.

Автор: Гость_Sirius 22.8.2005, 14:19
У меня есть там в одной из папок Apache и там тоже PHp...в этой папке ПХП есть файл ПХП.ini
Я там указал путь! но все равно не работает..


Хотя как это может повлиять на работу сайта, не понимаю...ведь это вроде влияет когда у себя на локальном сервере скажем пишут программы и тестируют..а с интернетом какая связь у файла этого..

Но не понимаю как это поможет, ведь я этот Apache как бы вообще не использую, и их Php тоже..наверное как-то нужно запустить что-то?

я новичок smile smile

Автор: Гость_Sirius 22.8.2005, 22:18
Может кто-нибудь обьяснит то что я не понял?
Пожалуйста, я реально застрял...
у меня есть несколько php.ini и в них я указал эти пути, но все равно ничего не работает, хотя был бы рад узнать какая связь у этих php.ini настройками php у сервера...я же не на локальном сервере тестирую программу, или может я чего не понял, прошу помощи!
Я уже по всякому пробовал...

Автор: Mal Hack 23.8.2005, 08:50
Приоритет обработки php.ini
1. В папке с Apache
2. В папке Windows
3. В папке PHP

Автор: Сириус 26.8.2005, 01:13
Может это выглядит уже очень таинственно, но все равно ничего не работает. Админы сервера деликатно не отвечают на вопрос про данную проблему.
Я нашел php.ini и во всех изменил путь к одной папке у себя на компе..к той..C:\PHP\sessiondata

Я специально проверил на сервере holm.ru, там все работает. На enom.com не работает.
Разница в настройках Php.
Я даже один раз включил одну функцию, щас точно не помню, но она позволяет изменить путь сохранения сессий..(изменил на tmp)...другой раз сам написал все функции сессии ( с одной книги скатал) и все равно не работает.

Это мистика чтоли*..

Автор: IZ@TOP 26.8.2005, 08:54
1. Насколько я знаю, в путях в файле php.ini Допускаются только прямые слеши.
2. Проверь доступ на запись в каталог куда ты хочешь сохранять у себя на компе сесси (на сервере тоже, если это не холм - у AGAVA настройки ни когда не подводили), для пользователя из под которого выполняется Apache.
3. Функция для прямолго указания "куда сохранять сессии" называется http://php.net/session_save_path.

Автор: Сириус 26.8.2005, 14:55
Спасибо за ответ.
Я везде прописал session.save_path = "C:\PHP\sessiondata" (это прямые слеши?)..
Сегодня я на сервере для папки tmp установил Write access allowed и в моих кодах перед session_start() написал
session_save_path($_SERVER["DOCUMENT_ROOT"] . '/tmp/');
(чтоб сессии сохранялись в папке на сервере...)
еще попробовал так
session_save_path('/tmp/');

тоже не работает..

там админы сервера тоже не знают в чем проблема.

А у меня на компе около семи файлов php.ini где везде установил
session.save_path = "C:\PHP\sessiondata"

У меня вопрос, как проверить в этой папке есть ли доступ на запись? Какой-то программой? Может можно об этом где-нибудь почитать, как это делается..


Автор: Сириус 26.8.2005, 15:35
заменил все пути на пути с прямыми слешами..все равно не работает.
session.save_path = "C:/PHP/sessiondata"

Автор: Сириус 27.8.2005, 18:15
Здравствуйте
У меня отличная новость, все заработало..но каким образом?
Я подумал что стоко вас мучал, так что может вам будет интересно..там группа по Пхп в сервере кинула файлы ( в основную директорию сайта) с форматами asax и aspx и еще один текстовый файл web.config с ХМЛ кодом каким-то..и все заработало..оригинально да..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)