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

آموزش های زیادی وجود دارند برای ایجاد بدنه پیغام و قرار دادن آن در هدر ارسال ایمیل که میگویند بدنه پیغام را به این شکل ایجاد کنید :

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

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

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

عملکرد تابع mail در php

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

تابع mail پنج آرگومان می پذیرد

آدرس (یک یا چند مورد)

موضوع

بدنه پیام

هدرهای دلخواه ایمیل

پارامتر دلخواه اضافی

از موارد بالا دو مورد آخری دلخواه است و 3 مورد اول اجباری

ارسال فرم php با ایمیل

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

ارسال ایمیل در php با تابع mail() امکان پذیر است. فقط کافی است بر روی سرور از آن استفاده کنیم ، زیرا در محیط های آزمایشی طبیعی است که ایمیلی ارسال نشود.

حفظ ورودی فیلد هنگام ارسال ناقص فرم php

در نوشته ی حفظ ورودی کاربر هنگام ارسال ناقص فرم php که مقدمه ی این مطلب بود به نیازسنجی این مسئله و توضیح کلی پرداختم که چرا باید ورودی کاربر حفظ شود و اگر بعد از ارسال ناقص یک فرم کلیه فیلد ها خالی شود و کاربر مجبور باشد دوباره همه ی فیلد ها را پر کند چه می شود و چطور باید پیشگیری کنیم را هم به صورت کلی گفتم.

در این نوشته به تشریح آن می پردازم. همانطور که گفتم راه حل برای این مشکل ایجاد فیلدهای فرم ثابت است که در آن از یک دستور شرطی برای استخراج ورودی کاربرد از داخل آرایه ی سوپرگلوبال $_POST استفاده می کنیم و در فیلدهای ورودی متنی و ناحیه ی متنی مخصوص کامنت نمایش می دهیم.

حفظ ورودی کاربر هنگام ارسال ناقص فرم php

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

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

پردازش فرم php قسمت دوم

در اولین قسمت از پردازش فرم php آرایه های خالی برای پردازش فیلد های خالی و خطاها ساختیم. بررسی کردیم فرم ارسال شده باشد. مقصد و موضوع برای فرم خود تعیین کردیم چون قرار است فرم از طریق ایمیل ارسال شود. دو آرایه ی expected و required هم برای ممانعت از تزریق متغیر های دیگر و تعیین فیلد های اجباری ایجاد کردیم.

قسمت دوم آموزش

تا به اینجا زمینه هایی برای پردازش فرم ایجاد شده است حال نوبت به هسته ی پردازشگر است که مخصوص این فرم هم نیست و میتوان آن را در هر اسکریپت پردازش فرم دیگری اینکلود کرد. پس یک فایل دیگر به نام processmail.php ایجاد کرده و در فرم خود ، پایین تر از آرایه ی $reqeired اینکلود می کنیم.

پردازش فرم پی اچ پی

بخش اول – پردازش فرم پی اچ پی خالی نبودن فیلد ها

پردازش فیلد های خالی یا اطمینان از خالی نبودن فیلد های فرم php

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

مکان پردازش فرم php

فرم php کجا باید پردازش شود ؟

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

برای حل این مسئله از روش خودپردازش یا self-processing form استفاده می شود.

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

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

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