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

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

1405/05/01 19:58 محراب حسن زاده
آموزش کامل 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 استفاده کنید.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

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

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

مطالعه بیشتر
آموزش جامع مدیریت خطاها در PHP بر اساس استانداردهای گوگل
1405/05/01 20:23

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

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

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

مطالعه بیشتر
تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها
1403/07/30 21:53

تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها

مطالعه بیشتر
آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل
1404/09/29 21:09

آشنایی با Vue CLI و ایجاد پروژه‌های پیشرفته در Vue.js | راهنمای کامل

مطالعه بیشتر
تفاوت آرایه عددی، انجمنی و چندبعدی در PHP: راهنمای جامع و کاربردی
1405/03/24 01:07

تفاوت آرایه عددی، انجمنی و چندبعدی در PHP: راهنمای جامع و کاربردی

مطالعه بیشتر
آموزش جامع توابع بازگشتی (Recursion) و کاربردهای آن در جاوا اسکریپت: مثال‌ها و مفاهیم
1403/07/29 20:15

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

مطالعه بیشتر
پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of
1403/07/04 18:12

پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of

مطالعه بیشتر
راهنمای کامل تگ‌های متنی HTML و اصول سئو برای محتوا
1402/05/18 00:40

راهنمای کامل تگ‌های متنی HTML و اصول سئو برای محتوا

مطالعه بیشتر
آموزش جامع خواندن و نوشتن فایل متنی در PHP (به زبان ساده)
1405/05/04 23:17

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

مطالعه بیشتر
آموزش مفاهیم پایه‌ای اشیاء در جاوا اسکریپت: تعریف، ویژگی‌ها و متدها
1403/06/02 20:49

آموزش مفاهیم پایه‌ای اشیاء در جاوا اسکریپت: تعریف، ویژگی‌ها و متدها

مطالعه بیشتر
واحدهای CSS مدرن: آموزش استفاده از vw، vh، vmin و vmax برای طراحی واکنش‌گرا
1403/08/11 20:43

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

مطالعه بیشتر

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