أدخلت Superglobals في PHP 4.1.0، ومتغيرات المضمنة التي دائما ما تكون متاحة في جميع نطاقات.
المتغيرات PHP العالمية - Superglobals
عدة متغيرات محددة مسبقا في PHP هي "superglobals" ، وهو ما يعني أنهم دائما الوصول إليها، بغض النظر عن نطاق - ويمكنك الوصول إليها من أي وظيفة أو الطبقة أو ملف دون الحاجة إلى القيام بأي شيء خاص.
متغيرات PHP superglobal هي:
- $ GLOBALS
- $ _SERVER
- $ _REQUEST
- $ _POST
- $ _GET
- $ _files
- $ _ENV
- $ _COOKIE
- $ _SESSION
وهذا الفصل شرح بعض superglobals، وسيتم شرح الباقي في فصول لاحقة.
PHP $ GLOBALS
$ GLOBALS هو PHP متغير فائقة العالمي الذي يستخدم للوصول إلى المتغيرات العالمية من أي مكان في البرنامج النصي PHP (أيضا من ضمن وظائف أو الأساليب).
PHP بتخزين كافة المتغيرات العالمية في مجموعة تسمى $ GLOBALS [ index ]. مؤشر يحمل اسم المتغير.
المثال التالي يوضح كيفية استخدام سوبر متغير عمومي $ GLOBALS:
مثال
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] =
$GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
تشغيل المثال » في المثال أعلاه، منذ z غير حاضر متغير ضمن مجموعة $ GLOBALS، فإنه يمكن الوصول إليها من خارج الدالة أيضا!
PHP $ _SERVER
$ _SERVER هو PHP متغير فائقة العالمي الذي يحمل معلومات حول رؤوس والمسارات والمواقع النصي.
المثال التالي يوضح كيفية استخدام بعض العناصر في $ _SERVER:
مثال
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo
$_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo
$_SERVER['SCRIPT_NAME'];
?>
تشغيل المثال » يسرد الجدول التالي أهم العناصر التي يمكن أن تذهب داخل _SERVER $:
العنصر / الرمز | وصف |
---|---|
$ _SERVER [ 'PHP_SELF'] | إرجاع اسم البرنامج النصي تنفذ حاليا |
$ _SERVER [ 'GATEWAY_INTERFACE'] | إرجاع نسخة من واجهة العبارة الشائعة (CGI) الخادم يستخدم |
$ _SERVER [ 'SERVER_ADDR'] | إرجاع عنوان IP الملقم المضيف |
$ _SERVER [ 'SERVER_NAME'] | إرجاع اسم الملقم المضيف (such as www.w3ii.com) |
$ _SERVER [ 'SERVER_SOFTWARE'] | إرجاع سلسلة تحديد الخادم (such as Apache/2.2.24) |
$ _SERVER [ 'SERVER_PROTOCOL'] | يعود اسم ومراجعة بروتوكول المعلومات (such as HTTP/1.1) |
$ _SERVER [ 'REQUEST_METHOD'] | إرجاع طريقة طلب المستخدمة للوصول إلى صفحة (such as POST) |
$ _SERVER [ 'REQUEST_TIME'] | يعود الطابع الزمني من بداية طلب (such as 1377687496) |
$ _SERVER [ 'QUERY_STRING'] | بإرجاع سلسلة الاستعلام إذا كانت الصفحة يتم الوصول إليها عبر سلسلة استعلام |
$ _SERVER [ 'HTTP_ACCEPT'] | إرجاع رأس قبول من الطلب الحالي |
$ _SERVER [ 'HTTP_ACCEPT_CHARSET'] | إرجاع رأس Accept_Charset من الطلب الحالي (مثل UTF-8، ISO-8859-1) |
$ _SERVER [ 'HTTP_HOST'] | إرجاع رأس المضيف من الطلب الحالي |
$ _SERVER [ 'HTTP_REFERER'] | إرجاع URL الكامل للصفحة الحالية (غير موثوق بها لأن ليس كل من وكلاء المستخدم يعتمد عليه) |
$ _SERVER [ 'HTTPS'] | هو السيناريو الاستعلام من خلال بروتوكول HTTP آمن |
$ _SERVER [ 'REMOTE_ADDR'] | إرجاع عنوان IP من حيث كان المستخدم يستعرض الصفحة الحالية |
$ _SERVER [ 'REMOTE_HOST'] | إرجاع اسم المضيف من حيث كان المستخدم يستعرض الصفحة الحالية |
$ _SERVER [ 'REMOTE_PORT'] | إرجاع ميناء تستخدم على جهاز المستخدم على التواصل مع خادم الويب |
$ _SERVER [ 'SCRIPT_FILENAME'] | يعود اسم المسار المطلق للالنصي تنفذ حاليا |
$ _SERVER [ 'SERVER_ADMIN'] | إرجاع القيمة المعطاة لتوجيه SERVER_ADMIN في ملف التكوين خادم الويب (إذا كان يتم تشغيل البرنامج النصي الخاص بك على المضيف الظاهري، وسوف تكون قيمة محددة لهذا المضيف الظاهري) (such as [email protected]) |
$ _SERVER [ 'SERVER_PORT'] | بإرجاع منفذ الجهاز الخادم يجري استخدامها من قبل خادم الويب للاتصال (such as 80) |
$ _SERVER [ 'SERVER_SIGNATURE'] | إرجاع إصدار الخادم واسم المضيف الظاهري والتي تضاف إلى صفحات ولدت الخادم |
$ _SERVER [ 'PATH_TRANSLATED'] | إرجاع المسار على أساس نظام الملفات للنص الحالي |
$ _SERVER [ 'البرمجي'] | إرجاع المسار من السيناريو الحالي |
$ _SERVER [ 'SCRIPT_URI'] | إرجاع URI الصفحة الحالية |
PHP $ _REQUEST
يستخدم PHP $ _REQUEST لجمع البيانات بعد تقديم استمارة HTML.
يوضح المثال التالي نموذج مع حقل المدخلات وزر الإرسال. عندما يقدم للمستخدم البيانات عن طريق النقر على "Submit" ، يتم إرسال بيانات النموذج إلى الملف المحدد في action سمة من <form> العلامة. في هذا المثال، نشير إلى هذا الملف نفسه لبيانات النموذج المعالجة. إذا كنت ترغب في استخدام ملف PHP أخرى لمعالجة بيانات النموذج، الاستعاضة عن ذلك مع اسم الملف من اختيارك. ثم، يمكننا استخدام سوبر العالمي المتغير $ _REQUEST لجمع قيمة حقل الإدخال:
مثال
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
تشغيل المثال » PHP $ _POST
يستخدم PHP $ _POST على نطاق واسع لجمع بيانات النموذج بعد تقديم استمارة HTML مع طريقة = "آخر". كما انها تستخدم على نطاق واسع $ _POST لتمرير المتغيرات.
يوضح المثال التالي نموذج مع حقل المدخلات وزر الإرسال. عندما يقدم للمستخدم البيانات عن طريق النقر على "Submit" ، يتم إرسال بيانات النموذج إلى الملف المحدد في action سمة من <form> العلامة. في هذا المثال، نشير إلى الملف نفسه لبيانات النموذج المعالجة. إذا كنت ترغب في استخدام ملف PHP أخرى لمعالجة بيانات النموذج، الاستعاضة عن ذلك مع اسم الملف من اختيارك. ثم، يمكننا استخدام سوبر العالمي المتغير $ _POST لجمع قيمة حقل الإدخال:
مثال
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
تشغيل المثال » PHP $ _GET
ويمكن أيضا PHP $ _GET استخدامها لجمع بيانات النموذج بعد تقديم استمارة HTML مع أسلوب = "الحصول على".
يمكن $ _GET أيضا بجمع البيانات المرسلة في URL.
نفترض لدينا صفحة HTML التي تحتوي على ارتباط تشعبي مع المعلمات:
<html>
<body>
<a href="test_get.php?subject=PHP&web=w3ii.com">Test $GET</a>
</body>
</html>
عندما ينقر المستخدم على رابط "Test $GET" ، المعلمات "subject" و "web" يتم إرسالها إلى "test_get.php" ، وبعد ذلك يمكنك الوصول إلى القيم في "test_get.php" مع _GET $.
المثال التالي يوضح التعليمات البرمجية في "test_get.php" :
مثال
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
</body>
</html>
تشغيل المثال » نصيحة: سوف تتعلم المزيد عن _POST $ و_GET $ في PHP أشكال الفصل.