ساخت فرم با انتخاب شماره موبایل

ساخت فرم با انتخاب شماره موبایل و اعتبارسنجی با PHP

ساخت فرم با انتخاب شماره موبایل و اعتبارسنجی با PHP

در دنیای امروز، جمع‌آوری شماره موبایل کاربران به عنوان یکی از روش‌های اصلی ارتباطی و احراز هویت، اهمیت ویژه‌ای دارد. این مقاله به بررسی نحوه ساخت یک فرم HTML برای دریافت شماره موبایل و اعتبارسنجی آن با استفاده از PHP می‌پردازد. هدف، ارائه یک راهنمای جامع و کاربردی برای توسعه‌دهندگان وب است تا بتوانند به سادگی این قابلیت را در وب‌سایت‌ها و برنامه‌های خود پیاده‌سازی کنند.

بخش اول: طراحی فرم HTML

اولین قدم در این فرآیند، طراحی فرم HTML است. این فرم باید شامل یک فیلد ورودی برای شماره موبایل و یک دکمه ارسال باشد. برای بهبود تجربه کاربری، می‌توان از ویژگی‌های HTML5 مانند type="tel" برای فیلد شماره موبایل استفاده کرد. این ویژگی باعث می‌شود تا صفحه کلید مناسب برای ورود اعداد روی دستگاه‌های موبایل نمایش داده شود.

در کد بالا:

  • action="process.php": مشخص می‌کند که فرم پس از ارسال، به فایل process.php ارسال شود.
  • method="post": روش ارسال فرم را به صورت POST تعیین می‌کند.
  • type="tel": نوع فیلد ورودی را به عنوان شماره تلفن مشخص می‌کند.
  • id="mobile" و name="mobile": شناسه‌های فیلد ورودی هستند که برای دسترسی به داده‌ها در PHP استفاده می‌شوند.
  • pattern="[0-9]{11}": یک عبارت باقاعده (Regular Expression) است که اطمینان حاصل می‌کند که فقط اعداد و به تعداد ۱۱ رقم وارد شده باشند.
  • required: مشخص می‌کند که فیلد شماره موبایل اجباری است و کاربر باید آن را پر کند.

بخش دوم: اعتبارسنجی سمت سرور با PHP

اعتبارسنجی سمت کلاینت (با استفاده از ویژگی pattern در HTML) تنها یک لایه حفاظتی اولیه است. برای اطمینان از صحت داده‌ها، باید اعتبارسنجی سمت سرور را نیز انجام داد. این کار با استفاده از PHP انجام می‌شود. فایل process.php مسئول دریافت داده‌ها از فرم، اعتبارسنجی آن‌ها و انجام اقدامات لازم است.

کد PHP برای فایل process.php:

در کد بالا:

  • $_SERVER["REQUEST_METHOD"] == "POST": بررسی می‌کند که آیا فرم با استفاده از روش POST ارسال شده است یا خیر.
  • $_POST["mobile"]: مقدار فیلد شماره موبایل را از آرایه $_POST دریافت می‌کند.
  • preg_replace('/[^0-9]/', '', $mobile): تمام کاراکترهای غیرعددی را از شماره موبایل حذف می‌کند.
  • strlen($mobile) != 11: بررسی می‌کند که طول شماره موبایل برابر با ۱۱ رقم باشد.
  • preg_match('/^09[0-9]{9}$/', $mobile): با استفاده از یک عبارت باقاعده، بررسی می‌کند که شماره موبایل با 09 شروع شده و ۹ رقم بعدی آن عدد باشند.
  • در صورت معتبر بودن شماره موبایل، پیام موفقیت نمایش داده می‌شود و می‌توان اقدامات دیگری مانند ذخیره در پایگاه داده یا ارسال پیامک را انجام داد.

بخش سوم: بهبود تجربه کاربری

برای بهبود تجربه کاربری، می‌توان اقدامات زیر را انجام داد:

  • نمایش پیام‌های خطا: پیام‌های خطا باید واضح و قابل فهم باشند و به کاربر بگویند که چه مشکلی وجود دارد و چگونه آن را برطرف کند.
  • استفاده از ماسک ورودی: می‌توان از ماسک ورودی (Input Mask) برای فرمت کردن شماره موبایل به صورت خودکار استفاده کرد. این کار باعث می‌شود که کاربر مجبور نباشد نگران فرمت صحیح شماره موبایل باشد.
  • اعتبارسنجی در لحظه (Real-time Validation): می‌توان از جاوااسکریپت برای اعتبارسنجی شماره موبایل در لحظه استفاده کرد. این کار باعث می‌شود که کاربر قبل از ارسال فرم، از معتبر بودن شماره موبایل خود مطمئن شود.
  • استفاده از کتابخانه‌های جاوااسکریپت: کتابخانه‌های جاوااسکریپت مختلفی وجود دارند که می‌توانند به شما در ساخت فرم‌های پیچیده و اعتبارسنجی داده‌ها کمک کنند.

بخش چهارم: ملاحظات امنیتی

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

  • استفاده از HTTPS: از پروتکل HTTPS برای رمزنگاری ارتباط بین مرورگر کاربر و سرور خود استفاده کنید.
  • محافظت در برابر حملات XSS: از توابع PHP مانند htmlspecialchars() برای جلوگیری از حملات Cross-Site Scripting (XSS) استفاده کنید.
  • محافظت در برابر حملات SQL Injection: اگر شماره موبایل را در پایگاه داده ذخیره می‌کنید، از روش‌های امن برای جلوگیری از حملات SQL Injection استفاده کنید.
  • محدود کردن دسترسی: دسترسی به فایل process.php را فقط به کاربران مجاز محدود کنید.

بخش پنجم: ذخیره سازی اطلاعات در پایگاه داده

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

جدول کاربران:

  • id (INT, PRIMARY KEY, AUTO_INCREMENT)
  • mobile (VARCHAR(11), UNIQUE)
  • created_at (TIMESTAMP)

کد PHP برای ذخیره شماره موبایل در پایگاه داده (با فرض استفاده از MySQLi):

connect_error) {
die(“Connection failed: ” . $conn->connect_error);
}

// بررسی وجود شماره موبایل در پایگاه داده
$sql = “SELECT id FROM users WHERE mobile = ‘$mobile'”;
$result = $conn->query($sql);

if ($result->num_rows > 0) {
echo “این شماره موبایل قبلاً ثبت شده است.”;
} else {
// درج شماره موبایل در پایگاه داده
$sql = “INSERT INTO users (mobile, created_at) VALUES (‘$mobile’, NOW())”;

if ($conn->query($sql) === TRUE) {
echo “شماره موبایل شما با موفقیت ثبت شد.”;
} else {
echo “Error: ” . $sql . “
” . $conn->error;
}
}

$conn->close();
}
?>

این کد ابتدا به پایگاه داده متصل می‌شود، سپس بررسی می‌کند که آیا شماره موبایل قبلاً در پایگاه داده وجود دارد یا خیر. اگر شماره موبایل وجود نداشت، آن را در جدول کاربران درج می‌کند.

نتیجه‌گیری

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