Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 8
Mil-Fil Сообщение 16/07/2009 14:47 Копия темы
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 Копия темы
а лучше refer выводить в форме вместо одной из переменных и форму сделать на Ajax
MrHint Сообщение 17/07/2009 06:13 Копия темы
Большое спасибо всем! Спасибо за помощь!
fasterx Сообщение 17/07/2009 06:44 Копия темы
да :)
ляпнул чет не подумав
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"