
02.01.2008, 01:03
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами:
10393869
Репутация:
2032
|
|
нужно реализовать капчу. вернее, передачу ее правильного значения между скриптами. я делал так.
в начале страницы с формой
PHP код:
<?php
session_start();
session_register("pic_val");
?>
потом идет
Код HTML:
<img src="pic.php">
в pic.php рисуется капча и в ней присваивается значение сеансовой переменной $_SESSION["pic_val"] = $captcha;
в скрипте, куда идет пользователь сравниваются значения капчи и введенное
выводится только $_POST["pic"], т.е. сеансовой переменной значение не присваивается. как сделать, чтобы работало?
|
|
|

02.01.2008, 01:40
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,187
С нами:
10495046
Репутация:
2642
|
|
Начинай и регистрируй сессию в скрипте капчи.
|
|
|

02.01.2008, 01:59
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами:
10393869
Репутация:
2032
|
|
то же самое. может в конфигах что-то подправить?
|
|
|

02.01.2008, 02:11
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,187
С нами:
10495046
Репутация:
2642
|
|
Сообщение от Piflit
то же самое. может в конфигах что-то подправить?
Тогда скорее всего $captcha не определена.
|
|
|

02.01.2008, 02:04
|
|
Постоянный
Регистрация: 29.09.2007
Сообщений: 617
С нами:
9798086
Репутация:
999
|
|
Помогите, нужен скрипт...
Вот описание:
Есть определённое количество очков. После скрипт считаем, если больше 50 очков он выводит скрипт по такому принципу:
//$s - очки
if(mt_rand(0,200)%5==0&&$s<50)
{
$text.="Вот тебя девятка!<br>";
$s-=50;//Вычитаем из общего количества очков
}
И так далее, например требования очков: 20,50,120,700,1000
|
|
|

02.01.2008, 02:11
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами:
10393869
Репутация:
2032
|
|
if(mt_rand(0,200)%5==0&&$s<50)
в каком порядке будут выполняться действия? расставь скобки
Сообщение от NOmeR1
Тогда скорее всего $captcha не определена.
PHP код:
$captcha = rand(1000, 9999);
$_SESSION["pic_val"] = $captcha;
|
|
|

02.01.2008, 02:39
|
|
Познающий
Регистрация: 01.01.2008
Сообщений: 50
С нами:
9662713
Репутация:
71
|
|
Проверь наличие session_start(); во всех скриптах (оно должно быть и в pic.php и в файле с формой, до вывода каких-либо данных) и убери session_register("pic_val");
Ну и проверить сниффером наличие айди сессии в передаваемых браузером данных, может что-то режет куки
|
|
|

02.01.2008, 02:47
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
С нами:
10393869
Репутация:
2032
|
|
Сообщение от Noiro
Проверь наличие session_start(); во всех скриптах (оно должно быть и в pic.php и в файле с формой, до вывода каких-либо данных) и убери session_register("pic_val");
Ну и проверить сниффером наличие айди сессии в передаваемых браузером данных, может что-то режет куки
спасибо =)) дело оказалось в session_start();
почему можно было убрать session_register("pic_val"); ?
|
|
|

02.01.2008, 02:51
|
|
Познающий
Регистрация: 01.01.2008
Сообщений: 50
С нами:
9662713
Репутация:
71
|
|
Сообщение от Piflit
почему можно было убрать session_register("pic_val"); ?
Дык оно deprecated, плюс работает только если включено register_globals что вообще идея дурная.
Caution
If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.
http://ru2.php.net/session_register
|
|
|

02.01.2008, 03:27
|
|
Познающий
Регистрация: 09.09.2007
Сообщений: 66
С нами:
9826679
Репутация:
41
|
|
Piflit
Не забудь кэшировать md5 значение , которое вставляешь в сессию.
Если капча идет на регистрацию(например) , то не забудь при успешной регистранции сделать $_SESSION["pic_val"]=rand(1000,9999); т.к. если значение этой сессионной переменной не поменять, то юзер сможет регистрировать до бесконечности, вставив однажды нужный код.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|