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

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش استفاده از cubic-bezier در CSS برای انیمیشن‌های سفارشی و حرفه‌ای
1403/08/12 20:28

آموزش استفاده از cubic-bezier در CSS برای انیمیشن‌های سفارشی و حرفه‌ای

مطالعه بیشتر
کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر
1403/08/16 22:45

کار با تصاویر SVG در CSS: کنترل استایل و استفاده از گرافیک‌های مقیاس‌پذیر

مطالعه بیشتر
آموزش گام به گام اتصال به دیتابیس با MySQLi در PHP (امن و استاندارد)
1405/05/04 23:40

آموزش گام به گام اتصال به دیتابیس با MySQLi در PHP (امن و استاندارد)

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

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

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

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

مطالعه بیشتر
تنظیم عرض و ارتفاع عناصر در 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

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

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

مطالعه بیشتر
استفاده از setTimeout و setInterval در جاوا اسکریپت: آموزش کامل و مثال‌ها
1403/07/29 20:46

استفاده از setTimeout و setInterval در جاوا اسکریپت: آموزش کامل و مثال‌ها

مطالعه بیشتر
آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل
1402/06/06 23:24

آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل

مطالعه بیشتر
آموزش کامل کنترل جریان و استفاده از if و else در جاوا اسکریپت: راهنمای جامع برای مبتدیان
1402/11/02 23:02

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

مطالعه بیشتر
آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا
1403/08/16 22:20

آموزش ساخت Toggle Switch با CSS: طراحی دکمه‌های تغییر وضعیت جذاب و واکنش‌گرا

مطالعه بیشتر

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