v2.5.2
Giriş yap

Php function içinde database select işlemi

erdem
750 defa görüntülendi

Merhaba Tayfun Erbile'nin geçmişte yaptığı bir recaptcha videosunda şöyle bir kod vardı ben bunu admin panelden kontrol edilebilir hale yani kodları dinamik hale getirmek istiyorum.
Dinamik hale getirmek istediğim kısım ('secret' => '6Ld4b9kZAAAAABCYWhu1kGLIlR-JuqcA3OsxFEWT').
Bi türlü fonksiyonun içindeki o secret alanına etki edemiyorum dinamik olması için function dışında da içinde de
sql sorgusu yazdım ama görmüyor hata veriyor.

function reCaptcha($response) {

	$fields = [
		'secret' => '6Ld4b9kZAAAAABCYWhu1kGLIlR-JuqcA3OsxFEWT',
		'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);

	}
Cevap yaz
Cevaplar (3)
erdem
1493 gün önce

Sonunda yaptım :) mesele reCaptcha fonksiyonunu çalıştırırken sadece $response değerini yazmamdan kaynaklıymış


function reCaptcha($response, $secretRec) {

	$fields = [
		'secret' => $secretRec,
		'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);

	}
	
	if (!isset($_POST['g-recaptcha-response']) || empty($_POST['g-recaptcha-response'])) {
   		$error = "Güvenlik adımını doğrulayın";
   	} else {
    
        // select() fonksiyonu OOP ile yazıldığı için fonksiyonlardan geliyor normalde mysli deki query() olarak yazılırdı..
    
   		$queryRecaptcha = "SELECT * FROM webset";
	    $postRecaptcha  = $db->select($queryRecaptcha);
	    $report = "";

    	if ($postRecaptcha) { 

    		 $resultRecaptcha = $postRecaptcha->fetch_assoc();
    		 $qRecaptcha .= $resultRecaptcha['recaptcha2'];
    	}
    	$myRecaptcha = $report;
    	
    	//mesele buradaki reCaptcha() içine 2 parametre girmediğimden kaynaklıymış o yüzden hata veriyormuş $myRecaptcha'yı ekleyince oldu.
    	
   		$result = reCaptcha($_POST['g-recaptcha-response'], $myRecaptcha);
		if ($result['success'] == 1) {
			$query = "INSERT INTO contact(username, email, body) VALUES ('$username', '$email', '$body')";
            $inserted_rows = $db->insert($query);
            if ($inserted_rows) {
                $msg = "Mesaj başarıyla gönderildi.";
            } else {
                $error = "Mesaj gönderilemedi";
            }
		} else {
			$error = "Recaptcha sıkıntılı!";
		}
       
    }
	
erdem
1493 gün önce

tamam bunuda denedim hata verdi bana tam olarak mysqli ile birlikte bi sorgu yazabilirmisin ? tablo adı webset çekeceğim kısım recaptcha olsun nereye yazcam bu sqli
function reCaptcha nın içinemi dışınamı her ikisinide yaptım ama hata verdi.

zeta
1493 gün önce

function reCaptcha($response, $secretKey) {

$fields = [
	'secret' => $secretKey,
	'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);

}