Помогите пожалуйста разобраться, почему форма "Обратный звонок" не реагирует на recaptcha от google. Вернее на скрипт, ответственный за отправку капчи на сервер гугла. За отправку информации из формы отвечает файл аjax.php а за капчу action.php - их необходимо в один файл соединить? хотя за проверку заполнения полей отвечает файл scrip.js... Как правильно соединить все в один цельный код?
Код action.php
<?php $APPLICATION->IncludeFile("/bitrix/components/wlcomponents/callback/ajax.php"); ?>
<?php $APPLICATION->IncludeFile("/bitrix/components/wlcomponents/callback/lang/ru/ajax.php"); ?>
<?php
$msg='';
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$recaptcha=$_POST['g-recaptcha-response'];
if(!empty($recaptcha))
{
include("getCurlData.php");
$google_url="https://www.google.com/recaptcha/api/siteverify" ;
$secret='Google key';
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
$res=getCurlData($url);
$res= json_decode($res, true);
if($res['success'])
{
// Продолжаем проверку данных формы
}
else
{
$msg="Please re-enter your reCAPTCHA.";
}
}
else
{
$msg="Please re-enter your reCAPTCHA.";
}
}
?>
Код аjax.php
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); ?>
<? $APPLICATION->IncludeFile("/bitrix/components/wlcomponents/callback/lang/ru/ajax.php");
if(empty($json["error"]))
{
CModule::IncludeModule("iblock");
$MESSAGE_TEXT = GetMessage("PHONE") . htmlspecialcharsEx($_POST["phone"]);
if (!empty($_POST["email"]))
$MESSAGE_TEXT .= GetMessage("EMAIL") . htmlspecialcharsEx($_POST["email"]);
if (!empty($_POST["question"]))
$MESSAGE_TEXT .= GetMessage("COMMENT") . $APPLICATION->ConvertCharset(htmlspecialcharsEx($_POST["question"]),'UTF-8',SITE_CHARSET);
if (!empty($_POST["time"]))
$MESSAGE_TEXT .= GetMessage("TIME") . htmlspecialcharsEx($_POST["time"]);
$rsIBlock = CIBlock::GetList(Array(), Array("CODE" => "wlcallback", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "N"));
if($arIBlock = $rsIBlock->GetNext())
{
$arFields = array(
"NAME" => $APPLICATION->ConvertCharset(htmlspecialcharsEx($_POST["fio"]),'UTF-8',SITE_CHARSET),
"ACTIVE" => "Y",
"IBLOCK_ID" => $arIBlock["ID"],
"DETAIL_TEXT" => $MESSAGE_TEXT,
);
$el = new CIBlockElement;
$ID = $el->Add($arFields);
}
if (!empty($ID))
{
$json["success"][] = "1";
// работаем с письмами
$admEmails = '';
if(COption::GetOptionString('wl.callback', 'ADMIN_NOTIFICATION') == "Y")
{
$adminEmail = COption::GetOptionString('main', 'email_from');
if(!empty($adminEmail))
$admEmails .= $adminEmail . ', ';
}
$addEmails = COption::GetOptionString('wl.callback', 'ADDITIONAL_EMAILS');
if(!empty($addEmails))
$admEmails .= $addEmails;
if(!empty($admEmails) || !empty($_POST["email"]))
{
$arLetter = Array(
"ID" => $ID,
"ADMIN_EMAIL" => $admEmails,
"USER_EMAIL" => $_POST["email"],
"NAME" => $APPLICATION->ConvertCharset($_POST["fio"],'UTF-8',SITE_CHARSET),
"PHONE" => $APPLICATION->ConvertCharset($_POST["phone"],'UTF-8',SITE_CHARSET),
"QUESTION" => $APPLICATION->ConvertCharset($_POST["question"],'UTF-8',SITE_CHARSET),
"TIME" => $_POST["time"]
);
CEvent::Send("WL_CALLBACK", "s1", $arLetter);
}
} else
$json["error"][] = "Error";
}
print_r(json_encode($json));
?>
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?>
Код action.php
<?php $APPLICATION->IncludeFile("/bitrix/components/wlcomponents/callback/ajax.php"); ?>
<?php $APPLICATION->IncludeFile("/bitrix/components/wlcomponents/callback/lang/ru/ajax.php"); ?>
<?php
$msg='';
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$recaptcha=$_POST['g-recaptcha-response'];
if(!empty($recaptcha))
{
include("getCurlData.php");
$google_url="
$secret='Google key';
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
$res=getCurlData($url);
$res= json_decode($res, true);
if($res['success'])
{
// Продолжаем проверку данных формы
}
else
{
$msg="Please re-enter your reCAPTCHA.";
}
}
else
{
$msg="Please re-enter your reCAPTCHA.";
}
}
?>
Код аjax.php
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); ?>
<? $APPLICATION->IncludeFile("/bitrix/components/wlcomponents/callback/lang/ru/ajax.php");
if(empty($json["error"]))
{
CModule::IncludeModule("iblock");
$MESSAGE_TEXT = GetMessage("PHONE") . htmlspecialcharsEx($_POST["phone"]);
if (!empty($_POST["email"]))
$MESSAGE_TEXT .= GetMessage("EMAIL") . htmlspecialcharsEx($_POST["email"]);
if (!empty($_POST["question"]))
$MESSAGE_TEXT .= GetMessage("COMMENT") . $APPLICATION->ConvertCharset(htmlspecialcharsEx($_POST["question"]),'UTF-8',SITE_CHARSET);
if (!empty($_POST["time"]))
$MESSAGE_TEXT .= GetMessage("TIME") . htmlspecialcharsEx($_POST["time"]);
$rsIBlock = CIBlock::GetList(Array(), Array("CODE" => "wlcallback", "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "N"));
if($arIBlock = $rsIBlock->GetNext())
{
$arFields = array(
"NAME" => $APPLICATION->ConvertCharset(htmlspecialcharsEx($_POST["fio"]),'UTF-8',SITE_CHARSET),
"ACTIVE" => "Y",
"IBLOCK_ID" => $arIBlock["ID"],
"DETAIL_TEXT" => $MESSAGE_TEXT,
);
$el = new CIBlockElement;
$ID = $el->Add($arFields);
}
if (!empty($ID))
{
$json["success"][] = "1";
// работаем с письмами
$admEmails = '';
if(COption::GetOptionString('wl.callback', 'ADMIN_NOTIFICATION') == "Y")
{
$adminEmail = COption::GetOptionString('main', 'email_from');
if(!empty($adminEmail))
$admEmails .= $adminEmail . ', ';
}
$addEmails = COption::GetOptionString('wl.callback', 'ADDITIONAL_EMAILS');
if(!empty($addEmails))
$admEmails .= $addEmails;
if(!empty($admEmails) || !empty($_POST["email"]))
{
$arLetter = Array(
"ID" => $ID,
"ADMIN_EMAIL" => $admEmails,
"USER_EMAIL" => $_POST["email"],
"NAME" => $APPLICATION->ConvertCharset($_POST["fio"],'UTF-8',SITE_CHARSET),
"PHONE" => $APPLICATION->ConvertCharset($_POST["phone"],'UTF-8',SITE_CHARSET),
"QUESTION" => $APPLICATION->ConvertCharset($_POST["question"],'UTF-8',SITE_CHARSET),
"TIME" => $_POST["time"]
);
CEvent::Send("WL_CALLBACK", "s1", $arLetter);
}
} else
$json["error"][] = "Error";
}
print_r(json_encode($json));
?>
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?>