session_save_path — получает иили устанавливает путь сохранения текущей сессии

Расположение файлов сеансов в Apache/PHP

Каково местоположение файлов сеансов по умолчанию при установке Apache/PHP на Ubuntu 10.10?

Параметр session.save_path умолчанию имеет значение «» которое будет соответствовать вашему системному временному каталогу. Посмотрите этот комментарий на https://bugs.php.net/bug.php? >

Новое значение по умолчанию для save_path в предстоящем выпуске (sic) будет пустой строкой, которая вызывает проверку временного каталога.

Чтобы найти текущий путь сохранения сеанса, вы можете использовать

Обратитесь к этому ответу, чтобы узнать, каков временный путь, когда эта функция возвращает пустую строку.

Сначала проверьте значение session.save_path с помощью ini_get(‘session.save_path’) или phpinfo() . Если это не пусто, тогда он покажет, где хранятся файлы сеанса. Во многих сценариях он по умолчанию пуст, и в этом случае читайте:

На машинах Ubuntu или Debian, если session.save_path не установлен, файлы сеанса сохраняются в /var/lib/php5 .

В системах RHEL и CentOS, если session.save_path не установлен, файлы сеанса будут сохранены в /var/lib/php/session

Я думаю, что если вы скомпилируете PHP из исходного кода, тогда, когда session.save_path не будет установлен, файлы сеанса будут сохранены в /tmp (я не тестировал это сам, хотя).

Другим общим положением по умолчанию, кроме /tmp/ , является /var/lib/php5/

Если вы не уверены в скомпилированных настройках по умолчанию, посмотрите соответствующий php.ini .
Обычно это покажет закомментированное значение по умолчанию.

Ubuntu/Debian старые/новые местоположения php.ini:
Более /etc/php5/apache2/php.ini php5 с Apache: /etc/php5/apache2/php.ini
Более старый php5 с NGINX + FPM: /etc/php5/fpm/php.ini
Ubuntu 16+ с Apache: /etc/php/*/apache2/php.ini
Ubuntu 16+ с NGINX + FPM — /etc/php/*/fpm/php.ini

