متد get و post در فرم php

متد get و post در فرم phpبگذارید این مطلب را عملی تر پیش ببریم. برای این که به تفاوت های بین get و post در php پی ببرید بهتر است از یک فرم واقعی استفاده کنید.

برای استفاده از متد بایستی در تگ form مقدار خاصیت method را تعیین کنیم

متد get

خب فرم خود را با متد get ذخیره کرده و مقادیری را وارد کنید و روی ارسال کلیک کنید.

در این متد اگر نگاهی به نوار آدرس مرورگر بیندازید می بینید که محتویات فرم به انتهای آدرس چسبیده اند.

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

متد post

فرم خود را با متد Post ذخیره کرده ، مقادری را وارد کرده و ارسال می کنیم. با باز شدن صفحه می بینیم که پیغام ناپدید شده است. ورودی ها گم نشده اند ، بلکه هنوز پردازش نشده اند.

برای این که بفهمیم چه بلایی به سر ورودی ها آمده کد زیر را به انتهای فرم اضافه می کنیم ( جایی که تگ <form/> بسته شده است).

این کد باعث می شود اگر داده ها از نوع post ارسال شده اند محتویات آرایه سوپرگلوبال $_POST نمایش داده شوند. تابع print(r) به شما اجازه می دهد تا محتویات آرایه ها را بررسی کنید. تگ های <pre> هم برای خواندن آسان خروجی هستند.

با انجام این کار محتویات پیام در پایین صفحه نمایش داده می شود و می بینید که همه ی ورودی ها درون آرایه ی سوپر گلوبال php به نام $_POST ذخیره شده اند. این آرایه حاوی داده های ارسال شده توسط متد post است که خاصیت name هر عنصر فرم را به عنوان کلید آرایه و مقادیر وارد شده در فرم را به عنوان مقدار هر کلید ذخیره کرده است.

تفاوت متد های GET و POST

متد get داده های شما را به صورتی بر میگرداند که در آدرس صفحه در معرض دید است و باعث می شود بتوان آن را تغییر داد. همچنین اگر مرورگری محدودیت طول کاراکتر در url قائل شده باشد شما نمی توانید مقادیر طولانی را با این متد ارسال کنید. متد get تنها برای مقادیر کوچک می تواند استفاده شود.

متد Post امن تر است و می توان از آن برای داده های بزرگتر استفاده کرد.به صورت پیشفرض php اجازه ی ارسال حداکثر 8 مگابایت داده را با استفاده از متد post می دهد.

دریافت داده های یک فرم با سوپرگلوبال های php

همانطور که آرایه سوپرگلوبال $_POST حاوی داده های ارسال شده توسط متد POST است داده های ارسال شده توسط متد GET نیز در آرایه ی $_GET ذخیره می شود.

برای دسترسی به مقادیر ارسال شده ی فرم کافی است خاصیت name عنصر فرم را در بین کوتیشن و درون براکت بعد از $_GET یا $_POST قرار دهید.

مثلا در متد post مقدار email از طریق کد زیر قابل دسترسی است

ممکن است با اسکریپت هایی مواجه شوید که از $_REQUEST استفاده می کنند که در آن نیازی به تمایز بین post و get وجود ندارد اما امنیت آن کمتر است ( صرفا جهت آشنایی گفتم )

این یک متد قدیمی است که روی اغلب سرور ها کار نمی کند.

نتیجه گیری :

معمولا از متد post برای فرم ها استفاده می شود. متد get اغلب برای جستجوهای پایگاه داده استفاده می شود زیرا به کاربر اجازه می دهد تا نتیجه ی جستجو را بوکمارک کند، چون داده ها درون url وجود دارند.

در سلسله مطالبی که راجع به فرم ها در php منتشر می کنم از متد post استفاده میکنم و از آرایه ی سوپرگلوبال $_POST استفاده می کنم.

راستی صحبت از امنیت شد، با این که متد post امنتر از متد get است اما نمی شود آن را 100% امن دانست ، برای انتقال امن تر موارد حساس مانند انتقال مالی باید از ssl استفاده شود.

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

پاسخ دهید

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

18 + پنج =