آموزش رایگان 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) استفاده کنید.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

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

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

مطالعه بیشتر
مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها
1403/07/04 17:40

مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها

مطالعه بیشتر
استفاده از font face در CSS برای اضافه کردن فونت‌های سفارشی: راهنمای کامل
1403/08/16 21:48

استفاده از font face در CSS برای اضافه کردن فونت‌های سفارشی: راهنمای کامل

مطالعه بیشتر
مدیریت فرم‌ها و ورودی‌ها در Vue.js | آموزش Form Handling با مثال کاربردی
1404/09/22 00:40

مدیریت فرم‌ها و ورودی‌ها در Vue.js | آموزش Form Handling با مثال کاربردی

مطالعه بیشتر
آشنایی با متغیرها در PHP به زبان ساده (راهنمای جامع)
1405/03/21 01:34

آشنایی با متغیرها در PHP به زبان ساده (راهنمای جامع)

مطالعه بیشتر
Async/Await: نوشتن کدهای خواناتر و ناهم‌زمان در جاوا اسکریپت - آموزش کامل با مثال‌ها
1403/07/30 20:50

Async/Await: نوشتن کدهای خواناتر و ناهم‌زمان در جاوا اسکریپت - آموزش کامل با مثال‌ها

مطالعه بیشتر
آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها
1403/07/28 21:20

آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها

مطالعه بیشتر
تنظیم عرض و ارتفاع عناصر در CSS: استفاده از width، height، max و min برای کنترل دقیق اندازه‌ها
1403/08/09 21:08

تنظیم عرض و ارتفاع عناصر در CSS: استفاده از width، height، max و min برای کنترل دقیق اندازه‌ها

مطالعه بیشتر
آموزش کامنت‌گذاری در PHP بر اساس استاندارد گوگل و Clean Code
1405/03/21 01:15

آموزش کامنت‌گذاری در PHP بر اساس استاندارد گوگل و Clean Code

مطالعه بیشتر
آموزش ساخت دیتابیس و جدول برای پروژه PHP طبق استاندارد گوگل
1405/05/04 23:38

آموزش ساخت دیتابیس و جدول برای پروژه PHP طبق استاندارد گوگل

مطالعه بیشتر
استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax
1403/08/16 22:30

استفاده از Viewports و Viewport Units در CSS: طراحی واکنش‌گرا با vw، vh، vmin و vmax

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

آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا

مطالعه بیشتر

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