تایید شماره موبایل با SMS در PHP

  • آپدیت شده در تاریخ

تایید شماره موبایل با SMS در PHP

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

بنابراین ما هم می توانیم در سیستم لاگین کاربر با تایید پیامک ارسالی به کاربر حتی بدون استفاده از رمزعبور دایمی , احراز هویت با پبامک در PHP انجام بدیم.

در این آموزش PHP , قصد داریم به شما نحوه پیاده سازی تایید شماره موبایل با SMS در PHP که یک رمز یکبار مصرف (OTP) را ارسال می کند, به شما نشان بدیم.

 

ما از سرویس پنل پیامک (payamak-panel.com) استفاده می کنیم. که در بخش وب سرویس (API) می توانیم نمونه کدها و داکیومنت را ببنیم.

همچنین یک پنل پیامکی دیگری از sms.ir داریم که من فقط کدهای نمونه و نحوه استفاده از آن را در قالب یک مثال به همراه سورس کد این پست قرار میدم تا بتونید استفاده کنید.

توجه : بعضی از پنل های پیامکی امکان ارسال پیامک صوتی را هم دارند که خب مطمینا نرخ آنها بالاتر از SMS است.

مراحل زیر برای پیاده سازی تایید شماره موبایل با SMS در PHP دنبال خواهد شد.

  • ایجاد کد اعتبارسنجی تصادفی
  • ارسال کد OTP پنج رقمی به کاربر با استفاده از سرویس API پنل SMS و اضافه کردن آن به دیتابیس
  • تایید کد ارسال به شماره همراه کاربر و بروزرسانی وضعیت آن در دیتابیس
  • نمایش وضعیت اعتبارسنجی پیامکی به کابر

 

ساخت جداول دیتابیس

برای ذخیره کد یکبار مصرف (OTP) و اعتبارسنجی وضعیت, نیاز به ساخت یک جدول در دیتابیس MySQL داریم.

با کد SQL زیر می توانید جدول mobile_numbers به همراه چند ستون ابتدایی را ببینید.

کلاس اتصال به دیتابیس (DB.class.php)

کلاس DB تمام عملیات مربوط به (واکشی, قرار دادن و بروزرسانی) را مه مربوط به دیتابیس است انجام می دهد

برای دیدن تمام کدهای این کلاس لطفا از باکس دانلود, سورس کد را دریافت کنید.

توابع زیر برای fetch, insert, update اطلاعات OTP در دیتابیس استفاده شده اند.

  • __construct() – اتصال و انتخاب دیتابیس
  • checkRow() – بررسی می کند که آیا رکوردی مبنی بر شرط برقرار شده در جدول mobile_numbers وجود دارد یا خیر. اگر وجود داشته باشد true و در غیر اینصورت false را برگشت می دهد.
  • Insert() – داده ها در در جدول mobile_numbers اضافه می کند.
  • Update() – داده ها را بر اساس شرط, در جدول mobile_numbers بروزرسانی می کند.

فرم احزار هویت موبایل

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

ثبت و اعتبارسنجی کد اعتبارسنجی (OTP)

بعد از ارسال (submit) , شماره موبایل و رمزعبور یکبار مصرف توسط درگاه SMS در PHP اعتبارسنجی می شود.

  • sendSMS() یک تابع سفارشی است که با آن به وب سرویس پنل پیامکی متصل و SMS را ارسال می کنیم. (آموزش ارسال SMS با PHP)
  • یک نمونه از کلاس DB را برای مدیریت عملیات مربوط به دیتابیس ایجاد می کنیم.

زمانی که شماره موبایل کاربر ثبت شد, عملیات زیر انجام می شود.

  • یک کد تصادفی برای اعتبارسنجی با تابع rand() در PHP ایجاد می شود.
  • از متد checkRow() از کلاس DB برای بررسی اینکه آیا شماره همراه قبلا در دیتابیس وجود دارد یا خیر استفاده می کنیم.
  • اگر موجود بود, فقط verification_code را در دیتابیس با متد update() در کلاس DB آپدیت می کنیم.
  • اگر شماره موبایل موجود نبود, داده های OTP را با متد insert() از کلاس DB , در دیتابیس اضافه می کنیم.
  • کد OTP را توسط تابع sendSMS() به شماره همراه کاربر ارسال می کنیم.
  • اگر ارسال پیامک به کاربر موفقیت آمیز بود, فیلد ورودی OTP فعال خواهید شد.

 

زمانی که کد توسط کاربر وارد و ارسال شد:

  • کد OTP وارد شده توسط کاربر را بررسی می کنیم که صحیح است یا خیر.
  • وضعیت اعتبار سنجی کاربر در دیتابیس (فیلد verified) را بروزرسانی می کنیم.

وضعیت اعتبارسنجی

اگر شماره موبایل کاربر به موفقیت اعتبارسنجی شده باشد, پیام وضعیت زیر را نمایش می دهیم.

تایید شماره موبایل با SMS در PHP

امیدوارم از آموزش تایید شماره موبایل با SMS در PHP نهایت استفاده را برده باشید.

برای دانلود سورس کد کامل از باکس دانلود زیر استفاده کنید.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۹۸)

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

  1. عادل ۱۱ خرداد ۱۴۰۲

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

    پاسخ
    1. حسن شفیعی ۱۱ خرداد ۱۴۰۲

      سلام. متاسفانه خیر
      هر موردی بود میتونید از بخش تیکت پنل کاربری یا ایمیل سایت ارسال کنید

      پاسخ
  2. زهرا دلاوری ۱۹ مهر ۱۴۰۱

    با سلام
    در فرم ثبت نام با کد یکبار مصرف موبایل ایا نیاز هست شماره موبایل کاربر یا کد یکبار مصرف که به سمت سرور پیامک ارسال میشه رمز گذاری بشه یا نه؟

    پاسخ
    1. حسن شفیعی ۱۹ مهر ۱۴۰۱

      سلام.
      نه نیازی نیست

      پاسخ
  3. samira padidar ۳ آذر ۱۴۰۰

    سلام فایل functions.php رو از کجا بیاریم؟؟؟؟

    پاسخ
    1. حسن شفیعی ۳ آذر ۱۴۰۰

      سلام.
      سورس کد رو از آخر همین پست بخش دانلود باکس دریافت کنید

      پاسخ
  4. حسینی ۲۴ مهر ۱۴۰۰

    سلام و عرض ادب
    اگه بخوایم مثل دیجی کالا باشه چطور باید اجرا بشه ؟
    یعنی کاربر شماره موبایل رو وارد میکنه و کد براش ارسال میشه ، اگر عضو بود وارد میشه اگه عضو نبود ، عضو میشه . یه جورایی عضویت و ورود با یم فرم واحد انجام میشه و نیازی به رمز عبور نیست و همون کد یکبار مصرف کافیه
    ممنونم از راهنماییتون

    پاسخ
    1. حسن شفیعی ۲۴ مهر ۱۴۰۰

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

      پاسخ
      1. حسینی ۲۴ مهر ۱۴۰۰

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

        پاسخ
      2. حسن شفیعی ۲۴ مهر ۱۴۰۰

        دقیقا درسته روند به همین سادگی که گفتید هست

        پاسخ
دوره های آموزشی