در قسمت آموزش html در فرم ها دیده شد که هدف از فرم ها و فیلدهایی که درون آن قرار می گیرد، ارسال اطلاعات به سرور است. ارسال اطلاعاتی مانند نام توسط فیلد متنی یا مقادیر دیگر که توسط فیلدهای دیگر مانند checkbox، radiobox، email، password و… ارسال می شود.

حالا زمان آن رسیده که اطلاعاتی را که توسط فرم های html ارسال شده است را با php دریافت و هرگونه اعمالی را با آن انجام دهیم.

اطلاعاتی که از عناصر html ارسال می شوند با استفاده از نام شان شناسایی می شوند که مقدار آن ها با چند متغیر دریافت می شوند. این سه متغیر با توجه به ویژگی method عنصر form می تواند یکی از سه متغیر زیر باشد:

$_GET

$_POST

$_REQUEST

در ادامه به توضیح هریک می پردازیم.

$_GET

اگر مقدار صفت method برابر GET باشد از این متغیر استفاده می شود. در این حال اطلاعات در قسمت آدر (url) برای همه قابل مشاهده است.

برای مثالی که می خواهیم بزنیم نیاز است تا دو فایل داشته باشیم که یکی حاوی کدهای html برای ارسال اطلاعات (این فایل می تواند فرمت html یا php داشته باشد. در این جا نام فایل ما first.php است) و دیگری حاوی کدهای php که مقادیر ارسالی را دریافت می کند (نام این فایل register.php است).

ابتدا فایل first.php را بررسی می کنیم:

مقدار صفت action عنصر form، نام فایل مقصدی است که مقادیر فرم به آن ارسال می شوند و کدهای php ما در آن قرار دارند.

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

کار با داده های ارسالی فرم و GET و POST در PHP

همچنین مقدار صفت method نیز get است در نتیجه پس از کامل کردن فیلدها و فشردن دکمه submit که فیلدها ارسال می شوند url به شکل زیر خواهد بود و همه چیز قابل مشاهده است:

register.php?name=Alireza&age=20&submit=ارسال

همانطور که می بینید هر فیلد دارای یک نام است و یک مقدار که توسط کاربر وارد شده است. این آدرس در فایل مقصد register.php است.

به آدرسی که در تصویر بالا نوشته شده دقت کنید:

register.php?name=Alireza&age=20&submit=ارسال

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

همانطور که گفته شد هر فیلد دارای یک نام و یک مقدار است. در این آدرس سه فیلد ارسال شده است:

name=Alireza: در این فیلد name نام فیلد و Alireza مقدار آن است.

age=20: در این فیلد نیز که برای دریافت سن می باشد age نام فیلد و 20 مقدار آن است.

ارسال=submit: برای این فیلد نیز name نام فیلد و “ارسال” مقدار آن است. این فیلد نشان دهنده ی ارسال شدن فرم است که در ادامه بیش تر از آن استفاده می کنیم. این فیلد همیشه همراه فرم ارسال می شود.

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

حال می خواهیم کدهای صفحه register.php را بنویسیم. کد های این صفحه به شکل زیر است:

خروجی:

کار با داده های ارسالی فرم و GET و POST در PHP

در کد بالا طرز استفاده از این متغیر را می بینید. شکل کلی آن به شکل زیر است:

که به جای input_name نام فیلد ارسال شده را باید نوشت و مقدار آن مقداری است که توسط فرم و توسط کاربر ارسال شده است.

$_POST

این متغیر برای دریافت مقادیر و فیلدها از فرم هایی است که مقدار صفت method آن ها برابر post باشد. تفاوت این متغیر با متغیر $_GET در این است که مقادیر ارسالی در محل آدرس مرورگر قابل مشاهده برای کاربران نیست و به صورت مخفی است.

برای اطلاعات سری همچون رمزهای عبور می توان از این مقدار برای صفت method استفاده کرد.

کد صفحه ی first.php به صورت زیر تغییر می کند اما خروجی آن در مرورگر هیچ تفاوتی با قبل ندارد:

و کد صفحه ی register.php نیز به صورت زیر تغییر می کند:

خروجی. به قسمت url مرورگر در تصویر زیر دقت کنید:

کار با داده های ارسالی فرم و GET و POST در PHP

هیچ مقداری در قسمت آدرس مرورگر قابل نمایش نیست اما خروجی آن یکسان است.

$_REQUEST

برای این متغیر فرقی نمی کند که مقدار صفت method از عنصر فرم get باشد یا post و می تواند هردو نوع این مقادیر را با یک متغیر دریافت کرد. این متغیر می تواند زمانی که مقدار صفت method را نمی دانیم به کمک ما بیاید.

کد صفحه ی first.php تغییری نمی کند زیرا همانطور که گفته شد برای این متغیر تفاوتی ندارد که مقدار صفت method چه چیزی باشد اما کد صفحه ی register.php به شکل زیر تغییر می کند: