Требуется в php добавить ключи recaptcha, условие проверки на правильность ответа google recaptcha и вывести в шаблонизатор саму recaptcha. Два дня бьюсь уже , нигде об этом не пишут, а если и написано, то информация устаревшая. Спасибо за помощь.
Денис Иванов: эту (кстати единственную проблему) я решил позже сам, притом что там где надо было мне вставить рекапчу используется не smarty, а подобие smarty.
Денис Иванов: это же не значит , что я сидел два дня и две ночи размышляя "Как правильно добавить..." Притом не факт, что я бы сделал это быстрее без smarty на php, pyton или др).
Денис Иванов: в конкретно этом случае симптом в получении не правильной информации от заказчика и по своему заточенных рук того, кто начинал разработку до меня. Вы сами знаете, что в чужом коде лес с костылями, куда сложнее чем написать всё заново под себя.
Денис Иванов: Мне надо было всего лишь воткнуть рекапчу стоимостью 100$, а не доводить проект до ума. А в общей сложности было потрачено примерно 7 часов бездельного времени. И тут не имело значение при помощи какого языка был написан сайт. Как вы думаете оно того стоит?
Денис Иванов: это для меня и для вас всё очень просто, а для клиента звучит как слетать на луну. На фрилансе встречаются ребята за час работы берут пару тысяч рубликов и норм, все довольны. Его цена, моё согласие, притом что код был первоначально г - код(котлеты и мухи всё вместе). В моей деятельности встречаются заказы, цена которых намного выше, а работы на час, на два. В вашем случае я предполагаю, что вы просто не хотите изучать то , что якобы устарело, поэтому так категорично относитесь к шаблонизаторам.
Денис Иванов: есть моя цена, а есть цена клиента. Если клиент говорит цену в 100$, то не целесообразно ему возражать, говоря что эта работа стоит 3 копейки) Я тоже не особо рад, когда используется smarty, но и не вижу в этом какой то проблемы.
<?php
require_once("recaptchalib.php");
$pubkey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxключ";
$privkey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxключ";
$rsp = null;
/* assuming it's the first page load, when there's no $_POST */
if(!$_POST) {
$smarty->assign(
"recaptcha",
recaptcha_get_html($pubkey)
);
}
else {
if($_POST["recaptcha_response_field"] &&
$_POST["recaptcha_response_field"]!=''){
/* request validation from the reCAPTCHA API */
$rsp = recaptcha_check_answer (
$privkey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]
);
/* process form when the API has confirmed validation */
if ($rsp->is_valid) {
/* the business logic happens here ... */
/* e.g. process form, send mail, whatever */
/* return "success" in order to switch the template */
$smarty->assign(
"recaptcha",
"success"
);
}
else {
/* return an error if the CAPTCHA was incorrect */
$smarty->assign(
"recaptcha",
recaptcha_get_html($pubkey,$rsp->error)
);
}
}
else {
/* return an error if an empty CAPTCHA was submitted */
$smarty->assign(
"recaptcha",
recaptcha_get_html($pubkey,'incorrect-captcha-sol')
);
}
}
/* output to template */
$smarty->display("add.html");
?>
но у меня в шаблоне выводится не {if $recaptcha!="success"}, а {%if $recaptcha!="success"%}, но и после моих изменений выдает ошибку на {%nocache%}{%$recaptcha%}{%/nocache%}? ,без {%nocache%} тоже не работает...