10 dolar ödüllü soru
8
●410
- 03-08-2023, 01:44:38Eğer belirli bir işlevi eklemek veya değiştirmek istiyorsanız, bu işlevi WordPress'in mevcut eylemlerine veya filtrelerine bağlamak gerekir. Repatche, muhtemelen "reCaptcha" olarak atıfta bulunduğunuz güvenlik öğesidir. Bu kod parçasında, parola kurtarma formuna bir reCaptcha eklemek istediğinizi varsayalım.
reCaptcha ekleme işlemini gerçekleştirelim:
1. Öncelikle, reCaptcha için Google reCAPTCHA API anahtarlarına ihtiyacınız olacak. Bu anahtarları almak için https://www.google.com/recaptcha adresini ziyaret edebilir ve site için yeni bir reCaptcha ekleyerek anahtarları elde edebilirsiniz.
2. Daha sonra, `password-recovery-form` adındaki formun içine reCaptcha alanını eklemek için aşağıdaki kodu ekleyin:
```php
<div class="g-recaptcha" data-sitekey="YOUR_RECAPTCHA_SITE_KEY"></div>
```
`YOUR_RECAPTCHA_SITE_KEY` yerine, Google reCAPTCHA'dan aldığınız site anahtarınızı koymalısınız.
3. Ardından, JavaScript'i reCaptcha ile etkinleştirmek için sayfanıza ekleyin:
```html
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
```
4. Formunuz şimdi reCaptcha ile görünüyor olmalıdır. Ancak, reCaptcha'yı sunucuya doğrulama işlemi için bir işlev eklemeniz de gereklidir. Bu işlevi `functions.php` dosyanıza veya uygun bir tema dosyasına ekleyebilirsiniz. İşte örnek bir işlev:
```php
// reCaptcha doğrulama işlevi
function custom_validate_password_recovery($user_login, $errors) {
if (isset($_POST['g-recaptcha-response'])) {
$recaptcha_response = sanitize_text_field($_POST['g-recaptcha-response']);
$secret_key = 'YOUR_RECAPTCHA_SECRET_KEY'; // Google reCAPTCHA'dan aldığınız gizli anahtar
$response = wp_remote_get("https://www.google.com/recaptcha/api/siteverify?secret={$secret_key}&response={$recaptc ha_response}");
$response_body = wp_remote_retrieve_body($response);
$result = json_decode($response_body);
if (!$result->success) {
$errors->add('recaptcha_error', __('reCaptcha verification failed.', 'your-theme-textdomain'));
}
}
}
add_action('lostpassword_post', 'custom_validate_password_recovery', 10, 2);
```
5. `YOUR_RECAPTCHA_SECRET_KEY` yerine, Google reCAPTCHA'dan aldığınız gizli anahtarınızı koymalısınız.
Bu şekilde, reCaptcha doğrulamasını eklemiş olursunuz. Artık parola kurtarma formunuza reCaptcha eklemiş olacaksınız ve kullanıcılar formu doldururken reCaptcha doğrulamasını tamamlamak zorunda kalacaklar. Doğrulama başarısız olursa, bir hata mesajı gösterilecektir. Lütfen kodu doğru bir şekilde uyarlayarak kullanın ve gerektiğinde temanızın veya eklentinizin mevcut yapılarına entegre edin.
---> Mevzu bahis $10 değil hocam chatgpt'den aldım bilginiz olsun. - 03-08-2023, 01:51:31hocam teamwiewer verin bi göz atalımok35 adlı üyeden alıntı: mesajı görüntüle
- 03-08-2023, 01:54:53Üyeliği durdurulduHocam selamlar şunu deneyin lütfen ;
Google Recaptcha için bir hesap oluşturun ve public/private key'lerinizi alın. Recaptcha kütüphanesini projenize dahil edin. Eğer projenizde yoksa, Composer veya doğrudan kütüphaneyi indirerek projenize ekleyebilirsiniz. Kodunuzu recaptcha doğrulama işlemini yapacak şekilde güncelleyin. Aşağıdaki adımlar size yol gösterebilir:
Kodun başında recaptcha işlevini çağırmak için gerekli dosyayı içe aktarın:
phpCopy code
require_once('/path/to/recaptcha/autoload.php');- Formunuzun içinde recaptcha alanını ekleyin:
<div class="g-recaptcha" data-sitekey="YOUR_PUBLIC_KEY"></div>
Şifre sıfırlama formunuzun submit işlemini işleyen PHP kodunu güncelleyin: php code
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Recaptcha doğrulaması yapılacak$recaptcha_secret = 'YOUR_PRIVATE_KEY'; $recaptcha_response = $_POST['g-recaptcha-response']; $remote_ip = $_SERVER['REMOTE_ADDR']; $recaptcha = newReCaptchaReCaptcha($recaptcha_secret); $resp = $recaptcha->verify($recaptcha_response, $remote_ip); if ($resp->isSuccess()) { // Recaptcha doğrulandı, şifre sıfırlama işlemi gerçekleştirilebilir // ... Şifre sıfırlama işlemleri ... } else { // Recaptcha doğrulaması başarısız, hata mesajı gösterebilir veya işlemi durdurabilirsiniz // Örneğin: $errors[] = 'Recaptcha doğrulaması başarısız. Lütfen tekrar deneyin.'; } } ?>