/*/ = ваша текущая версия PHP модуля, используемого на вашем веб-сервере.

Вам необходимо выяснить, какая версия PHP используется, а затем найти соответствующую запись php.ini:

Одна строка (более новая версия Ubuntu/Deb):

APACHEPHPVER=$(a2query -m | grep «php» | grep -Eo «[0-9]+\.[0-9]+») && grep «;session.save_path»/etc/php/$/apache2/php.ini

Или же:

Поскольку PHP 7.3 является версией, работающей на веб-сервере Apache, вы должны использовать ее:

Или через командную строку /»cli» (см. Примечание ниже):

Версия «cli»/php.ini для командной строки обычно совпадает с версией Apache/FPM по сравнению с настройками пути сеанса. Вы также можете использовать аналогичную команду, чтобы отобразить настройку Apache/Nginx для команды или веб-страницы wget/curl. Но его так же легко найти в надлежащем Apache или FPM php.ini чтобы гарантировать, что вы видите правильный путь сеанса.

РЕДАКТИРОВАТЬ: За комментарий @aesede → Добавлен php -i . Спасибо

XCII. Функции обслуживания сессий

Поддержка сессий в PHP это способ сохранения определённых данных в течение последовательно выполняемых доступов. Это даёт возможность создать более специализированные приложения и увеличить привлекательность вашего web-сайта.

Если вы знакомы с обслуживанием сессий с помощью PHPLIB, вы заметите, что некоторые вопросы аналогичны поддержке сессий в PHP.

Посетителю вашего сайта присваивается уникальный id, так называемый session id. Он хранится в куке на стороне пользователя или вводится в URL.

Поддержка работы с сессиями даёт вам возможность регистрировать произвольное количество переменных и сохранять их в промежутках между выполнениями запросов. Когда пользователь заходит на ваш сайт, PHP будет автоматически (если session.auto_start имеет значение 1) или по вашему запросу (явно — через session_start() или неявно — через session_register() ) проверять, выслан ли специфический session id вместе с запросом. Если это так, воссоздаётся предшествующее окружение.

Все зарегистрированные переменные сериализуются после окончания запроса. Зарегистрированные undefined-переменные маркируются как не определённые. При последующих запросах они не определяются модулем сессии, если только пользователь не определить их позднее.

Установки конфигурации track_vars и register_globals определяют, как переменные сессии хранятся и восстанавливаются.

Примечание: в PHP 4.1.0 $_SESSION доступна как глобальная переменная, совсем как $_POST , $_GET , $_REQUEST и так далее. В отличие от $HTTP_SESSION_VARS , $_SESSION всегда глобальна. Следовательно, global не должно использоваться для $_SESSION .

Если track_vars включена, а register_globals отключена, только члены глобального ассоциативного массива $HTTP_SESSION_VARS могут быть зарегистрированы как переменные сессии. Восстановленные переменные сессии будут доступны только в массиве $HTTP_SESSION_VARS .

Пример 1. Регистрация переменной при включённой track_vars

Использование $_SESSION (или $HTTP_SESSION_VARS в PHP 4.0.6 или ранее) рекомендовано из соображений безопасности и читаемости кода. При наличии переменных $_SESSION или $HTTP_SESSION_VARS нет необходимости использовать функции session_register()/session_unregister()/session_is_registered(). Пользователи могут получать доступ к переменной сессии как к нормальной переменной.

Пример 2. Регистрация переменной с помощью $_SESSION
Пример 3. Дерегистрация переменной с помощью $_SESSION

Если register_globals включена, то все глобальные переменные могут быть зарегистрированы как переменные сессии, а переменные сессии будут восстанавливаться в соответствующие глобальные переменные. Поскольку PHP обязан знать, какие глобальные переменные зарегистрированы как переменные сессии, пользователь обязан регистрировать переменные функцией session_register(), в то время как $HTTP_SESSION_VARS / $_SESSION не должна использовать session_register().

Если вы используете $HTTP_SESSION_VARS / $_SESSION и отключили register_globals , не используйте session_register() , session_is_registered() и session_unregister() .

Если вы включили register_globals , должна использоваться session_unregister(), поскольку переменные сессии регистрируются как глобальные переменные, когда данные сессии десериализуются. Отключение register_globals рекомендуется по соображениям безопасности и производительности.

Пример 4. Регистрация переменной при включённой register_globals

Если track_vars и register_globals включены, то вхождения глобальных переменных и $HTTP_SESSION_VARS / $_SESSION будут ссылаться на то же самое значение для уже зарегистрированных переменных.

Если пользователь применяет session_register() для регистрации переменной сессии, $HTTP_SESSION_VARS / $_SESSION не будет иметь эти переменные в массиве, пока он не будет загружен из хранилища сессии (т.е. до следующего запроса).

Есть два метода хранения session id:


Модель сессий поддерживает оба метода. Куки являются оптимальными, но, поскольку это ненадёжно (клиенты могут их не принимать), мы не можем полагаться на них. Второй метод внедряет session id непосредственно в URL.

PHP способен делать это прозрачно при компилировании с опцией —enable-trans-sid . Если вы включили эту опцию, относительные URI изменятся и будут содержать session id автоматически. Альтернативно вы можете использовать константу SID , которая определена, если клиент не отправил соответствующую куку. SID имеет форму session_name=session_id или пустой строки.

Примечание: директива arg_separator.output php.ini позволяет специализировать разделитель аргументов.

Следующие пример демонстрирует, как зарегистрировать переменную и как корректно связаться с другой страницей, используя S >

Пример 5. Подсчёт количества входов отдельного пользователя

не нужен, если —enable-trans-sid использовалась при компиляции PHP.

Примечание: принимается, что не-относительные URL указывают на внешние сайты и, следовательно, не присоединяют SID, так как имеется риск утечки информации о SID на другой сервер.

Для реализации хранения в БД или другого метода вам понадобится использовать session_set_save_handler() для создания набора функций хранения уровня пользователя.

Система менеджмента сессий поддерживает несколько опций конфигурации, которые вы можете поместить в ваш файл php.ini . Мы дадим краткий обзор.


session.save_handler определяет имя обработчика хранения и запрашивания данных, ассоциированных с сессией. По умолчанию files .

session.save_path определяет аргумент, который передаётся для хранения обработчика. Если вы выбрали обработчик файлов по умолчанию, это будет путь к месту создания файлов. По умолчанию /tmp . Если глубина пути для session.save_path больше 2, сборка мусора не будет выполняться.

Внимание!

Если вы выставили этот набор в директории, доступной для всеобщего обозрения, такой как /tmp (по умолчанию), другие пользователи сервера смогут подключаться к сессиям, получив список файлов в этой директории.

session.name специфицирует имя сессии, которое используется как имя куки. Оно должно содержать только буквы и цифры. По умолчанию PHPSESSID .

session.auto_start специфицирует, стартует ли модуль сессий сессию автоматически при стартовом запросе. По умолчанию 0 (отключено).

session.cookie_lifetime специфицирует период хранения куки в секундах. Значение 0 означает «пока браузер не будет закрыт.» По умолчанию 0 .

session.serialize_handler определяет имя обработчика для сериализации/десериализации данных. В настоящий момент поддерживается внутренний формат PHP (name php ) и WDDX (name wddx ). WDDX доступен только тогда, когда PHP скомпилирован с поддержкой WDDX. По умолчанию php .

session.gc_probability специфицирует вероятность того, что утилита gc (garbage collection/сборщик мусора) стартует при каждом запросе, в процентах. По умолчанию 1 .

session.gc_maxlifetime специфицирует количество секунд, после чего данные будут считаться ‘мусором’ и зачищаться.

session.referer_check содержит подстроку, которую вы можете проверять при каждом HTTP-обращении. Если обращение было выслано клиентом и подстрока не была найдена, внедрённый session id будет помечен как недействующий. По умолчанию — пустая строка.

session.entropy_file задаёт путь ко внешнему ресурсу (файлу), который будет использован как дополнительный источник в процессе создания session id. Примеры: /dev/random или /dev/urandom , которые доступны на многих Unix-системах.

session.entropy_length специфицирует количество байтов, которые будут прочитаны из файла специфицированного выше. По умолчанию 0 (отключено).

session.use_cookies специфицирует, будет ли модуль использовать куки для хранения session id на стороне клиента. По умолчанию 1 (включено).

session.use_only_cookies специфицирует, будет ли модуль использовать только куки для хранения session id на стороне клиента. По умолчанию 0 (отключено, для обратной совместимости). Включение этой установки предотвращает атаки при передаче session id в URL. Эта установка была добавлена в PHP 4.3.0.

session.cookie_path специфицирует путь для установки в session_cookie. По умолчанию / .

session.cookie_domain специфицирует домен для установки в session_cookie. По умолчанию нет ничего.

session.cache_limiter специфицирует метод управления кэшем для страниц сессии (none/nocache/private/private_no_expire/public). По умолчанию nocache .

session.cache_expire специфицирует период существования кэшированных страниц сессии в минутах, это не имеет эффекта при ограничителе nocache. По умолчанию 180 .

session.use_trans_sid специфицирует, включена ли прозрачная поддержка sid, если включена при компиляции с опцией —enable-trans-sid . По умолчанию 1 (включено).

url_rewriter.tags специфицирует, какие тэги html перезаписываются для включения session id, если прозрачная поддержка sid включена. По умолчанию a=href,area=href,frame=src,input=src,form=fakeentry

Примечание: работа с сессиями была добавлена в PHP 4.0.

Содержание session_cache_expire — возвращает окончание действия текущего кэша session_cache_limiter — получает и/или устанавливает текущий ограничитель кэша session_decode — декодирует данные сессии из строки session_destroy — уничтожает все данные, зарегистрированные для сессии session_encode — шифрует данные текущей сессии как строку session_get_cookie_params — получает параметры куки сессии session_id — получает и/или устанавливает текущий session id session_is_registered — определяет, зарегистрирована ли переменная в сессии session_module_name — получает и/или устанавливает модуль текущей сессии session_name — получает и/или устанавливает имя текущей сессии session_readonly — начинает сессию — реинициализирует замороженные переменные, но не записывает в конец запроса session_register — регистрирует одну или более переменных для текущей сессии session_save_path — получает и/или устанавливает путь сохранения текущей сессии session_set_cookie_params — устанавливает параметры куки сессии session_set_save_handler — устанавливает функции хранения сессии уровня пользователя session_start — инициализирует данные сессии session_unregister — дерегистрирует переменную из текущей сессии session_unset — освобождает все переменные сессии session_write_close — записывает данные сессии и конец сессии

Предупреждение!

Назад Оглавление Вперёд
sesam_settransaction Вверх session_cache_expire

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Если значения в сеансах сохранены

Где хранятся эти значения сеанса.. означает в каком-то файле? где??

4 ответа

2 Решение Sarfraz [2010-05-03 16:54:00]

Да, они хранятся во временном файле где-то на сервере, на котором находится ваш сайт. Вы можете указать этот параметр в php.ini с помощью session.save_path .

Вы также можете использовать функцию session_save_path , чтобы установить и получить путь к сеансу из script.

Синтаксис:

session_save_path — Получить и/или установить текущий путь сохранения сеанса

2 MJB [2010-05-03 16:54:00]

Разве это не во временном файле в session.save_path , независимо от того, что установлено?

Вы также можете найти ответ, который вы хотите более подробно здесь.

0 jaltiere [2010-05-03 16:53:00]

По умолчанию я думаю, что php хранит информацию о сеансе на сервере, хотя вы можете переопределить это для хранения информации о сеансе в файлах cookie на стороне клиента.

XCII. Функции обслуживания сессий

Поддержка сессий в PHP это способ сохранения определённых данных в течение последовательно выполняемых доступов. Это даёт возможность создать более специализированные приложения и увеличить привлекательность вашего web-сайта.

Если вы знакомы с обслуживанием сессий с помощью PHPLIB, вы заметите, что некоторые вопросы аналогичны поддержке сессий в PHP.

Посетителю вашего сайта присваивается уникальный id, так называемый session id. Он хранится в куке на стороне пользователя или вводится в URL.

Поддержка работы с сессиями даёт вам возможность регистрировать произвольное количество переменных и сохранять их в промежутках между выполнениями запросов. Когда пользователь заходит на ваш сайт, PHP будет автоматически (если session.auto_start имеет значение 1) или по вашему запросу (явно — через session_start() или неявно — через session_register() ) проверять, выслан ли специфический session id вместе с запросом. Если это так, воссоздаётся предшествующее окружение.

Все зарегистрированные переменные сериализуются после окончания запроса. Зарегистрированные undefined-переменные маркируются как не определённые. При последующих запросах они не определяются модулем сессии, если только пользователь не определить их позднее.

Если вы включили session_unregister(), поскольку переменные сессии регистрируются как глобальные переменные, когда данные сессии десериализуются. Отключение

Если arg_separator.output php.ini позволяет специализировать разделитель аргументов.

Следующие пример демонстрирует, как зарегистрировать переменную и как корректно связаться с другой страницей, используя S >

Пример 5. Подсчёт количества входов отдельного пользователя

не нужен, если session_set_save_handler() для создания набора функций хранения уровня пользователя.

Система менеджмента сессий поддерживает несколько опций конфигурации, которые вы можете поместить в ваш файл php.ini . Мы дадим краткий обзор.


session.save_handler определяет имя обработчика хранения и запрашивания данных, ассоциированных с сессией. По умолчанию files .

session.save_path определяет аргумент, который передаётся для хранения обработчика. Если вы выбрали обработчик файлов по умолчанию, это будет путь к месту создания файлов. По умолчанию /tmp . Если глубина пути для session.save_path больше 2, сборка мусора не будет выполняться.

Если вы выставили этот набор в директории, доступной для всеобщего обозрения, такой как /tmp (по умолчанию), другие пользователи сервера смогут подключаться к сессиям, получив список файлов в этой директории.

Как изменить путь сохранения сеанса в php.ini-файл?

у меня есть общий хостинг на godaddy.

Я попытался изменить путь сохранения сеанса в php.ini-файл с этой строкой,

я контролировал сеансы сохранить путь с сеансы.save_path()

5 ответов

вы можете изменить путь сохранения сеанса на общем хостинге, создав пользовательский php.ini.

включите это в свой файл: session.save_path = «/path/to/your/folder»

в противном случае, вы можете использовать:

папка, которую вы используете, должна находиться под вашим доменом / учетной записью, но недоступна через веб-браузер. Он также должен иметь разрешения для записи в мире на нем. И каждая страница, использующая сеансы, должна включать эту строку.

это session.save_path , а не sessions.save_path (возможно, он был переименован или что-то еще, я не знаю, но sessions.save_path у меня не получилось)

создайте папку с именем session в C:\session.

изменить session.save_path(); каталог к вновь созданному пути: ( C:\session ) в любом месте из .

вот как я получил сеансы работы, с помощью этого потока. Я запускаю PHP в IIS.

установите папку сеанса в php.ini.

(Я еще не уверен, что эта папка сеанса является лучшей практикой для моей среды..безопасность-мудрый. Мне нужно больше читать об этом.)

установка пути сеанса была недостаточной. Сначала я поместил session_start() в функцию, где мне нужно было установить переменные сеанса, но даже если файл сеанса был созданное в my path (sess_d9eeeb305928f2f39a25f296773b09eb), значение $_SESSION было потеряно во время записи ajax на мою PHP-страницу. Кто-то в stack\o сказал поставить session_start() в качестве первой строки, поэтому я попробовал это, и мое значение сеанса работает. Я не знаю, где его уничтожить.

Расположение файлов сеансов в Apache / PHP

каково расположение файлов сеанса по умолчанию при установке Apache / PHP на Ubuntu 10.10?

7 ответов:

The по умолчанию session.save_path установлено значение «» который будет оценивать в каталог temp вашей системы. Смотрите этот комментарий по адресу https://bugs.php.net/bug.php? >

новым значением по умолчанию для save_path в предстоящем релизе (sic) будет пустая строка, которая вызывает проверку временного каталога.

найти настоящее путь сохранения сеанса, вы можете использовать

смотрите ответ чтобы узнать, что такое путь temp, когда эта функция возвращает пустую строку.

сначала проверьте значение session.save_path используя ini_get(‘session.save_path’) или phpinfo() . Если это не пусто, то он покажет, где сохраняются файлы сеанса. Во многих сценариях он пуст по умолчанию, и в этом случае читайте дальше:

на машинах Ubuntu или Debian, если session.save_path не установлен, то файлы сеанса сохраняются в /var/lib/php5 .

на системах RHEL и CentOS, если session.save_path не установлен, файлы сеанса будут сохранены в /var/lib/php/session

Я думаю, что если вы скомпилировали PHP с источник, то когда session.save_path не установлен, файлы сеанса будут сохранены в /tmp (Я не проверял это сам, хотя).

другое общее расположение по умолчанию, кроме /tmp/ и /var/lib/php5/

если вы не уверены в компиляции по умолчанию, посмотрите на php.ini для Apache:

Ubuntu / Debian текущие местоположения:
Более старая установка php5: /etc/php5/apache2/php.ini
Ubuntu 16.XX и / или php5 или php7: /etc/php/*/apache2/php.ini

