آرایه $_SERVER در php

  • آپدیت شده در تاریخ

آرایه $_SERVER در php

$_SERVER یکی از آرایه های سوپر گلوبال در php است که شامل اطلاعاتی در مورد هدرها ، سرور ، هاست ، آی پی و … است . آرایه $_SERVER در php شامل لیست بزرگی از اطلاعات در ایندکس ها خود است .

در هنگام اجرای اسکریپت php ، آرایه $_SERVER بر اساس معیار های سرور فعلی احرا می شود ، مثلا آی پی سرور ، اینترفیس و غیره ..

حالا ، قصد داریم بعضی از قسمت های این لیست از ایندکس های آرایه $_SERVER در php را بررسی کنیم. و همچنین ، نگاهی به فاکتور هایی که بر اساس آن ، ایندکس ها دسته بندی می شوند ، می اندازیم.

 

پس ، ایندکس آرایه $_SERVER شامل اطلاعاتی در مورد لیست زیر است.

اطلاعات سرور

اطلاعات هدرها (Header)

جزئیات درخواست های صفحه php

اسم یا مسیر فایل بر روی سرور

اطلاعات کاربر (آی پی …)

اطلاعات احراز هویت HTTP

خب خالا نگاهی به ایندکس های در دسترس آرایه $_SERVER در php ، که در لیست بالا به آنها اشاره کریدم.

آرایه $_SERVER در php

اطلاعات سرور در آرایه $_SERVER در php

  • GATWAY_INTERFACE – این مورد اطلاعاتی در مورد ورژن gateway interface سرور را ذخیره می کند.
  • SERVER_NAME – اسم هاست سرور را ذخیره می
  • SERVER_ADDR – دارای آی پی سرور است
  • SERVER_PORT – شماره پورت سرور ، که به صورت پیشفرض برای HTTP 80 و HTTPS 443 است.
  • SERVER_SIGNATURE – یک رشته تصادفی اجیاد شده توسط سرور ، زمانی سرور یک پاسخ را ایجاد و ارسال می کند .
  • SERVER_PROTOCOL – اسم پروتکلی که از طریق آن به سرور دسترسی داشیم (+ ورژن)

اطلاعات هدرها (Header)

در دسته بندی زیر ، قصد داریم ایندکس های در دسترس برای آرایه $_SERVER در php که اطلاعاتی مثل ، زبان اکسپت شده ، تکنولوژی encoding ، charset ، کانکشن و غیره …

  • HTTP_HOST
  • HTTP_CONNECTION
  • HTTP_ACCEPT_CHARSET
  • HTTP_ACCEPT_ENCODING
  • HTTP_ACCEPT_LANGUAGE

همه ایندکس های آرایه $_SERVER در php در بالا در زمان درخواست یک صفحه PHP از سرور مقداردهی می شوند. و کپشن هایی که در هدر به این مقدار ها  نسبت داده می شوند ، Host , Connection , Charset , Encoding , language هستند .

  • HTTP_REFERER – برای این ایندکس از آرایه ، آدرس IP توسط useragent ست می شود ولی هیچ تضمینی برای این مورد نیست .
  • HTTPS – این مورد با هر مقداری فراخوانی می شود در صورتی که مقدار SERVER_PROTOCOL ، https باشد . این بدان معنا است که اگر درخواستی به یکی از صفحات روی سرور با پروتکل https ارسال شود ، ایندکس HTTPS مقدار دهی می شود.

به علاوه بر این ، تعدادی از ایندکس های آرایه که اطلاعاتی مثل Accepted MIME type ، useragent  و غیره .. ذخیره می کنند.

آرایه $_SERVER در php

جزئیات درخواست یک صفحه php

  • REQUEST_METHOD – این ایندکس دارای مقادیر ارسالی در متد های POST یا GET است .
  • REQUEST_TIME – زمان صرف شده به صورت timestamp برای ارسال یک درخواست به صفحه php را ذخیره می کند

اسم یا مسیر فایل بر روی سرور

