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

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

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

متغیرهای Super Global در PHP چیستند؟

در زبان برنامه‌نویسی PHP، متغیرهای سوپر گلوبال (Superglobals) متغیرهای پیش‌فرضی هستند که در تمامی بخش‌های کد، بدون توجه به Scope (حوزه دسترسی) در دسترس هستند. یعنی شما می‌توانید درون توابع، کلاس‌ها یا فایل‌های مختلف به طور مستقیم و بدون نیاز به تعریف کلیدواژه global به آن‌ها دسترسی داشته باشید.

این متغیرها به صورت آرایه‌های انجمنی (Associative Arrays) ذخیره می‌شوند و اطلاعات بسیار مهمی درباره سرور، درخواست‌های کاربر، کوکی‌ها، جلسات (Sessions) و فایل‌های آپلود شده را در خود نگه می‌دارند.

لیست کامل Super Global های PHP

زبان PHP دارای ۹ متغیر سوپر گلوبال اصلی است که در ادامه به معرفی و بررسی پرکاربردترین آن‌ها می‌پردازیم:

  • $GLOBALS: برای دسترسی به متغیرهای سراسری از هر نقطه در اسکریپت PHP.
  • $_SERVER: حاوی اطلاعاتی درباره هدرها، مسیرها و مکان‌های اسکریپت.
  • $_REQUEST: شامل داده‌های ارسالی از طریق متدهای GET و POST و همچنین COOKIE.
  • $_POST: برای جمع‌آوری داده‌های ارسال شده از طریق فرم‌های HTML با متد POST.
  • $_GET: برای جمع‌آوری داده‌های ارسال شده از طریق URL یا فرم‌های HTML با متد GET.
  • $_FILES: حاوی اطلاعات فایل‌های آپلود شده در سرور.
  • $_ENV: برای دسترسی به متغیرهای محیطی سیستم‌عامل یا سرور.
  • $_COOKIE: جهت دریافت و مدیریت کوکی‌های ذخیره شده در مرورگر کاربر.
  • $_SESSION: برای مدیریت جلسات (Sessions) کاربر و ذخیره اطلاعات در طول گشت‌وگذار در وب‌سایت.

بررسی دقیق کاربردی‌ترین سوپرگلوبال‌ها همراه با کد

۱. متغیر $_SERVER

این متغیر اطلاعاتی نظیر آدرس IP کاربر، نوع مرورگر، مسیر اجرای اسکریپت جاری و اطلاعات هدر را در اختیار ما قرار می‌دهد. به مثال زیر توجه کنید:



echo $_SERVER['PHP_SELF']; // مسیر اسکریپت جاری
echo "";
echo $_SERVER['SERVER_NAME']; // نام سرور میزبان
echo "";
echo $_SERVER['HTTP_USER_AGENT']; // اطلاعات مرورگر و سیستم‌عامل کاربر
echo "";
echo $_SERVER['REMOTE_ADDR']; // آدرس IP کاربر

۲. متغیرهای $_GET و $_POST

از این دو متغیر به وفور برای دریافت اطلاعات ارسالی از کاربران از طریق فرم‌ها استفاده می‌شود. متد GET اطلاعات را در نوار آدرس مرورگر (URL) نمایش می‌دهد در حالی که متد POST اطلاعات را به صورت مخفی و امن‌تر ارسال می‌کند.

مثال برای دریافت داده به روش GET (ارسال از طریق URL مانند index.php?name=Ali):



if (isset($_GET['name'])) {
    // پاکسازی داده‌ها برای جلوگیری از حملات امنیتی
    $name = htmlspecialchars($_GET['name']);
    echo "سلام " . $name . " خوش آمدید!";
}

مثال برای دریافت داده از فرم HTML به روش POST:



if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // دریافت داده ایمن شده از فیلد username
    $username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_SPECIAL_CHARS);
    echo "نام کاربری دریافتی: " . $username;
}

۳. متغیر $_SESSION

سشن‌ها یا جلسات کاری برای ذخیره اطلاعات کاربر در میان صفحات مختلف سایت استفاده می‌شوند. به عنوان مثال، حفظ وضعیت ورود کاربر (Login). برای کار با $_SESSION حتماً باید در ابتدای فایل تابع session_start() را فراخوانی کنیم.



// شروع سشن
session_start();

// ذخیره اطلاعات در سشن
$_SESSION["user_id"] = 1024;
$_SESSION["role"] = "admin";

echo "سشن با موفقیت تنظیم شد.";

نکات امنیتی بسیار مهم در استفاده از Super Globalها

از آنجایی که اکثر متغیرهای سوپر گلوبال (مانند $_GET, $_POST, $_COOKIE) مستقیماً داده‌ها را از مرورگر کاربر دریافت می‌کنند، به شدت در معرض حملات سایبری مانند XSS (تزریق کد) و SQL Injection قرار دارند. هرگز داده‌های ورودی را مستقیماً در خروجی چاپ نکنید یا درون پایگاه داده ننویسید.

  • همیشه از توابع پاکسازی و اعتبارسنجی مثل filter_var() و htmlspecialchars() استفاده کنید.
  • از متد POST برای ارسال اطلاعات حساس مانند کلمات عبور استفاده نمایید.
  • برای جلوگیری از حملات جعل درخواست متقاطع (CSRF)، از توکن‌های امنیتی همراه با متغیرهای POST استفاده کنید.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش جامع و استاندارد کار با رشته‌ ها در PHP
27م تیر 1405

آموزش جامع و استاندارد کار با رشته‌ ها در PHP

مطالعه بیشتر
آموزش ساختار کامپوننت در Vue.js (راهنمای کامل همراه مثال)
15م مرداد 1404

آموزش ساختار کامپوننت در Vue.js (راهنمای کامل همراه مثال)

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

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

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

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

مطالعه بیشتر
آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب
11م آبان 1403

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

مطالعه بیشتر
آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب
9م آبان 1403

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

مطالعه بیشتر
آموزش کامل توابع سازنده (Constructors) و پروتوتایپ‌ها (Prototypes) در جاوا اسکریپت: راهنمای جامع
28م مهر 1403

آموزش کامل توابع سازنده (Constructors) و پروتوتایپ‌ها (Prototypes) در جاوا اسکریپت: راهنمای جامع

مطالعه بیشتر
روش‌های کار با Conditional و Loop در Vue.js | آموزش v-if، v-show و v-for
28م آذر 1404

روش‌های کار با Conditional و Loop در Vue.js | آموزش v-if، v-show و v-for

مطالعه بیشتر
کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت
25م مرداد 1402

کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت

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

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

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

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

مطالعه بیشتر
استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع
9م آبان 1403

استفاده از display در CSS: تغییر نحوه نمایش عناصر - راهنمای جامع

مطالعه بیشتر

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