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

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol
1403/08/10 21:33

آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol

مطالعه بیشتر
عملگرها و عبارات محاسباتی در جاوا اسکریپت: نحوه استفاده و کاربردهای مختلف
1402/06/28 00:20

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

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

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

مطالعه بیشتر
آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد
1404/09/24 20:52

آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد

مطالعه بیشتر
راهنمای جامع معرفی PHP؛ تاریخچه، ویژگی‌ها و جایگاه آن در توسعه وب
1405/03/14 23:35

راهنمای جامع معرفی PHP؛ تاریخچه، ویژگی‌ها و جایگاه آن در توسعه وب

مطالعه بیشتر
چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان
1402/07/02 21:37

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

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

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

مطالعه بیشتر
Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی
1404/09/29 20:53

Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی

مطالعه بیشتر
آموزش جامع انواع داده‌ها در PHP (بخش اول: String, Integer, Float, Boolean)
1405/03/24 01:01

آموزش جامع انواع داده‌ها در PHP (بخش اول: String, Integer, Float, Boolean)

مطالعه بیشتر
راهنمای جامع قوانین نام‌گذاری متغیرها در PHP بر اساس استاندارد گوگل
1405/03/24 00:57

راهنمای جامع قوانین نام‌گذاری متغیرها در PHP بر اساس استاندارد گوگل

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

آموزش HTML: اولین گام برای طراحی سایت و سئو حرفه‌ای

مطالعه بیشتر
آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب
1402/06/18 23:07

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

مطالعه بیشتر

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