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

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

1405/04/27 22:29 محراب حسن زاده
آموزش کامل 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 به پایگاه داده MySQL (به روش PDO و MySQLi)
1405/05/04 23:34

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

مطالعه بیشتر
آموزش کامل کار با اعداد و توابع ریاضی در PHP (کامل و کاربردی)
1405/04/27 21:51

آموزش کامل کار با اعداد و توابع ریاضی در PHP (کامل و کاربردی)

مطالعه بیشتر
آموزش جامع تعریف تابع سفارشی در PHP طبق استاندارد گوگل و PSR
1405/04/16 01:07

آموزش جامع تعریف تابع سفارشی در PHP طبق استاندارد گوگل و PSR

مطالعه بیشتر
تفاوت PHP با HTML، CSS و JavaScript؛ راهنمای جامع و ساده برای مبتدیان
1405/03/21 01:06

تفاوت PHP با HTML، CSS و JavaScript؛ راهنمای جامع و ساده برای مبتدیان

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

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

مطالعه بیشتر
مقدمه‌ای بر CSS و نحوه اضافه کردن آن به HTML: راهنمای ساده و کامل برای مبتدیان
1402/06/04 23:43

مقدمه‌ای بر CSS و نحوه اضافه کردن آن به HTML: راهنمای ساده و کامل برای مبتدیان

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

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

مطالعه بیشتر
راهنمای کامل لیست‌ها در HTML: آموزش انواع و اصول سئو
1402/05/20 22:02

راهنمای کامل لیست‌ها در HTML: آموزش انواع و اصول سئو

مطالعه بیشتر
مفهوم برنامه‌نویسی هم‌زمان و ناهم‌زمان در جاوا اسکریپت: تفاوت‌ها، مثال‌ها و کاربردها
1403/07/29 20:37

مفهوم برنامه‌نویسی هم‌زمان و ناهم‌زمان در جاوا اسکریپت: تفاوت‌ها، مثال‌ها و کاربردها

مطالعه بیشتر
آموزش ایجاد تگ‌های صفحه‌بندی در HTML و CSS: طراحی و استایل‌دهی pagination
1402/05/29 21:27

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

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

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

مطالعه بیشتر
معرفی جاوا اسکریپت و نحوه استفاده از آن برای توسعه وب تعاملی: راهنمای جامع
1402/06/27 23:35

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

مطالعه بیشتر

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