обычно, это покажет закомментированное значение по умолчанию.

из командной строки.

в ‘командной строки’/командную строку РНР.ini-это обычно то же самое, что и версия Apache, что касается настроек по умолчанию для сохранения пути. Вы также можете использовать аналогичную команду для Эхо-настройки Apache для команды wget/curl или веб-страницы. Но, гораздо проще просто grep для него в Apache php.Ини.

EDIT: Per @aesede comment — > Added php -i . Спасибо

у меня были те же проблемы с поиском правильного пути для сеансов на Mac. В общем, я узнал, что cli PHP имеет другой временный каталог, чем модуль Apache: Apache used /var/tmp , в то время как CLI использовал что-то вроде /var/folders/kf/hk_dyn7s2z9bh7y_j59cmb3m0000gn/T . Но в обоих направлениях, sys_get_temp_dir() мне правильный путь, когда session.save_path — это пустое. Использование PHP 5.5.4.

Я считаю его в /tmp/. Проверьте свою функцию phpinfo, хотя она должна сказать session.save_path где-то там.

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

upload_tmp_dir конфигурационного = «c:/wamp/tmp»

Session_save_path — получает и/или устанавливает путь сохранения текущей сессии

session_save_path — получает и/или устанавливает путь сохранения текущей сессии.

