آموزش رایگان 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 (توابع strlen، str_replace و strpos)
1405/04/27 21:43

آموزش جامع و کاربردی توابع رشته‌ای در PHP (توابع strlen، str_replace و strpos)

مطالعه بیشتر
آموزش کامل کار با fopen، سطوح دسترسی و حذف فایل در PHP
1405/05/04 23:28

آموزش کامل کار با fopen، سطوح دسترسی و حذف فایل در PHP

مطالعه بیشتر
مقدمه‌ای بر Node.js و کار با جاوا اسکریپت سمت سرور: آموزش اولیه و اصولی
1403/08/04 19:58

مقدمه‌ای بر Node.js و کار با جاوا اسکریپت سمت سرور: آموزش اولیه و اصولی

مطالعه بیشتر
آموزش mix-blend-mode و background-blend-mode در CSS: ترکیب رنگ‌ها و ایجاد افکت‌های جذاب
1403/08/12 20:18

آموزش mix-blend-mode و background-blend-mode در CSS: ترکیب رنگ‌ها و ایجاد افکت‌های جذاب

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

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

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

مدیریت خطاها در Async/Await و Promises در جاوا اسکریپت: راهنمای کامل با مثال‌های عملی

مطالعه بیشتر
آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child
1402/06/10 18:22

آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child

مطالعه بیشتر
آموزش جامع حلقه‌های for و while در جاوا اسکریپت: نحوه استفاده و کاربردها
1402/11/02 23:10

آموزش جامع حلقه‌های for و while در جاوا اسکریپت: نحوه استفاده و کاربردها

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

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

مطالعه بیشتر
استفاده از calc در CSS: محاسبات پویا برای طراحی‌های منعطف
1403/08/12 19:43

استفاده از calc در CSS: محاسبات پویا برای طراحی‌های منعطف

مطالعه بیشتر
آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال
1404/09/23 21:10

آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال

مطالعه بیشتر
آموزش جامع دستور SELECT و نمایش اطلاعات دیتابیس طبق استانداردهای گوگل و سئو
1405/05/13 21:07

آموزش جامع دستور SELECT و نمایش اطلاعات دیتابیس طبق استانداردهای گوگل و سئو

مطالعه بیشتر

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