ایندکس های زیر به صورت گسترده برای ساخت آدرس کامل url برای صفحه جاری استفاده می شوند . برای این کار می توانیم خروجی هر کدام را به هم با استفاده از . (نقطه) در php به هم متصل و یک آدرس url را ایجاد کنیم .

  • PHP_SELF – این ایندکس یک آدرس URL نسبی برای صفحه فعلی اجرا شده را ذخیره می کند.
  • DOCUMENT_ROOT – اسم دایرکتری ریشه (ROOT) مشخص شده در فایل پیکربندی PHP (php.ini) را ذخیره می کند.
  • QUERY_STRING – آرگومان (پارامتر) های پاس داده شده به URL بعد از علامت سوال (؟) را ذخیره می کند . برای مثال اگر آدرس URL صفحه مثل http://localhost/netparadis.php?action=”login” باشد ، در اینصورت مقدار ایندکس برابر با action=login خواهد بود
  • Request_URI – مقدار این ایندکس ، تعیین کننده هویت یک کاربر برای دسترسی به یک صفحه است.
  • SCRIPT_FILENAME – دارای آدرس کامل صفحه در حال اجرا است .
  • PATH_INFO – دارای همه اطلاعات دریافت شده از کلاینت است . این اطلاعات بین آدرس کامل url و پارامتر های پاس داده شده به URL اضافه خواهند شد.

اطلاعات کاربر

این دسته بندی شامل ایندکس هایی از آرایه $_SERVER در php که برای ذخیره اسم ، آدرس ip، پورت هاست ریموت کاربر استفاده می شود.

  • REMOTE_HOST
  • REMOTE_ADDR
  • REMOTE_PORT

و همچنین ایندکس های زیر برای ذخیره اطلاعات احراز هویت کاربر برای دسترسی به یک صفحه یا ریدایرکت کردن کاربر استفاده می شوند.

  • REMOTE_USER
  • REDIRECT_REMOTE_USER

اطلاعات احراز هویت HTTP

احراز هویت HTTP (authentication) به کاربر اجازه می دهد که برای دسترسی به صفحه درخواست شده ، نام کاربری و پسورد خود را وارد کند. اولین بار که کاربر نام کاربری و پسورد خود را وارد کرد ، این مقادیر در متغیر سوپرگلوبال $_SERVER[‘PHP_AUTH_USER’] , $_SERVER[‘HTTP_AUTH_PW’]  ذخیره می شوند

احراز هویت HTTP میتوانید هر کدام از نوع های basic (ساده)  یا digest باشد . اگر نوع digest را انتخاب کنیم ، $_SERVER[‘PHP_AUTH_DIGEST’] ست خواهد شد . ایندکس $_SERVER[‘PHP_AUTH_TYPE’] برای ذخیره نوع احراز هویت استفاده می شود.

برای دیدن لیست کامل تمام ایندکس های آرایه $_SERVER در php

می توانید از کد زیر استفاده کنید که توضیحات هر کدام نیز برای شما نمایش داده می شود .

هرگونه سوال و مشکلی در پیاده سازی این موارد داشتید ، از قسمت نظرات این مقاله آموزشی با ما در ارتباط باشید .

موفق و پیروز باشید

 

 

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۹)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. رسول ۲۳ مهر ۱۴۰۳

    سلام خسته نباشید
    چرا وقتی آرایه SERVER روی XAMPPاجرا میکنیم و وقتی روی ویندوز سرور اجرا میکنم متفاوت هستش مثلا من $_SERVER[“REQUEST_SCHEM”]رو میخوام ولی در ویندوز سرور نیست یا $_SERVER[“REQUEST_URI”]

    پاسخ
    1. حسن شفیعی ۲۵ مهر ۱۴۰۳

      سلام ممنون
      بخاطر تفاوت نسخه apache در هر دو محیط هست. باید چک کنید ورژن آپاچی در ویندوز سرور شما ۲٫۴ و به بالا باشه تا اون پارامتر مورد نظر وجود داشته باشه

      پاسخ
  2. مشهدی ۴ آبان ۱۴۰۱
    1. حسن شفیعی ۱۳ آبان ۱۴۰۱

      سلام.
      دریافت آدرس فعلی

      پاسخ
      1. مشهدی ۱۵ آبان ۱۴۰۱

        برای رفعش باید چه کرد؟

        پاسخ
      2. حسن شفیعی ۱۵ آبان ۱۴۰۱

        خطا دقیقا کجاست ؟

        پاسخ
  3. فاطمه مهدوی ۱۶ دی ۱۳۹۹

    سلام ممنون از اطلاعات کامل و جامع تون
    نوع سیستم عامل کاربر رو چجوری میشه پیدا کرد؟

    پاسخ
    1. حسن شفیعی ۱۶ دی ۱۳۹۹

      سلام.
      در آرایه $_SERVER اطلاعات user_agent نوع سیستم عامل مشخص شده است

      پاسخ
  4. 0 ۲ مهر ۱۳۹۹

    =۰ ; $i++) echo $i?>

    پاسخ
دوره های آموزشی