Описание

string session_save_path ([string path])

session_save_path() возвращает путь к текущей директории, используемой для сохранения данных сессии. Если path специфицирован, путь для сохранения данных будет изменён.

Примечание: в некоторых ОС вам может понадобиться специфицировать путь в файловой системе, по которому большое количество маленьких файлов будет эффективно обрабатываться. Например, в Linux reiserfs может дать более высокую производительность, чем ext2fs.

нужна помощь по сессиям.

Требуемые модули PHP:
параметр — — поддержка сессий
требуется — да
Текущее значение — Нет. Вероятно, каталог, используемый для сохранения параметров сессии, не доступен для записи

вопрос, какой каталог используется для сохранения параметров сессии? вероятно я поставил ему галочку — только чтение. подскажите пожалуйста.

тобиш в главном каталоге, файл htaccess.php
строчки session.save_path у меня вообще нет) все что есть из сессий, это php_flag session.use_trans_sid off, и она закомментированна.

P.S. если бы не правильно был прописан путь, мне бы написали подругому, у меня другая проблема, закрыт доступ к записи в каталог параметров сессий, мне надо его найти.

все остальное,как видите, в полном порядке, все нашел, кроме этого каталога.

Александр, Вам же сказали

Предупреждение!
Код

Если не можете сами, то попросите техподдержку хостинга.

