Интересная штука у меня тут нарисовалась, пишу по порядку :
Есть сайт, на нем организовано голосование, вся схема состоит из трех файлов:
1. Скрипт, генерирующий страницу голосования
2. Скрипт генерирует Captcha-картинку
3. Скрипт принимает голоса
Соответственно все они связаны сессиями. В первом скрипте открывается сессия, куда заносится время открытия страницы. Первый скрипт отрабатывает и выдает страницу клиенту. В этой странице есть <img src="" ...>, ведущий на второй скрипт, генерирующий капчу. Значение на картинке, опять же, заносится в сессию. К третьему скрипту идёт обращение через ajax из первого скрипта. Тоесть через Геты туда передаётся Id, за который голосовать и значение капчи, введённое пользователем. Этот третий скрипт тоже открывает сессию, читает содержимое полей, заполненых первым и вторым скриптом и заносит в базу данных.
Теперь что не так :
Этот третий скрипт не видит значение сессии, заполненное в первом скрипте Тоесть переменная в персом скрипте не записывается в сессию. Самое интересное, что если первую страницу рефрешить после записи в сессию (стоит условие, что если есть переменная в сессии - выводим содержимое, если нет - создаем переменную и Header на самого себя) - то переменная в сессии появляется.
По моей логике все три скрипта работаю последовательно, пользователь не запрашивает капчу до момента, пока не загрузилась страница, на которой ссылка на эту капчу (а её он может увидеть только после отработки скрипта), проголосовать он так же может только после того, как сгенерирована и страница и капча ... (мухлежа точно не было, тестировал сам)
1. Stierus - 04 Мая, 2009 - 09:31:08 - перейти к сообщению
2. Гость - 04 Мая, 2009 - 10:19:49 - перейти к сообщению
Stierus Проблема ваша конечно странная но ведь можно оставить и walkaround - как вы и говорите еслит переменных в сесси не было то первая страница рефрешит сама себя один разок и потом уже передается то что надо
3. Stierus - 04 Мая, 2009 - 10:22:43 - перейти к сообщению
Да оставить можно что угодно, но хотелось бы знать, почему происходит такая странность
4. EuGen - 04 Мая, 2009 - 10:30:58 - перейти к сообщению
Вот и посмотрите после первой загрузки, создаются ли на стороне клиента соответствующие куки. Что-то мне подсказывает, что нет
5. Stierus - 04 Мая, 2009 - 10:41:58 - перейти к сообщению
очистил куки, пробую запустить скрипт с рефрешем. Первый раз куки не отправляются ( что естественно), устанавливаются, после рефреша ранее установленная кука уже идёт в скрипт.
6. EuGen - 04 Мая, 2009 - 10:45:12 - перейти к сообщению
Ну вот, примерно то же самое будет, если сделать в скрипте: