آموزش رایگان PHP

آموزش کامل دریافت اطلاعات فرم با متدهای GET و POST در PHP (با رعایت اصول امنیتی)

1405/04/27 22:06 محراب حسن زاده
آموزش کامل دریافت اطلاعات فرم با متدهای GET و POST در PHP (با رعایت اصول امنیتی)

یکی از اساسی‌ترین کارها در توسعه وب، انتقال داده‌ها از سمت مرورگر کاربر به سمت سرور است. فرم‌های HTML ابزار اصلی این انتقال هستند و زبان برنامه نویسی PHP با متغیرهای فوق سراسری (Superglobals) خود به نام‌های $_GET و $_POST کار پردازش این داده‌ها را به شدت آسان کرده است. در این مقاله آموزشی طبق آخرین استانداردهای گوگل، هر آنچه برای کار با فرم‌ها در PHP نیاز دارید را به همراه نکات امنیتی آموزش خواهیم داد.

متد GET چیست و چگونه کار می‌کند؟

متد GET داده‌های فرم را به صورت جفت‌های کلید و مقدار به آدرس صفحه وب (URL) متصل کرده و ارسال می‌کند. این متد معمولاً برای جستجوها، فیلتر کردن اطلاعات یا کارهایی که نیاز به نشانه‌گذاری (Bookmark) دارند مناسب است.

فرم نمونه با متد GET

برای ایجاد فرم با این متد، ویژگی method فرم را برابر با "get" قرار می‌دهیم:


< form action="search.php" method="get" >
    < label for="search" >جستجو:< / label >
    < input type="text" name="query" id="search" / >
    < button type="submit" >بگرد< / button >
< / form >

دریافت داده‌های GET در PHP

وقتی فرم بالا ارسال می‌شود، آدرس مرورگر به چیزی شبیه به search.php?query=book تبدیل خواهد شد. در سمت سرور به این صورت داده را دریافت می‌کنیم:



if (isset($_GET['query'])) {
    // فیلتر کردن ورودی برای امنیت بیشتر
    $searchQuery = htmlspecialchars($_GET['query']);
    echo "شما به دنبال این واژه هستید: " . $searchQuery;
}

متد POST چیست و چگونه کار می‌کند؟

متد POST اطلاعات را به صورت پنهان و در بدنه (Body) درخواست HTTP ارسال می‌کند. این روش امنیت بیشتری برای ارسال داده‌های حساس مانند کلمات عبور یا اطلاعات شخصی فراهم می‌کند و هیچ محدودیتی در حجم داده‌های ارسالی ندارد.

فرم نمونه با متد POST


< form action="login.php" method="post" >
    < label for="user" >نام کاربری:< / label >
    < input type="text" name="username" id="user" / >
    < label for="pass" >رمز عبور:< / label >
    < input type="password" name="password" id="pass" / >
    < button type="submit" >ورود< / button >
< / form >

دریافت داده‌های POST در PHP

داده‌های ارسال شده با متد POST در URL نمایش داده نمی‌شوند و در قالب آرایه فوق سراسری $_POST قابل دسترس هستند:



if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // پاکسازی ورودی‌ها
    $username = htmlspecialchars($_POST['username']);
    $password = htmlspecialchars($_POST['password']);
    
    echo "خوش آمدید، " . $username;
}

تفاوت‌های کلیدی متدهای GET و POST

برای انتخاب صحیح بین این دو متد، جدول مقایسه‌ای زیر را در نظر داشته باشید:

  • قابلیت رویت: داده‌های GET در URL کاملاً دیده می‌شوند اما داده‌های POST مخفی هستند.
  • محدودیت حجم: متد GET دارای محدودیت کاراکتر (معمولاً ۲۰۴۸ کاراکتر) است ولی POST محدودیت خاصی ندارد.
  • امنیت: POST به مراتب برای ارسال داده‌های حساس امن‌تر است. برای مسائل امنیتی هرگز از GET استفاده نکنید.
  • ذخیره‌سازی (Cache): درخواست‌های GET کش می‌شوند ولی POST هرگز کش نمی‌شود.

نکات امنیتی بسیار حیاتی (Best Practices)

یکی از مواردی که گوگل در استانداردهای خود برای وب‌سایت‌ها بر بروی آن تاکید دارد، امنیت اطلاعات کاربران است. هنگام پردازش فرم‌ها در PHP همیشه این موارد را رعایت کنید:

  1. استفاده از htmlspecialchars(): برای جلوگیری از حملات تزریق کد یا XSS همیشه خروجی‌ها را فیلتر کنید.
  2. اعتبارسنجی (Validation): مطمئن شوید ایمیل‌ها، شماره تماس‌ها و اعداد واقعاً معتبر هستند.
  3. توکن‌های CSRF: برای فرم‌های حساس مانند ورود یا پرداخت حتماً از توکن‌های امنیتی ضد جعل درخواست (CSRF) استفاده کنید.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها
1402/06/05 00:13

آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها

مطالعه بیشتر
آموزش کامل و اصولی اتصال PHP به پایگاه داده MySQL (به روش PDO و MySQLi)
1405/05/04 23:34

آموزش کامل و اصولی اتصال PHP به پایگاه داده MySQL (به روش PDO و MySQLi)

مطالعه بیشتر
سیر تا پیاز عملگرهای ریاضی در PHP + مثال‌های کاربردی
1405/03/24 01:21

سیر تا پیاز عملگرهای ریاضی در PHP + مثال‌های کاربردی

مطالعه بیشتر
کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکت‌های تصویری جذاب
1403/08/11 21:08

کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکت‌های تصویری جذاب

مطالعه بیشتر
آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)
1405/05/14 22:03

آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)

مطالعه بیشتر
آموزش کامل Super Global ها در PHP (متغیرهای سراسری)
1405/05/01 19:58

آموزش کامل Super Global ها در PHP (متغیرهای سراسری)

مطالعه بیشتر
کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius
1403/08/09 20:16

کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius

مطالعه بیشتر
آموزش استفاده از تگ‌های خاص HTML: تگ‌های کاربردی برای طراحی وب‌سایت
1402/05/22 23:53

آموزش استفاده از تگ‌های خاص HTML: تگ‌های کاربردی برای طراحی وب‌سایت

مطالعه بیشتر
کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد
1402/06/18 22:55

کنترل زمان‌بندی و اندازه‌گیری دقیق انیمیشن‌ها در CSS: آموزش جامع و اصول استاندارد

مطالعه بیشتر
آموزش جامع مدیریت خطا با Try Catch و Exception در PHP (اصول و استانداردهای تمیز)
1405/05/01 20:26

آموزش جامع مدیریت خطا با Try Catch و Exception در PHP (اصول و استانداردهای تمیز)

مطالعه بیشتر
آموزش جامع کار با فرم‌ها در PHP (امنیت و اعتبارسنجی طبق استاندارد گوگل)
1405/04/27 22:01

آموزش جامع کار با فرم‌ها در PHP (امنیت و اعتبارسنجی طبق استاندارد گوگل)

مطالعه بیشتر
Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی
1404/09/29 20:53

Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی

مطالعه بیشتر

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