نحوه ساخت فرم تماس سریع و ایمن 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">
Contact Form
Contact Us
"https://www.google.com/recaptcha/api.js?render=your-recaptcha-site-key">
grecaptcha.ready(function() {
grecaptcha.execute('your-recaptcha-site-key', { action: 'submit' }).then(function(token) {
document.getElementById('recaptchaResponse').value = token;
});
});
تعویض کردن 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
اگر سؤال یا پیشنهاد دارید در نظرات به من اطلاع دهید!