متغیرهای پیش ساخته و سراسری در php
برخی از متغیرهای پیش ساخته در php وجود دارد که به دلیل global یا سراسری بودن آنها می توان در جهات مختلف از آنها استفاده نمود.این به این معنی است که آن متغیرها همیشه در دسترس هستند و صرف نظر از میزان دامنه و مشمولیت آنها ، می توانید به آنها در هر تابع، کلاس و فایلی بدون نیاز به انجام کاری خاص دسترسی داشته باشید بطورکلی متغیرهای پیش ساخته سراسری در php شامل موارد زیر می باشد:
، $ GLOBALS
$ _SERVER
$ _REQUEST
$ _POST
$ _GET
$ _FILES
$ _ENV
$ _COOKIE
$ _SESSION
در این فصل آموزشی به برخی از متغیرهای پیش ساخته خواهیم پرداخت و بقیه آن در فصل های بعدی با اختصار توضیح داده خواهند شد..
GLOBALS$:
متغیری است سراسری که مقدار آن را برنامه نویس تعیین می کند و در هر نکته از اسکریپت های php می توان بدان دسترسی پیدا کرد . بعبارت دیگر این متغیرپیش ساخته نام متغیر را به منظور دسترسی برنامه نویس در همه محدوده ها در خود ذخیره می کند به مثال زیر توجه کنید:
<?php
global $variable;
$variable = 40;
function test(){
echo $variable;
}
test();//output 40
echo $$variable; // output 40
?>
SERVER_$
$ _SERVER یک متغیر فوق سراسری درPHP محسوب می شود که می توان با استفاده از آن به اطلاعات مربوط به هدر ها، مسیرها و مکان های اسکریپت دست یافت. این متغیر دارای عناصر مختلفی که ذیل به چندین مورد از آنها اشاره می شود :
[SERVER[PHP_SELF _$:
یک استفاده رایج از متغیر PHP_SELF در قسمت عملیات تگ <form> است. قسمت action فرم دستورالعمل ارسال اطلاعات فرم را زمانی که کاربر دکمه “ارسال” را کلیک می کند، در اختیار شما قرار می دهد.اگر نام فایل را در قسمت action بنویسید و در صورتی که بعدا نام پرونده مربوط به action را تغییر دهید در آن صورت مجبور هستید دوباره action های مربوط به فرم ها را بروزرسانی کنید این درحالی است که با استفاده از این روش دیگر نیاز به چنین کاری نخواهد بود به مثال زیر توجه کنید.
در حالت معمول
<form method="post" action="form-action.php" >
در حالت استفاده از [SERVER[PHP_SELF _$:
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
REQUEST_$:
برای دریافت داده ها پس از ارسال یک فرم استفاده می شود. در این حالت با کلیک کاربر بر روی submit و ارسال داده ها به action مورد نظر این متغیر به همراه نام متغیر ارسالی می تواند ارزش های مربوط اطلاعات فرستاده شده توسط کاربر را استخراج و نشان دهد مثال زیر یک فرم را با یک فیلد ورودی و یک دکمه ارسال و همچنین نحوه دریافت اطلاعات فرستاده شده توسط این متغیر را نشان می دهد. به مثال زیر توجه کنید:
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="user_name">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$receive_name = $_REQUEST['user_name'];
if (empty($receive_name)) {
echo "received name empty";
} else {
echo $receive_name;
}
}
?>
</body>
</html>
$_POST:
یکی از روشهای انتقال اطلاعات در php روش post کردن است. به مثال زیر توجه کنید
برای دریافت داده های فرم پس از ارسال یک فرم مورد استفاده قرار می گیرد بعبارت دیگر یکی از روشهای دریافت اطلاعات در php روش post کردن است. به مثال زیر توجه کنید این روش از طریق هدر HTTP با نام QUERY-STRING ارسال می شود و هیچ گونه محدودیتی از لحاظ حجم اطلاعات ارسالی در آن وجود ندارد ازاین رو می توان هم دیتای باینر و هم اسکی را ارسال کند و لحاظ امنیتی نسبت به متد دیگر یعنی GET خیلی بالاتر است چرا که برخلاف GET که اطلاعات را از طریق url انتقال می دهد در این متد روش انتقال اطلاعات از طریق header HTTP انتقال پیدا می کند . به مثال زیر توجه کنید :
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="user_name">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$receive_name = $_REQUEST['user_name'];
if (empty($receive_name)) {
echo "received name empty";
} else {
echo $receive_name;
}
}
?>
</body>
</html>
$_GET:
$_FILES:
$_ENV:
$_COOKIE:
$_SESSION
0 دیدگاه