ReCaptcha Sorunu
Merhabalar değerli arkadaşlar.
Localimde sorunsuz bir şekilde çalıştırabiliyorum ama hostuma attığımda çalışmıyor.
Her ikisi için ayrı anahtarım var.Web sitem için www. ekleyerek alıyorum.Almadan da denedim
ama bir faydası olmadı maalesef
Kodlarım;
if (isset($_POST['uyegiris'])) {
$url = "https://www.google.com/recaptcha/api/siteverify";
$key = "6LfhcLkUAAAAAJZJRrxffHZFG-ykuHSZnQcEfSie";
$value = $_POST["g-recaptcha-response"];
$ip = $_SERVER["REMOTE_ADDR"];
$adres = $url . "?secret=" . $key . "&response=" . $value . "&remoteip=" . $ip;
$gonder = file_get_contents($adres);
$json = json_decode($gonder, true);
if ($json['success']) {
$uye_eposta = htmlspecialchars(trim($_POST['uye_mail']));
$uye_sifre = htmlspecialchars(trim(md5($_POST['uye_sifre'])));
if ($uye_eposta && $uye_sifre) {
$uyesor = $db->prepare("SELECT * from uye where uye_mail=:eposta and uye_sifre=:sifre");
$uyesor->execute(
array(
'eposta' => $uye_eposta,
'sifre' => $uye_sifre
)
);
$uyesorprint = $uyesor->fetch(PDO::FETCH_ASSOC);
$say = $uyesor->rowCount();
if ($say > 0) {
$_SESSION['uye_mail'] = $uyesorprint['uye_mail'];
$_SESSION['uye_ad'] = $uyesorprint['uye_ad'] . $uyesorprint['uye_soyad'];
if ($_GET['sepet'] == 'ok') {
header('Location:../sepet');
} else {
header('Location:../index.php');
}
} else {
header('Location:uye-girisi?durum=no');
}
}
} else {
header('Location:uye-girisi?bot=no');
}
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
hocam site linkini nasıl ekliyorsunuz ve kullanımı şu şekilde kapın
bir foksiyon olarak
function reCaptcha($response)
{
$fields = [
'secret' => 'xxx', //Gizli Anahtar
'response' => $response
];
$ch = curl_init('https://www.google.com/recaptcha/api/siteverify');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($fields),
CURLOPT_RETURNTRANSFER => true
]);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
Post işleminde kullanım
$site_anahtari = 'xxx'; // site anahtarı
$result = reCaptcha($site_anahtari);
if ($result['success'] === false){
echo 'Ben robot değilim seçeneğini işaretleyin!';
} else {
echo 'işlem başarılı';
}