ساخت اشتراک خبرنامه ایمیل با PHP و MySQL

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

ساخت اشتراک خبرنامه ایمیل با PHP و MySQL

اشتراک خبرنامه, قابلیت متداولی است که در وبسایت یا وبلاگ ها استفاده می شود.

در این آموزش php قصد داریم به شما نحوه ساخت اشتراک خبرنامه ایمیل با PHP و MySQL را نشان بدیم.

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

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

 

در این مثال از اسکریپت ساخت اشتراک خبرنامه ایمیل با PHP و MySQL موارد زیر پیاده سازی می شود:

  1. ساخت یک فرم اشتراک (subscription) با HTML
  2. افزودن اطلاعات مشترکین به دیتابس با PHP و MySQL
  3. ارسال لینک فعالسازی به ایمیل
  4. تایید مشترکین با ایمیل

قبل از شروع ساخت اشتراک خبرنامه ایمیل با PHP و MySQL نگاهی به ساختار فایل ها بیاندازید.

/email_subscription_with_php

├── config.php

├── index.html

├── subscription.php

├── Subscriber.class.php

├── js/

│   └── jquery.min.js

└── css/

└── style.css

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

به منظور ذخیره اطلاعات مشترکین, نیاز به جدولی در دیتابیس داریم.

کد SQL زیر یک جدول subscribers در دیتابیس MySQL ایجاد می کند.

 

کلاس Subscriber

کلاس Subscriber به ما در اتصال به دیتابیس و مدیریت عملیات مربوط به دیتابیس کمک می کند.

  1. _construct()– اتصال به دیتابیس MySQL
  2. getRows() – دریافت رکوردها از دیتابیس
  3. Insert() – افزودن رکورد جدید به دیتابیس
  4. Update() – بروزرسانی رکورد در دیتابیس
  5. Delete() – حذف رکوردها از دیتابیس

 

تنظیمات سایت و پیکربندی دیتابیس (config.php)

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

  • $siteName – نام سایت
  • $siteEmail – ایمیل ارسال کننده
  • DB_HOST– هاست دیتابیس (پیش فرض : localhost)
  • DB_USERNAME – نام کاربری دیتابیس
  • DB_PASSWORD – رمزعبور دیتابیس
  • DB_NAME – نام دیتابیس

 

فرم اشتراک ایمیل

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

 

سابمیت فرم اشتراک

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

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

با سابمیت, داده های فرم با jQuery و Ajax ارسال می شوند.

  • ورودی های نام و ایمیل توسط Regex در جی کوئری اعتبارسنجی می شوند.
  • داده های فرم با متد $.ajax() به اسکریپت سمت سرور (php) ارسال می شوند.

بر اساس پاسخ برگشتی, وضعیت به کاربر نمایش داده می شود.

 

افزودن اطلاعات مشترک به دیتابیس (subscription.php)

اگر درخواست اشتراک ایمیل (subscribe) دریافت شد :

  • داده ها از آرایه سراسری $_POST در PHP خوانده می شود.
  • بر روی ورودی های فلید فرم با اعتبارسنجی سمت سرور PHP انجام می شود.
  • با تابع getRows() از کلاس Subscriber بررسی می کند که ایمیل قبلا ثبت نشده باشد.
  • اطلاعات مشترک را با تابع insert() از کلاس Subscriber در دیتابیس ذخیره می کند.
  • ایمیل تایید را با PHP ارسال می کند. (ارسال ایمیل با php)
  • پاسخ را در فرمت کدشده jSON برگشت می دهد.

 

تایید ایمیل (subscription.php)

اگر درخواست تایید ایمیل (email_verify) دریافت شد :

  • با بررسی کد اعتبارسنجی, عملیات تایید مشترک را انجام می دهد.
  • وضعیت اعتبارسنجی را با تابع update() از کلاس Subscriber بروزرسانی می کند.
  • وضعیت اعتبارسنجی ایمیل را به کاربر نمایش می دهد.

 

جمع بندی

اسکریپت اشتراک ایمیلی به شما کمک می کند که به راحتی قابلیت اشتراک خبرنامه را به وبسایت یا پروژه خود اضافه کنید.

