بررسی و اعتبارسنجی ایمیل با JavaScript و PHP

همیشه افرادی پیدا می‌شوند که با وارد کردن اطلاعات جعلی ما را به زحمت می‌اندازند و فرم‌های تحت وب ما را به محلی برای دریافت اسپم تبدیل می‌کنند.

یکی از راهکارهای ابتدایی و ساده برای جلوگیری از این دست اسپم‌ها و سخت‌تر کردن کار برای اسپمرها، امن کردن ورودی فرم‌های تحت وب است که برای این کار، راه‌های متنوعی پیش روی ما قرار دارد.

امروز نحوه‌ی بررسی اطلاعات ورودی در فیلد ایمیل را بررسی خواهیم کرد و اینکه چگونه می‌توانیم کاربر را وادار به وارد کردن فرمت صحیحی از ایمیل در یک فیلد ورودی بکنیم و در صورتی که کاربر فرمت صحیح را وارد نکرد، پیغام مناسبی را به او نمایش دهیم؟ (لازم به ذکر است که روش‌هایی که در ادامه گفته خواهند شد، روش‌هایی ساده و ابتدایی هستند که صرفاً بر روی بررسی فرمت صحیح ایمیل کنترل دارند و فقط جزء کوچکی از فرم ما را تحت پوشش قرار خواهند داد).

برای این کار در این نوشته دو روش را بررسی می‌کنیم.

روش اول: با استفاده از جاوا اسکریپت و کدهای Client Side


<html>
<head>
<script language="javascript">
function checkEmail() {

var email = document.getElementById('txtEmail');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}
</script>
<title>Webdata JavaScript Email Validation Tutorial</title>
</head>
<body>
<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='Javascript:checkEmail();'/>
</body>
</html>

توسط کد و فانکشن checkEmail، در صورتی که کاربر فرمت صحیحی از ایمیل را در فیلد ورودی وارد نکند، با پیغامی مبنی بر عدم صحت ایمیل مواجه می‌شود و از ارسال شدن فرم جلوگیری می‌کند.

ویژگی: این کد به صورت ClientSide عمل کرده و هیچ باری بر روی سرور ندارد.

عیب: کاربر با غیرفعال کردن جاوا اسکریپت در مرورگر خود می‌تواند از این مرحله عبور کند.

روش دوم: با استفاده از فانکشن PHP


<?php
$email='youremail@webdata.in';
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo 'Please provide a valid email address';
}
?>

فانکشن فوق هم به راحتی به بررسی ایمیل ورودی می‌پردازد و در صورتی که فرمت صحیحی از ایمیل وارد نشده باشد، پیغام مناسبی را به کاربر نشان می‌دهد.

ویژگی: این کد به صورت ServerSide اجرا می‌شود و کاربر ناچار است حتماً فرمت صحیح ایمیل را وارد نمایید.

عیب: نسبت به روش ClientSide، این روش سرباری بر روی سرور است.