Создайте, например, в папке htdocs папку session, и попросите техподдержку хостинга поменять путь в php.ini на session.save_path = /storage/home/srv14976/htdocs/session/

Да, не забудьте права на запись в папку session установить.

по умолчанию каталог темпа — htdocs/tmp, права на запись стоят, bitrix на это начхал( пишит эту ошибку и все тут. я недоумеваю что делать.

З.Ы. возможно bitrix просит открыть доступ к каталогу не общему, а внутреннему, так что вопрос думаю к администраторам мой..

Появилась та же ошибка. При чем — перед этим 3 копии поставил — без вопросов.
save_path указывает на существующий каталог с возможностью записи (там уже лежат файлы сессий от других сайтов)

строка 279 удалить

if (!BXInstallServices::CheckSession())
<
$this->SetError(InstallGetMessage(«INST_SESSION_NOT_SUPPORT»));
return false;
>

Цитата
Василий Лучинкин пишет:
\bitrix\modules\main\install\wizard\wizard.php

строка 279 удалить

if (!BXInstallServices::CheckSession())
<
$this->SetError(InstallGetMessage(«INST_SESSION_NOT_SUPPORT»));
return false;
>

Ага, только это зенд. wizard.php закодирован.
та же проблема. Чёртов битрикс. Голову себе сломал, В php.ini параметр session.save_path = «/tmp» У папки tmp права стоят 777. Бред.

У меня тоже имеет место эта проблема.

Цитата
Илья Душин пишет:
В php.ini параметр session.save_path = «/tmp» У папки tmp права стоят 777. Бред.

менял в htacces путь у session.save_path не помогло (

через restore сайт восстановился с н-ного раза но вылетал из админки.

Сейчас пробую поставить заново. Выдает что недоступен каталог под сессии.

Хостеры пинают что у них все хорошо, на другом хостинге все поднял без проблем.
Доступа к php.ini нету.

пробовал создавать директории и ставить на них права и по пути в phpinfo и в корне в tmp и уровнем выше, тоже нашел tmp какой то, битрикс не хватает

Поделюсь интересной ситуацией. Я также напоролся на ошибку «Нет. Вероятно, каталог, используемый для сохранения параметров сессии, не доступен для записи». В php.ini прописал session.save_path = «C:\tmp»(ставил в локале), жмакаю F5(ни один раз), проблема не решается. Захожу в папку tmp сессия создана, но весит 0 байт, а потом чисто случайно нажал «Назад» на предущий шаг и снова вперёд и.. даже с бубном прыгать не надо)) все работает)

Всем удачи, может кому-то моё сообщение поможет

такой прикол, при установке вылазит ошибка:
Кодировка UTF-8 доступна для версии MySQL начиная с 4.1.2
хотя я не ставлю галочку установка в utf-8 и mysql 5-й .

Столкнулся с аналогичной проблемой.
PHP 5.3.3
Сессии включены (Session Support: enabled), каталог для сохранения сессий установлен и доступен для записи.
Тут чуть выше подсказали заглянуть в /bitrix/modules/main/install/wizard/wizard.php, но его без лишних усилий не прочитаешь. Однако тут подсказали, что доступность сессий проверяет BXInstallServices::CheckSession(). Код этого метода как раз доступен (/bitrix/modules/main/install/wizard/utils.php):

Код

Посмотрим на один метод выше:

Код

Уж не знаю, что именно хотели сказать разработчики, но с учётом SetSession() , CheckSession() , я считаю, должен выглядеть как-то так:

Код

При таком раскладе во-первых, всё логично: записали, потом проверили, записалось ли, и во-вторых, проверка работает

session.save_path

Я раньше строил сайт где в настройках ПХП в разделе SESSION было

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

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

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

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

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

Где сохранены значения в сеансах

Где эти значения сеанса сохранены .. означает в каком-то файле? где ??

