الدرس الخامس عشر -المتغيرات العامة

 

المتغيرات العامة في php  :

هي متغيرات عامة محجوزة من قبل اللغة  ويمكن الوصول اليها من أي مكان في المشروع دون عمل شيء

 

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION

 

  • $GLOBALS

 هو متغير عام يمكن الوصول الية من أي مكان

<?php
$x = 75;
$y =
25;
 

function addition() {
  
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
 
addition();

echo $z;
?>

$_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

 

    المتغير $_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

$_SERVER['PHP_SELF']  تشير الي الذهاب الي نفس المسار أي ان البيانات سيتم ارسالها الي نفس الصفحة التي نحن بها .

if ($_SERVER["REQUEST_METHOD"] == "POST")  اذا كان طريقة ارسال البيانات هي "post " يتم جلب بيانات عناصر الـ html  

  $name = $_REQUEST['fname']; متغير يحمل قيمة العنصر fname  التي ادخلها المستخدم بهذه الطريقة يتم جلب بيانات عناصر html  الي php  .

if (empty($name)) يتم التحقق من قيمة fname  اذا بها بيانات او فارغة

 

 

 المتغير  $_POST

يستخدم نفس طريقة ال $_REQUEST

 يقوم باستقبال البيانات القادمة عن طريقة الـ method =="POST"

نفس المثال السابق فقط استبدلنا   $_REQUEST   بدل $_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>

 

 

 

المتغير  $_GET

أيضا يستخدم لجمع واستقبال  البيانات التي ترسل عبر URL  

 

<html>
<body>
<a href="test_get.php?subject=PHP&web=3looom.com">Test $GET</a>

</body>
</html>

 

سنتقوم بارسال متغير باسم subject  يحمل القيمة php واخر باسم web  يحمل القيمة  3looom.com

 

يتم استقبال هذه البيانات في صفحة اخري اسمها test_get.php    

 

<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>

 

 

شرح المثال :

$_GET['subject'] تقوم باستقبال قيمة الـ subject

$_GET['web']; تقوم باستقبال قيمة الـ web