|
|
|
|
|
для: Port_Artur
(02.04.2010 в 14:48)
| | В файле обработчике чего? Проверки каптчи? А зачем при проверке каптчи записывать в $_SESSION['cap'] что-то? Обработчик читать ее должен и сравнивать, а записывать значение в эту переменную должен ТОЛЬКО скрипт формирующий каптчу. | |
|
|
|
|
|
|
|
для: sim5
(02.04.2010 в 14:30)
| | В капче лежит переменная
которая записывается туда файлом создающим изображение капчи. В файле обработчике не удаётся записать туда переменную:
<?
session_start();
$_SESSION['cap'] = mt_rand(100000,999999);
...
|
В сессии по прежнему 1 переменная.
Почему так происходит? | |
|
|
|
|
|
|
|
для: Port_Artur
(02.04.2010 в 14:26)
| | А вы внимательно читаете то, что я вам пишу? А путь к сессии из того что вы представили узнать трудно? Открываейте хоть Блокнотом и смотрите. | |
|
|
|
|
|
|
|
для: sim5
(02.04.2010 в 14:22)
| | А как в неё заглянуть и в каком месте это лучше cделать? | |
|
|
|
|
|
|
|
для: Port_Artur
(02.04.2010 в 14:16)
| | Разбирайтесь. Значит она у вас прерывается. Да и заглянуть в нее труда не стоит, вывести текущий id ее тоже, чтобы понять причины. | |
|
|
|
|
|
|
|
для: sim5
(02.04.2010 в 14:09)
| | session
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary
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_httponly Off Off
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.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /usr/home/domain/tmp/ /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid
|
| |
|
|
|
|
|
|
|
для: Port_Artur
(02.04.2010 в 13:48)
| | Я в который раз вижу у вас подобную чушь:
log.php<?
session_start();
$_SESSION['cap'] = mt_rand(100000,999999);
.....
поэтому и пишу, что у вас полный бардак, и коли вы это понимаете, пора бы уже и человеческий код приводить, а тем более не писать о передаче кода каптчи через форму другому скрипту.
session_start() - не включает сессю (она разрешается в php.ini, и все ее параметры устанавливаются там же), а стартует сессию, или продлевает существующую.
Если у вас не удается получить значение из сессии, то она либо ввобще не работает у вас, либо прерывается, либо, например, истекло время ее жизни, по умолчанию равное 24 мин. | |
|
|
|
|
|
|
|
для: sim5
(02.04.2010 в 13:31)
| | Да конечно я не гоняю капчу в открытом виде. Я просто взял куски кода для примера. Я передаю из обработчика сообщение об ошибке и значения полей, если какие-то поля заполнены не правильно. После того как обработчик перебрасывает пользователе обратно на форму регистрации формируется новая капча и записывается в сессию для проверки в обработчике со значением, которое пользователь вводит с картинки.
У меня не получается передать переменную из одного файла .php в другой .php.
И что значит "А у вас сам механизм сесси включен?"
Разве это session_start(); не включает механизм сессии? | |
|
|
|
|
|
|
|
для: Port_Artur
(02.04.2010 в 13:19)
| | А у вас сам механизм сесси включен?
Еще раз - у вас пользователь запросил форму авторизации обратившись к некой странице. На этой странице вы только стартуете сессию, и отдаете форму, в которой помещено изображение каптчи, которое в свою очередь делает запрос к скрипту формирующему каптчу. И уже этот скрипт генерирует код каптчи для изображения, и для записи его в сессию.
Страница проверки формы обрабатывает форму, сверяет введенный пользователем код, с кодом занесенным в сессию скриптом формирующем каптчу.
Если все ОК, то далее устанавливается признак успешного принятия формы, а не гоняется этот код от скрипта к скрипту в открытом виде, как это вы делаете.
Можно одним скриптом отдавать форму пользователю, производить ее проверку, и формировать каптчу, но в этом случае срипт должен быть разбит на логические блоки, которые будут обрабатываться по параметрам запроса к нему. То что вы пишите, это полный абсурд, и как вам еще это объяснить я не знаю. | |
|
|
|
|
|
|
|
для: sim5
(02.04.2010 в 13:14)
| | Хорошо, если я создаю переменную в файле log.php, почему я не могу её потом извлечь из сесии в файле login.php.
Капча мне нужна для защиты от спамерских программ (типа хрумера). | |
|
|
|
|