Создан 03 май. 10 2010-05-03 13:50:56 Mohit Jain

4 ответа

Да, они хранятся во временном файле где-то на сервере, на котором находится ваш сайт. Вы можете указать эту настройку в php.ini с session.save_path .

Вы также можете использовать функцию session_save_path , чтобы установить и получить путь к сеансу из вашего сценария.

Синтаксис:

session_save_path — Получить и/или установить текущий сеанс сохранения пути

Создан 03 май. 10 2010-05-03 13:54:57 Sarfraz

По умолчанию я думаю, что php хранит информацию о сеансе на сервере, хотя вы можете переопределить это, чтобы хранить информацию о сеансе в файлах cookie на стороне клиента.

Создан 03 май. 10 2010-05-03 13:53:34 jaltiere

Хранение данных «сеанс» в файлах cookie бессмысленно. – Crozin 03 май. 10 2010-05-03 13:55:03

И да, я считаю, что эта информация хранится в файле на сервере, используя сгенерированную буквенно-цифровую строку, поскольку это имя. (это PHPSESSID, и вы можете выбрать, где файл хранится с помощью метода session_save_path) – jaltiere 03 май. 10 2010-05-03 13:56:20

@Crozin: Я не сказал, что это хорошая идея, я просто сказал, что это возможно. :)jaltiere 03 май. 10 2010-05-03 13:57:27

Не находится ли он в временном файле в session.save_path , независимо от того, что настроено?

Вы также можете найти ответ, который вы хотите более подробно here.

Создан 03 май. 10 2010-05-03 13:54:01 MJB

PHP сохраняет сеансы в файлах. Местоположение этих файлов определяется в php.ini установкой session.save_path .

Создан 03 май. 10 2010-05-03 13:55:31 Matijs

Илон Маск рекомендует:  Strspn дать длину совпадающей подстроки
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL