برنامه نویسی

نحوه ساخت فرم تماس سریع و ایمن PHP با Recaptcha v3

یک فرم تماس با بار سریع و ایمن برای هر وب سایت ضروری است ، اما بسیاری از آموزش ها این روند را بیش از حد ترکیب می کنند.

در این راهنما ، من به شما نشان می دهم که چگونه می توانید یک فرم تماس با PHP سبک با Google Recaptcha V3 بسازید تا از هرزنامه ای بدون نفع غیر ضروری جلوگیری کنید.

این فرم ساده ، ایمن و سفارشی سازی آسان است. به علاوه ، می توانید کد کار کامل را از مخزن GitHub من در اینجا بگیرید.


چرا از فرم PHP سفارشی استفاده می کنیم؟

بسیاری از سازندگان و افزونه های وب سایت راه حل های فرم ارائه می دهند ، اما آنها اغلب با کمبودهای همراه هستند:

  • بارهای صفحه آهسته تر به دلیل اسکریپت های بیش از حد.
  • خطرات امنیتی بالاتر با ارسال های تأیید نشده.
  • سفارشی سازی کمتر در مقایسه با یک فرم با کد دستی سبک.

یک فرم کدگذاری شده دستی ، سرعت ، امنیت و کنترل کامل بر عملکرد آن را تضمین می کند. اینجا را ببینید.


تنظیم فرم تماس

ایجاد فرم (index.html)

با یک فرم HTML ساده شروع کنید که ورودی کاربر را به یک اسکریپت PHP ارسال می کند.


 lang="en">

     charset="UTF-8">
     name="viewport" content="width=device-width, initial-scale=1.0">
    </span>Contact Form<span class="nt"/>
<span class="nt"/>
<span class="nt"/>
    <span class="nt"><h2/></span>Contact Us<span class="nt"/>
    <span class="nt"/>

    <span class="nt"><script><![CDATA[<span class="na">src=]]></script></span><span class="s">"https://www.google.com/recaptcha/api.js?render=your-recaptcha-site-key"</span><span class="nt">></span>
    <span class="nt"><script/></span>
        <span class="nx">grecaptcha</span><span class="p">.</span><span class="nf">ready</span><span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
            <span class="nx">grecaptcha</span><span class="p">.</span><span class="nf">execute</span><span class="p">(</span><span class="dl">'</span><span class="s1">your-recaptcha-site-key</span><span class="dl">'</span><span class="p">,</span> <span class="p">{</span> <span class="na">action</span><span class="p">:</span> <span class="dl">'</span><span class="s1">submit</span><span class="dl">'</span> <span class="p">}).</span><span class="nf">then</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">token</span><span class="p">)</span> <span class="p">{</span>
                <span class="nb">document</span><span class="p">.</span><span class="nf">getElementById</span><span class="p">(</span><span class="dl">'</span><span class="s1">recaptchaResponse</span><span class="dl">'</span><span class="p">).</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">token</span><span class="p">;</span>
            <span class="p">});</span>
        <span class="p">});</span>
    <span class="nt"/>
<span class="nt"/>
<span class="nt"/>
</span></span></span></code></pre>
<div class="highlight__panel js-actions-panel">
<div class="highlight__panel-action js-fullscreen-code-action">
    <svg xmlns="http://www.w3.org/2000/svg" width="20px" height="20px" viewbox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"><title>حالت تمام صفحه را وارد کنید
    

از حالت تمام صفحه خارج شوید

تعویض کردن your-recaptcha-site-key با کلید سایت واقعی Google Recaptcha v3.


پردازش فرم (send_email.php)

یک اسکریپت PHP ایجاد کنید که recaptcha را تأیید کند و ایمیل را ارسال کند.


if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $recaptcha_secret = "your-recaptcha-secret-key";
    $recaptcha_response = $_POST['g-recaptcha-response'];

    $recaptcha_url = "https://www.google.com/recaptcha/api/siteverify";
    $recaptcha = file_get_contents($recaptcha_url . '?secret=" . $recaptcha_secret . "&response=" . $recaptcha_response);
    $recaptcha = json_decode($recaptcha, true);

    if (!$recaptcha["success'] || $recaptcha['score'] < 0.5) {
        echo "";
        exit;
    }

    $to = "your-email@example.com";
    $subject = "New Contact Form Submission";
    $message = "Name: " . $_POST['name'] . "\nEmail: " . $_POST['email'] . "\nMessage: " . $_POST['message'];

    $headers = "From: noreply@yourwebsite.com\r\n";
    $headers .= "Reply-To: " . $_POST['email'] . "\r\n";

    if (mail($to, $subject, $message, $headers)) {
        echo "";
    } else {
        echo "";
    }
}
?>
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

تعویض کردن your-recaptcha-secret-key وت your-email@example.com با ارزش های خود شما


چرا از recaptcha v3 استفاده می کنیم؟

بر خلاف Recaptcha V2 ، که به کاربران نیاز دارد تا روی یک کادر انتخاب یا حل پازل کلیک کنند ، Recaptcha V3 به طور نامرئی در پس زمینه اجرا می شود. این یک نمره را بر اساس رفتار کاربر اختصاص می دهد ، و در عین حال به کاربران واقعی اجازه می دهد فرم را به راحتی ارائه دهند.

فرم تماس PHP سفارشی از بسیاری از گزینه های مبتنی بر پلاگین سریعتر و امن تر است. با اجرای recaptcha v3 ، شما در حالی که از یک تجربه کاربر صاف استفاده می کنید ، از سایت خود در برابر هرزنامه محافظت می کنید.

کد منبع کامل را در GitHub بگیرید: PHP-Fast-Contact-Form

اگر سؤال یا پیشنهاد دارید در نظرات به من اطلاع دهید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا