منتديات هرقلة ستار

أوقات الصلاة في تونس
🕌 أوقات الصلاة في تونس
جاري تحميل التاريخ...






اضافة رد جديد اضافة موضوع جديد


  • تطوير Pbboard
24-10-2023 11:51

معلومات الكاتب ▼
إنضم في : 24-03-2022
رقم العضوية : 1
المشاركات : 852
الدولة : تونس
قوة السمعة : 100
Description de l'image
في هذا الشرح سنتطرق لإضافة خاصية Google Recaptche في المنتدى وذلك لزيادة الحماية من السبام 

1️⃣ لابد من أن يكون لديك حساب Google
2️⃣ إتباع وتطبيق الخطوات الموضحة في الصور التالية 

شرح إضافة RECAPATCHA لمنع تسجيل السبام

نختار الخيار الموضح في الصورة التالية 

شرح إضافة RECAPATCHA لمنع تسجيل السبام

شرح إضافة RECAPATCHA لمنع تسجيل السبام

شرح إضافة RECAPATCHA لمنع تسجيل السبام

نضغط على زر Envoyer وسيتم تحويلنا لصفحة أخرى تحوي أكواد خاصة بالموقع
✅ نقوم بنسخ الأكواد لإستخدامها في ما بعد

شرح إضافة RECAPATCHA لمنع تسجيل السبام
شرح إضافة RECAPATCHA لمنع تسجيل السبام

☷ ☷ ☷ ☷المرحلة الثانية وهي دمج الأكواد في القوالب☷ ☷ ☷ ☷
1️⃣ من لوحة الإدارة نقوم بفتح قالب register ونبحث عن الكود التالي 


CODE
{if {$_CONF['info_row']['captcha_o']} == 1 }
{if {$_CONF['info_row']['captcha_type']} == 'captcha_IMG'}
[color=#808080]<dl>
<dt></dt>
<dd class="row1 wd40" rowspan="2">{$lang['Image_Verification']}<br />
<span class="smallfont">{$lang['Verification']}</span></dd>
<dd class="row1 wd31">
<input name="code" id="code_confirm" class="max-input" type="text" size="5" dir="ltr"/>
<img id="turing" src="includes/captcha.php" alt="captcha" />
<input type="button" class="button button_b" value="{$lang['Image_replacement']}" onclick="updateImg()">
<script type='text/javascript'>
var clicks = 0;
function updateImg()
{
clicks++
var doc = document.getElementById("turing");
doc.src = "includes/captcha.php" + "?act=" + clicks;
}
</script></dd>
</dl>
{else}
<dl>
<dt></dt>
<dd class="row1 wd40" rowspan="2">{$lang['random_question']}</dd>
<dd class="row1 wd60">
<span class="smallfont" dir="ltr" title="{$lang['question']}">
{$question}
<u title="{$lang['correct_answer']}">
{$answer}</u></span>
<br />
<input name="code" id="code_confirm" class="max-input" type="text" size="40" dir="{$_CONF['info_row']['content_dir']}" />
<input value="{$answer}" type="hidden" name="code_answer" id="code_answer" class="max-input" />
</dd>
</dl>
{/if}
{/if}[/color] 

نضيف أسفله الكود التالي


CODE
<!--recaptcha-->
 <dt></dt>
 <dd class="row1 wd40" rowspan="2">التحقق من الرمز البشري<br />
 <span class="smallfont">{$lang['Verification']}</span></dd>
 <dd class="row1 wd31">
     <div class="g-recaptcha" data-sitekey="clé du site"></div></dd></dd>
 </dl>
 <!--recaptcha--> 


💡 مراعاة إستبدال clé du site بالكود السابق الذي قمنا بنسخه

2️⃣ في ملف index.php الموجود في جذر المنتدى نبحث عن الكود التالي 


CODE
error_reporting(E_ERROR | E_PARSE);
 define('IN_PowerBB', true);
 
 // Stop any external post request.
 if ($_SERVER['REQUEST_METHOD'] == 'POST') {
     $Y = explode('/', $_SERVER['HTTP_REFERER']);
     $X = explode('/', $_SERVER['HTTP_HOST']);
 
     if ($Y[2] != $X[0] || $Y[2] != $_SERVER['HTTP_HOST']) {
         exit('No direct script access allowed');
     } 


ونضيف أسفله الكود التالي 


CODE
// **Only validate reCAPTCHA for registration requests**
     if (isset($_GET['page']) && $_GET['page'] == 'register' && isset($_POST['register_button'])) {
         // === Google reCAPTCHA Validation ===
         $recaptcha_secret = "clé secrète"; // Replace with your actual secret key
 
         if (!isset($_POST['g-recaptcha-response']) || empty($_POST['g-recaptcha-response'])) {
             exit('reCAPTCHA verification failed. Please complete the reCAPTCHA.');
         }
 
         $recaptcha_response = $_POST['g-recaptcha-response'];
         $verify = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret={$recaptcha_secret}&response={$recaptcha_response}");
         $response_data = json_decode($verify);
 
         if (!$response_data->success) {
             exit('reCAPTCHA verification failed. Please try again.');
         }
     }
 } 


💡مراعاة إستبدال clé secrète بالكود السابق الذي قمنا بنسخه

لإضفاء مزيد من الجمالية على التحتنبيه عند عدم التأكد من الكابتشا نضبف الكود التالي في أول قالب register 

Java
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> 


ونضيف الكود التالي في آخر القالب

Java
<script>
    document.addEventListener("DOMContentLoaded", function() {
        document.querySelector("form[name='register']").addEventListener("submit", function(event) {
            var recaptcha = document.querySelector(".g-recaptcha-response").value;
            if (!recaptcha) {
                event.preventDefault(); // Prevent form submission
                Swal.fire({
  icon: "error",
  title: "خطأ أثناء التسجيل",
  text: "الرجاء تأكيد الكابتشا",
  footer: '<a href="http://localhost/forum">الرئيسية</a>'
});
            }
        });
    });
</script> 


نلاحظ بعد ذلك النتيجة النهائية لنموذج التسجيل 

شرح إضافة RECAPATCHA لمنع تسجيل السبام

في حالة عدم تأشير رمز الكابتشا يظهر لنا التنبيه التالي

شرح إضافة RECAPATCHA لمنع تسجيل السبام 
Description de l'image

اضافة رد جديد اضافة موضوع جديد




الكلمات الدلالية
إضافة ، RECAPATCHA ، لمنع ، تسجيل ، السبام ،