Понимаю, что тема избитая, но мне не совсем стандартное решение нужно.
Значит так, у меня есть форма (там много полей). Одно из полей - капча. Саму капчу я написал и её значение сохранил в переменную (к примеру, $capcha). К файлу с формой я подключаю файл с javascript. Вопрос такой, как мне передать переменную $capcha в js-скрипт? Чтобы я смог сделать такую проверку...
типа if ($('селектор поля капчи').val() != ВОТ ТУТ ПЕРЕДАННОЕ ЗНАЧЕНИЕ){какие-то эффекты}
Спустя 8 минут, 16 секунд (28.08.2011 - 15:12) forza написал(а):
Плохая идея с каптчей. ИМХО. Просто потому что, ее смысл теряется, и появляется возможность дернуть ее из Source кода и обойти защиту.
Спустя 1 минута, 53 секунды (28.08.2011 - 15:14) Guest написал(а):
forza , можно поподробней. Как Вы её выдерните из Source кода?
Спустя 1 минута, 19 секунд (28.08.2011 - 15:16) Guest написал(а):
Т.е. Вы предлагаете делать проверку капчи на PHP?
Спустя 3 минуты, 2 секунды (28.08.2011 - 15:19) forza написал(а):
Все, что есть в исходном кода, можно достать. Поэтому бот такую защиту обойдет в разы. Иначе зачем была придумана каптча? Чтобы человек ввел текст с картинки, и уже на стороне сервера была проверка а правильно ли он ее ввел, тем самым отсеить спам-ботов. Вы же, написав каптчу, хотите ее значение передать в JS, т.е выставить на показ.
P.S Да, либо если вы хотите чтоб страница не перезагружалась - используйте AJAX
P.S Да, либо если вы хотите чтоб страница не перезагружалась - используйте AJAX
Спустя 5 минут, 38 секунд (28.08.2011 - 15:24) Guest написал(а):
В том-то и дело, что я использую AJAX, точнее функцию $.ajax(). Просто в данной функции есть параметр как url (файл для обработки полученных переменных из формы), но (!) мне нужно передать переменную именно не транзитом через js-файл, а в сам js-файл. Думал использовать getJSON(), но немного запутался. Переменная $capcha мне нужна в js-файле только для придание визуального эффекта форме (если капча введена неверно). А аяксом я переменные уже подключаю к файлу php, и там уже идёт работа.
Спустя 34 минуты, 53 секунды (28.08.2011 - 15:59) inpost написал(а):
testUser
Вот так передаётся из пхп в js. А в целом, капча должна работать на стороне сервера, иначе какой от этого толк, всё что на стороне клиента - легко обходится.
if ($('селектор поля капчи').val() != '<?php echo $capcha; ?>'){какие-то эффекты}
Вот так передаётся из пхп в js. А в целом, капча должна работать на стороне сервера, иначе какой от этого толк, всё что на стороне клиента - легко обходится.
Спустя 12 минут, 47 секунд (28.08.2011 - 16:12) Guest написал(а):
inpost, а ajax-ом это можно реализовать (не спрашиваю как...возможно ли)?
P.S. Согласен, что
нехорошо, но у меня даже с жтим неувязка...alert( '<?php echo $capcha; ?>') выводит <?php echo $capcha; ?>. Где-то я накосячил.
P.S. Согласен, что
if ($('селектор поля капчи').val() != '<?php echo $capcha; ?>'){какие-то эффекты}
нехорошо, но у меня даже с жтим неувязка...alert( '<?php echo $capcha; ?>') выводит <?php echo $capcha; ?>. Где-то я накосячил.
Спустя 52 секунды (28.08.2011 - 16:13) inpost написал(а):
Ну так куда ты это вставляешЬ? PHP скрипт выводится только в файлах с расширением .php , а не .js
Спустя 1 минута, 6 секунд (28.08.2011 - 16:14) inpost написал(а):
Что в твоём понимании Ajaxом? Отправить запрос и получить ответ с сервера? Ну можно, но я могу не отправлять ничего аяксом, а сразу подставить в форму нужные мне параметры, смысл тогда от этого?
Спустя 4 минуты, 45 секунд (28.08.2011 - 16:19) Guest написал(а):
AJAX связывает работу клиента с сервером. Т.е. я могу обработать данные на сервере интерактивно. Просто захотелось сделать без перезагрузки...простой пример: я заполняю форму, ввожу капчу и мне тут же сообщение..."капча введена неверно", остальные параметры полей улетели в файл php и обработались там. Второе я сделал, а как быть с первым?
Спустя 2 минуты, 54 секунды (28.08.2011 - 16:22) inpost написал(а):
onchange ставишь отправку GET через Ajax, там передаёшь только данные введённого проверочного слова, скриптом обработай и верни true или false, и выведи по условию нужное слово тебе.
В целом ты сделать это всё можешь, но JS - это язык для красоты. Когда ты нажмёшь кнопку "отправить", то в PHP надо отдельно проверить капчу, иначе твоя защита будет бесполезной.
В целом ты сделать это всё можешь, но JS - это язык для красоты. Когда ты нажмёшь кнопку "отправить", то в PHP надо отдельно проверить капчу, иначе твоя защита будет бесполезной.