PHP – پردازش فرمها (PHP Form Handling)
پیاچپی سوپرگلوبالها (PHP Superglobals)
سوپرگلوبالهای پیاچپی $_GET
و $_POST
برای جمعآوری دادههای فرم استفاده میشوند.
یک فرم ساده اچتیامال (PHP - A Simple HTML Form)
مثال زیر یک فرم ساده اچتیامال با دو فیلد ورودی و یک دکمه ارسال را نمایش میدهد:
مثال
خروجی میتواند چیزی شبیه به این باشد:
Welcome John
Your email address is john.doe@example.com
استفاده از روش GET (Using the GET Method)
نتیجه مشابهی نیز میتواند با استفاده از روش GET
حاصل شود:
مثال
همان مثال، اما با روش GET
:
و welcome_get.php
به این صورت خواهد بود:
کد بالا بسیار ساده است و هیچ گونه اعتبارسنجی ندارد.
شما نیاز دارید که دادههای فرم را اعتبارسنجی کنید تا از اسکریپت خود در برابر کدهای مخرب محافظت کنید.
تفاوت GET و POST (GET vs. POST)
هر دو GET
و POST
یک آرایه ایجاد میکنند (مثل array( key1 => value1, key2 => value2, key3 => value3, ...)
). این آرایه حاوی جفتهای کلید/مقدار است که کلیدها نام کنترلهای فرم و مقادیر دادههای ورودی از کاربر هستند.
هر دو GET
و POST
به عنوان $_GET
و $_POST
در نظر گرفته میشوند. اینها سوپرگلوبالها هستند، به این معنی که همیشه در دسترس هستند، بدون توجه به محدوده – و شما میتوانید از هر تابع، کلاس یا فایل به آنها دسترسی داشته باشید بدون نیاز به انجام کار خاصی.
$_GET
یک آرایه از متغیرهایی است که از طریق پارامترهای URL به اسکریپت فعلی ارسال شدهاند.$_POST
یک آرایه از متغیرهایی است که از طریق روش HTTP POST به اسکریپت فعلی ارسال شدهاند.
چه زمانی از GET استفاده کنیم؟ (When to use GET?)
اطلاعاتی که از یک فرم با روش GET
ارسال میشود برای همه قابل مشاهده است (همه نامهای متغیر و مقادیر در URL نمایش داده میشوند). GET
همچنین محدودیتهایی در مقدار اطلاعاتی که میتواند ارسال کند دارد. این محدودیت حدود ۲۰۰۰ کاراکتر است. با این حال، به دلیل نمایش متغیرها در URL، امکان بوکمارک کردن صفحه وجود دارد. این میتواند در برخی موارد مفید باشد.
GET
ممکن است برای ارسال دادههای غیر حساس استفاده شود.
نکته: GET
نباید هرگز برای ارسال گذرواژهها یا سایر اطلاعات حساس استفاده شود!
چه زمانی از POST استفاده کنیم؟ (When to use POST?)
اطلاعاتی که از یک فرم با روش POST
ارسال میشود برای دیگران نامرئی است (همه نامها/مقادیر در بدنه درخواست HTTP جاسازی شدهاند) و هیچ محدودیتی در مقدار اطلاعاتی که میتواند ارسال کند ندارد.
علاوه بر این، POST
از قابلیتهای پیشرفتهای مانند پشتیبانی از ورودی باینری چند بخشی هنگام آپلود فایلها به سرور پشتیبانی میکند.
با این حال، به دلیل عدم نمایش متغیرها در URL، امکان بوکمارک کردن صفحه وجود ندارد.
توسعهدهندگان POST
را برای ارسال دادههای فرم ترجیح میدهند.
نکات امنیتی (Security Considerations)
این صفحه حاوی هیچگونه اعتبارسنجی فرم نیست، فقط نشان میدهد که چگونه میتوانید دادههای فرم را ارسال و دریافت کنید.
اما صفحات بعدی نشان خواهند داد که چگونه میتوان فرمهای پیاچپی را با امنیت در نظر گرفته پردازش کرد! اعتبارسنجی صحیح دادههای فرم برای محافظت از فرم شما در برابر هکرها و اسپمرها مهم است!
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام