|
0 Всего найдено: 8
MrHint
Сообщение
16/07/2009 14:47
Копия темы
Глюк с сессией в php Всем здравствуйте. Делаю такую штуку: пользователь сайта заполняет форму, при этом в письмо прикрепляется информация, с какой страницы он пришёл. Так как проверка обязательных полей формы производится на сервере, использовать постоянно $_SERVER['REFERER'] невозможно, То есть, если например введен некорректный маил, пользователя кидает обратно на страницу с формой, и $_SERVER['REFERER'] хранит уже не то что нам нужно. Поэтому решил использовать работу с сессиями. использую такую функцию: function referer(){ if (isset($_SESSION['orderReferer'])) return $_SESSION['orderReferer']; $referer = $_SERVER['HTTP_REFERER']; if ($referer != null) $_SESSION['orderReferer'] = $referer; return $referer; } На трёх сайтах работает замечательно, на остальных массив SESSION пуст. @session_start() не помогает, даже наоборот, мешает! То есть если я пытаюсь стартовать сессию в указаной функции, перестает работать даже на тех сайтах, на которых работает при не использлвании .session_start(); Все сайты расположены на одном VDS, phpinfo в разделе SESSION для всех сайтов выводит sessionSession Support enabled Registered save handlers files user Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 On On session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 100 100 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /home/swiss/data/tmp /tmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid Off Off Может, кто то объяснить, в чём может быть дело?
xadminx
Сообщение
16/07/2009 15:05
Копия темы
1. не используйте HTTP_REFERER этого значения может не быть, его могут резать фаэеволы, может не посылать браузер 2. не используйте @ это зло. удалите, посмотрите что выводит 3. может гдето логическая ошибка обнуляете $_SESSION
fasterx
Сообщение
16/07/2009 21:43
Копия темы
сессию нужно стартовать один раз сделайте global $_SESSION; в функции рефер зло, нужно передавать урл страницы
resurection
Сообщение
16/07/2009 23:38
Копия темы
> global $_SESSION; А заодно: global $_POST, $_GET, $_COOKIE; и ещё важно не забыть: global $GLOBALS; )))))))))))))
easmith
Сообщение
17/07/2009 05:05
Копия темы
0
а лучше refer выводить в форме вместо одной из переменных и форму сделать на Ajax |
Выразить восторг, поругаться или предложить что-нибудь можно на форуме |
Для обсуждения этого сервиса так же есть темы на фрилансе по поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал" |