v2.5.2
Giriş yap

Php function içinde database select işlemi

erdem
764 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);

	}
erdem
1526 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ı!";
		}
       
    }