Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Надо прикрутить капчу к спойлеру
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
Всем привет. В спойлере вверху спойлер, открывается от КНОПОЧКИ, внизу капча.. По отдельности все работает. Нужно прикрутить капчу к спойлеру. Прописал капчу, нажал на кнопку и спойлер открылся.. Кто смелый и не жадный ??
<?php
if (!isset($_SESSION)) session_start();
if ( !isset($_POST['answ'])||(!isset($_SESSION['ans'])) ) // проверяем есть ли в посте answ - ответ или не существует ли ответ в сессии, если нету значит его уничтожили, либо первый запуск
{
//тут ничего особенного просто генерируем ответ
$one=rand(0,20);
$two=rand(0,20);
if (rand(0,1)>0)
{
$_SESSION['ans']=$one+$two;
echo "$one+$two=";
}
else
{
$_SESSION['ans']=$one-$two;
echo "$one-$two=";
}
//и записываем его в сессию
}
else
{
//если в посте есть данные значит он нажал на ответ
if (is_numeric($_POST['answ'])) //проверяем число ли, если не делать то 0+0='' будет истинно
{
if ((intval($_POST['answ']))===(intval($_SESSION['ans']))) //проверяем эквивалентностью опять же из-за возможного нуля в ответе
{
// дальше код понятен и не требует комментариев
echo 'ок';
unset($_SESSION['ans']);
}
else
{
echo 'неверно ответ '.$_SESSION['ans'];
unset($_SESSION['ans']);
unset($_POST['answ']);
if(!isset($_POST['answ'])||(!isset($_SESSION['ans'])))// проверяем есть ли в посте answ - ответ или не существует ли ответ в сессии, если нету значит его уничтожили, либо первый запуск
PS. в принципе, у тебя "грубый" и , имхо, некорректный пример. "спойлер" первоначально привязывается к капче (так как действия спойлера зависят от правильно введенного кода), а не капча к спойлеру. твой скрипт, имхо, нужно переписывать и подключать ajax (либо через фреймы. тут тоже есть 2 варианта получения данных) если ты хочешь плавного изменения страницы без перезагрузки содержимого, проверки капчи и развертывания спойлера (каким он и должен быть).
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
[quote=Fart][/quote] Спасибо за участие, НО оно не работает..
Fart
Отправлено: 07 Августа, 2016 - 20:57:04
Посетитель
Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016
Помог: 10 раз(а)
Не работает что?)) (Добавление)
Твой код изначально не работает "красиво"
Bnopnya
Отправлено: 07 Августа, 2016 - 21:08:39
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
Fart пишет:
Не работает что?)) (Добавление)
Твой код изначально не работает "красиво"
Красиво это как ?? Я же написал что По отдельности все работает и капча и спойлер.. Спойлер открывается и после перезагрузки страницы снова закрывается, а капча решается.. что может быть красивее ??
Fart
Отправлено: 08 Августа, 2016 - 02:02:41
Посетитель
Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016
Помог: 10 раз(а)
офф-топ: "красиво" в контексте программирования - грамотно оформлено содержание кода, выстроена логическая цепочка, которой можно дать положительную оценку ей и выполненной работе, в том числе выглядело это на глаз приятно (чего и добиваются веб-программисты в конечном итоге).
по сабжу: я показал и описал тебе принцип получения данных для твоего "спойлера" после введенного кода. здесь можно было уже самому дописать итоговый вариант для своей идеи. по-видимому, тебе будет сделать и это сложно.
если тебе напишут с нуля твою затею, то жди...
Мелкий
Отправлено: 09 Августа, 2016 - 09:19:50
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Последним оставлено сообщение, не нарушающее правил.
К тому же сообщение, высказывающее очень верную мысль:
Fart пишет:
если тебе напишут с нуля твою затею, то жди...
Точечно править у меня желания нет. Дали бы прямую ссылку на тему - так и быть, её бы оставил, как добавляющую в эту тему хоть немного смысла.
----- PostgreSQL DBA
Bnopnya
Отправлено: 09 Августа, 2016 - 09:37:40
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
Мелкий пишет:
Последним оставлено сообщение, не нарушающее правил.
К тому же сообщение, высказывающее очень верную мысль:
Fart пишет:
если тебе напишут с нуля твою затею, то жди...
Точечно править у меня желания нет. Дали бы прямую ссылку на тему - так и быть, её бы оставил, как добавляющую в эту тему хоть немного смысла.
Ну если ты такой правильный и честный тогда удали его последний пост и все дела.. Если этот гавнюк разместил здесь 97 постов то его мнение теперь непререкаемое что ли ?? У меня вооще другой бизнес и не слабый и я не собираюсь терпеть издевки каждого лузера.. Если чел размещает заказ пусть даже не правильный по чьему то мнению, то всегда можно обсудить , а не так типа Напиши если сможешь.. Да оно мне и не надо что то писать, я заплатил и нормальные пацаны все сделали.. Так что наведи порядок сначала на форуме а потом мы будем разговаривать культурно.. а если какая то собака будет гавкать то стойло укажем быстро..
Мелкий
Отправлено: 09 Августа, 2016 - 10:01:12
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Bnopnya пишет:
Да оно мне и не надо что то писать, я заплатил и нормальные пацаны все сделали..
Так с этого тему и надо начинать, что это заказ, что надо сделать X, есть бюджет Y и тему я бы перенёс в соответствующий раздел http://forum.php.su/forums.php?forum=43
Раздел "Напишите за меня, пожалуйста" - немного о другом. Не предполагает оплаты труда, чистый энтузиазм и реакции "вот так можно копать, дальше копать туда", а так же "ну, ждите, может кому будет скучно и за вас напишут целиком" вполне оправдана.
Если вам от этого полегчает, могу выдать штрафы обоим. Вам за неоднократные оскорбления, собеседнику за участие (не помню, были ли взаимные оскорбления в удалённых сообщениях).
----- PostgreSQL DBA
Bnopnya
Отправлено: 09 Августа, 2016 - 10:13:25
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2016
Помог: 0 раз(а)
Мелкий пишет:
Bnopnya пишет:
Да оно мне и не надо что то писать, я заплатил и нормальные пацаны все сделали..
Так с этого тему и надо начинать, что это заказ, что надо сделать X, есть бюджет Y и тему я бы перенёс в соответствующий раздел http://forum.php.su/forums.php?forum=43
Раздел "Напишите за меня, пожалуйста" - немного о другом. Не предполагает оплаты труда, чистый энтузиазм и реакции "вот так можно копать, дальше копать туда", а так же "ну, ждите, может кому будет скучно и за вас напишут целиком" вполне оправдана.
Если вам от этого полегчает, могу выдать штрафы обоим. Вам за неоднократные оскорбления, собеседнику за участие (не помню, были ли взаимные оскорбления в удалённых сообщениях).
Уважаемый !! В основной теме написано - НАПИШИТЕ ЗА МЕНЯ... В моей теме написано - КТО СМЕЛЫЙ И НЕ ЖАДНЫЙ типа намек много денег не просите.. Судя по тому какой умный этот гавнюк то объяснять никому не надо что речь идет о деньгах.. Я так понял.. Ладно, я его на первый раз прощаю, но тему можно закрывать по причине НЕНАДОБНОСТИ больше..
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.