اشتراک ایمیل و قابلیت اعتبارسنجی بدون رفرش صفحه کار می کند و باعث می شود این فرایند کاربرپسند باشد.

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

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

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

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

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

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

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

    آقای مهدس تو ذخیره فرم مشکلی ندارم . تو زمان ارسال خبرنامه موندم ک جچوری وقتی اپدیت جدید میاد این فیلدها ک هر کودوم چند انتخابی هستن رو مطابقت بدم تا اگر درست بود اعلان ایمیل بشه ب کاربر

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

      دستور sql باید از شرط های where و or استفاده کنید

      پاسخ
  2. محمدحسین پدرام ۲۴ خرداد ۱۴۰۲

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

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

      برای هر فیلد که نیازه جداگانه باید تو جدول, ستون بسازید تا بشه همه بخش ها رو ذخیره کرد

      پاسخ
  3. محمدحسین پدرام ۲۴ خرداد ۱۴۰۲

    سلام آموزش مثل همیشه عالی هست . یک سوال داشتم . ار اشتراک خبرنامه رو بخواهیم بر اساس کلمات خاص یا دسته بندی خاص فعال کنیم به صورتیکه کاربر در فرم چندین گزینه رو انتخاب کنه و هر موقع پستی در سایت با اون گزینه های انتخابی کاربر منتشر شد ایمیل براش ارسال بشه . یک راهنمایی میفرمایید ؟

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

      سلام. ممنون
      خوشحالیم که مفید واقع شده
      برای هر مورد یه ستون در جدول خبرنامه میسازید و بعد بصورت select option یا چک باکس امکان انتخاب رو به کاربر میدید

      پاسخ
  4. مهدی ۱۴ آبان ۱۴۰۰

    سلام ، این اسکریپت در یک سایت واقعی هم کار میکن ؟
    آخه من شنیدم که تابع mail در هاست واقعی کار نمیکنه
    و ارسال ایمیل به تعداد زیاد چطوره؟
    من الان یک ماهه تو یادگیری ارسال خبرنامه موندم و به هیچ نتیجه ای هم نرسیدم
    لطفا یه راهنمایی برادرانه به من کنید 🙂

    پاسخ
    1. حسن شفیعی ۱۶ آبان ۱۴۰۰

      سلام. بله کار می کنه ولی خب برای تعداد زیاد مطمینا محدودیت دارید که یا باید از سایت هایی مثل https://mailerlite.com اشتراک بگیرید یا اینکه سرور smtp تهیه کنید

      پاسخ
  5. قاسم ۲۴ شهریور ۱۴۰۰

    سلام، ممنون از آموزش تون، چرا فایل برای دانلود هم نگذاشتید؟

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

      سلام. خوشحالیم که مفید واقع شده.
      متاسفانه فایل zip از سرور حذف شده و فقط کدها در پست وجود دارند که باید هر کد رو طبق ساختاری که اول آموزش توضیح دادیم داخل فایل های مربوطه قرار بدید تا کد شما تکمیل بشه

      پاسخ
  6. Amir ۲۶ اردیبهشت ۱۳۹۹

    سلام خسته نباشید
    در قسمت آموزش شما در دو جا کد برای فایل subscription.php نوشتید، من یکم گیج شدم الان دقیقا کدوم رو باید بنویسم؛ الان من جفتشون رو توی فایل قرار دادم اصلا کار نمیکنه !!!!

    پاسخ
    1. حسن شفیعی ۲۶ اردیبهشت ۱۳۹۹

      سلام ممنون. شما باید شرط مربوط به تایید ایمیل را که داخل یک if هست را به کد قبلی اضافه کنید و هر دو محتوای فایل subscription هستند.
      منظور از کار نکردن را باید دقیق بگید که چه اروری دریافت می کنید تا بتونیم راهنمایی کنیم

      پاسخ
  7. Mohammad javad ۵ اردیبهشت ۱۳۹۹

    برای اپلود کردن وردپرس روی هاست باید تمام فایل هارو اپلود کنم ؟؟

    پاسخ
    1. حسن شفیعی ۶ اردیبهشت ۱۳۹۹

      بله. حتما تمامی فایل ها را آپلود کنید

      پاسخ
  8. Mohammad javad ۳ اردیبهشت ۱۳۹۹

    سلام
    چطوری فرم ارسال ایمیل متصل به دیتابیس درست کنم

    پاسخ
    1. حسن شفیعی ۴ اردیبهشت ۱۳۹۹

      سلام. همین آموزش دقیقا اون چیزی که می خواید هست.

      پاسخ
      1. Mohammad javad ۴ اردیبهشت ۱۳۹۹

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

        پاسخ
      2. حسن شفیعی ۴ اردیبهشت ۱۳۹۹

        منظور همین پستی که نظر دادید آموزشی هست که نیاز دارید

        پاسخ
  9. محمد معین ۷ اسفند ۱۳۹۸

    خیلی خوبه ولی کاشکی سورسش رو هم بزارین

    پاسخ
    1. حسن شفیعی ۸ اسفند ۱۳۹۸

      سلام.
      اگر طبق آموزش برید و ساختار رو هم رعایت کنید که بصورت تصویر قرار داده شده و تمامی کدها هم با نام فایل ها روی آن ها نوشته شده کنار هم بچینید سورس کامل بدست میاد که کمتر از ۱۰ دقیقه می تونید این کار رو انجام بدید.
      موفق باشید.

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