مدیریت فرم ها در PHP
در این بخش به بررسی مدیریت فرم ها در PHP می پردازیم ، از متغیر های سراسری $_GET
و $_POST
برای جمع آوری داده های فرم ها استفاده می کنیم.
ما از فرم ها برای دریافت داده ها از سمت کاربر استفاده می کنیم، در نهایت هنگامی که این داده ها از طریق فرم به سمت سرور ارسال می شوند آنها را با زبان برنامه نویسی PHP پردازش کرده و عملیات های لازم را روی آن انجام می دهیم.
فهرست مطالب:
- یک فرم ساده HTML در PHP
- متدهای GET و POST
- چه زمانی از متد GET استفاده کنیم ؟
- چه زمانی از متد POST استفاده کنیم ؟
یک فرم ساده HTML در PHP
در مثال زیر یک فرم با دو فیلد ورودی و یک دکمه ارسال ایجاد کرده ایم:
هنگامی که کاربر فرم بالا را پر می کند و روی دکمه ارسال کلیک می کند، داده های فرم برای پردازش به یک فایل PHP به نام welcome.php
ارسال می شود. داده های فرم به صورت POST ارسال می شود.
بررسی فایل welcome.php
برای نمایش داده های ارسالی می توانید به این شکل عمل کنید:
خروجی چیزی شبیه به این خواهد بود:
Welcome Matin
Your email address is matin.boronsi@gmail.com
همین نتیجه را می توان با استفاده از روش ارسال داده ها به صورت GET نیز به دست آورد.
مثال
این مثال نیز مانند فرم مثال قبلی می باشد با این تفاوت که این بار مقدار خاصیت method را به get تغییر داده ایم تا داده ها به صورت HTTP GET ارسال شوند:
همچنین کد های فایل welcome_get.php
به این شکل است:
کد های بالا خیلی ساده و ابتدایی خروجی را به کاربر نمایش می دهد، برای افزایش امنیت داده های ارسالی باید آنها را اعتبار سنجی کنید. (کد بالا به حملات XSS آسیب پذیر می باشد)
دقت داشته باشید که به نکات امنیتی توجه کنید، در این آموزش ها ما صرفاً می خواهیم نحوه ارسال و دریافت و پردازش داده ها در PHP را به شما نمایش دهیم، شما باید داده ها را فیلتر و اعتبار سنجی کنید.
در این خصوص لطفاً مقاله اعتبار سنجی فرم ها در PHP را مطالعه کنید.
متدهای GET و POST
هم GET و هم POST یک آرایه ایجاد می کنند. به عنوان مثال این آرایه را در نظر بگیرید:
array( key1 => value1, key2 => value2, key3 => value3, ...)
این آرایه عناصر را به صورت کلید/مقدار نگهداری می کند، که در اینجا کلیدها نام کنترلهای فرم (خاصیت name در فیلد های فرم) و مقادیر، دادههای ورودی یا ارسالی کاربر هستند.
هر دو متد GET و POST به عنوان متغیر های سراسری $_GET
و $_POST
در نظر گرفته می شوند.
به این معنی که شما می توانید از هر تابع، کلاس یا فایلی بدون نیاز به انجام کار خاصی به آنها دسترسی داشته باشید.
$_GET
آرایه ای از متغیرها است که از طریق پارامترهای URL به اسکریپت فعلی ارسال می شود.
$_POST
آرایه ای از متغیرها است که از طریق روش HTTP POST به اسکریپت فعلی ارسال می شود.
چه زمانی از متد GET استفاده کنیم ؟
اطلاعات ارسال شده از فرم با متد GET برای همه قابل مشاهده است (همه نام ها و مقادیر متغیرها در URL نمایش داده می شوند). GET همچنین محدودیت هایی در میزان ارسال اطلاعات دارد که محدودیت حدود 2000 کاراکتر است.
با این حال، به دلیل اینکه متغیرها در URL نمایش داده می شوند، می توان صفحه را نشانک (bookmark) کرد. این می تواند برای دسترسی سریع به آن صفحه با همان مقدار مفید و کاربردی باشد.
معمولاً از متد GET برای ارسال داده های غیر حساس استفاده می شود.
توجه: از GET هرگز برای ارسال داده های حساس و مهم مانند رمز عبور، نام کاربری و… استفاده نکنید.
چه زمانی از متد POST استفاده کنیم ؟
اطلاعات ارسال شده از فرم با متد POST برای دیگران نامرئی است (همه نام ها و مقادیر در بدنه درخواست HTTP نگهداری می شوند) و محدودیتی در میزان اطلاعات ارسالی وجود ندارد.
علاوه بر اینها متد POST از ارسال داده های باینری برای آپلود فایل ها پشتیبانی می کند (برای ارسال فایل سمت سرور هم استفاده می شود)
با توجه به اینکه داده ها در URL نشان داده نمی شود، امکان دسترسی به آن صفحه با همان داده های ارسال شده وجود ندارد.
معمولاً اکثر برنامه نویس ها برای ارسال داده های یک فرم فقط از متد POST استفاده می کنند.
در ادامه این آموزش به شما نحوه پردازش ایمن داده ها را آموزش داده ایم (لطفاً مطالب را از صفحه آموزش PHP دنبال کنید)
آیا این مطلب برای شما مفید بود ؟