سوپرگلوبال ها در پی اچ پی - آزمون چهار گزینه ای
پی اچ پی یه زبون برنامه نویسی سمت سروره که خیلی باحاله و کلی کار رو برات راحت می کنه. یکی از جذابیت هاش، وجود متغیرهای خاصی به اسم سوپرگلوبال هاست که همیشه و از هرجای کد که فکرشو بکنی، در دسترس هستن.
اینا مثل یه جعبه ابزار جادویی می مونن که اطلاعات مهم رو تو خودشون نگه داشتن و ما می تونیم هر موقع که لازم داشتیم، ازشون استفاده کنیم. بیاین با هم یه گشتی تو این جعبه بزنیم و ببینیم چی توش پیدا می شه.

$_GET و $_POST: ارسال داده
دو تا از پرکاربردترین سوپرگلوبال ها، $_GET و $_POST هستن. اینا مسئول جمع آوری داده هایی هستن که از طریق فرم ها یا URL توسط کاربر ارسال می شن.
فکر کن یه فرم تماس داریم؛ وقتی کاربر اطلاعاتش رو پر می کنه و دکمه ارسال رو می زنه، اطلاعاتش از طریق یکی از این دو روش به سرور فرستاده می شه. $_GET داده ها رو توی URL نشون می ده که برای اطلاعات حساس اصلا خوب نیست، ولی برای فیلتر کردن و جستجو عالیه.
در عوض، $_POST داده ها رو مخفیانه و تو بدنه درخواست ارسال می کنه که امن تره و برای اطلاعات شخصی مثل رمز عبور یا شماره تلفن باید ازش استفاده کرد.
// استفاده از $_GET
// فرض کن URL اینجوریه: http://example.com/page.php?name=ali&city=tehran
$name = $_GET['name'];
$city = $_GET['city'];
echo "سلام $name، از $city خوش اومدی!";
نمونه فرم (به شکل کد و بدون ارسال واقعی):
<form action="process.php" method="post">
<input name="username" type="text">
<input type="submit">
</form>
// پردازش داده
$username = $_POST['username'];
echo "نام کاربری شما: $username";
$_SESSION و $_COOKIE: حفظ اطلاعات بین صفحات
شاید برات پیش اومده باشه که وارد یه سایت می شی و تا وقتی ازش خارج نشدی، اطلاعاتت مثل نام کاربریت یا سبد خریدت حفظ می شه.
این معجزه رو مدیون $_SESSION و $_COOKIE هستیم. $_SESSION اطلاعات رو روی سرور ذخیره می کنه و یه شناسه منحصر به فرد به مرورگر کاربر می ده تا بتونه از صفحات مختلف به اون اطلاعات دسترسی پیدا کنه. این روش خیلی امنه.
$_COOKIE هم اطلاعات رو روی مرورگر کاربر ذخیره می کنه. برای چیزایی مثل تنظیمات تم سایت یا یه پیام خوش آمدگویی ساده خیلی کاربردیه، ولی چون تو مرورگر کاربره، امنیتش کمتره.
چند نمونه استفاده:
$_SESSION: ذخیره وضعیت ورود کاربر، سبد خرید، یا اطلاعات پرداخت.$_COOKIE: ذخیره آخرین بازدید کاربر، تنظیمات شخصی سازی سایت مثل رنگ پس زمینه.
// شروع سشن
session_start();
// ذخیره یک مقدار در سشن
$_SESSION['username'] = 'john_doe';
$_SESSION['loggedin'] = true;
// ایجاد یک کوکی
setcookie('last_visit', date('Y-m-d H:i:s'), time() + (86400 * 30)); // 30 روز
$_SERVER: یه جاسوس تمام عیار
این سوپرگلوبال یه عالمه اطلاعات در مورد سرور و محیط اجرا بهت می ده. از آدرس IP کاربر بگیر تا مسیری که فایل فعلی در اون قرار داره.
واقعا مثل یه جاسوس عمل می کنه و جزئیات زیادی رو در اختیارت می ذاره. مثلا می تونی بفهمی کاربر از کدوم صفحه به صفحه ات اومده یا با کدوم مرورگر. این اطلاعات برای تحلیل رفتار کاربران و امنیت سایت خیلی ارزشمندن.
جدول بعضی از مهم ترین کلیدهای $_SERVER:
| کلید | توضیحات |
|---|---|
'HTTP_HOST' |
نام میزبان که به درخواست تعلق داره |
'REQUEST_METHOD' |
متد درخواست GET یا POST و غیره |
'REMOTE_ADDR' |
آدرس IP کاربر |
'PHP_SELF' |
مسیر فایل فعلی نسبت به ریشه وب |
'HTTP_USER_AGENT' |
اطلاعات مربوط به مرورگر و سیستم عامل کاربر |
$_FILES: مدیریت فایل های آپلودی
اگه خواستی یه عکس یا فایل رو تو سایتت آپلود کنی، $_FILES به کمکت میاد. این سوپرگلوبال اطلاعات مربوط به فایل های آپلود شده رو تو خودش ذخیره می کنه، مثل اسم فایل، نوعش، اندازه اش و مسیر موقتش روی سرور.
توضیحات مهم:
name: نام اصلی فایلtype: نوع MIME فایلsize: اندازه فایل به بایتtmp_name: مسیر موقت فایل روی سرورerror: کد خطا
// فرض کن یه فایل با نام my_image.jpg آپلود شده
// بررسی خطا
if ($_FILES['upload_file']['error'] === UPLOAD_ERR_OK) {
$file_tmp_path = $_FILES['upload_file']['tmp_name'];
$file_name = $_FILES['upload_file']['name'];
move_uploaded_file($file_tmp_path, "uploads/" . $file_name);
echo "فایل با موفقیت آپلود شد.";
} else {
echo "خطا در آپلود فایل.";
}
حالا که با این سوپرگلوبال های باحال آشنا شدی، وقتشه که یه آزمون بدی تا ببینی چقدر این مباحث رو فهمیدی و مهارتت تقویت بشه.