‎‎متغير هاي جهاني ـPHP-‎Superglobals

Previous >    <Next  

‎متغير هاي سوپر گلوبال درphp4.1.0 داخلي بوده ودر تمام نواحيه اسكريپت php قابل دسترسي ‎است .اين متغيرها بدون هيچ كار خاصي در تمام توابع، كلاسها وفايلها قابل دسترسي هستند.

‎‎متغير هايSuperglobal php عبارتند از

‎$GLOBALS -1

‎$_SERVER -2

‎$_REQUEST-3

‎$_POST -4

‎$_GET -5

‎$_FILES -6

‎$_ENV -7

‎$_COOKIE -8

‎$_SESSION -9

‎تعدادي از همين متغيرهاي ابر جهاني را در همين بخش تشريح ومابقي در فصول مرتبط با خودشان ‎مطرح ميگردند.

‎‎متغير ابرجهاني‎ $GLOBALS

‎‎متغيرهاي ابرجهاني متغيرهاي داخلي هستند، كه در تمام نواحي در دسترس ميباشند.

‎‎متغيرابرچهانيPHP $GLOBALS

‎متغير ابر جهاني‎$GLOBALS‎ يك آرايه ايست كه تمام متغيرهاي جهاني اسكريپت را ‎همراه مقدار نگه ميدارد .اين متغير يك آرايه انجمني است ومحتوي آن زوج نام متغير ومقدار ‎ميباشد.نام متغير بدون كراكتر$ ميباشد.

‎‎مثال ـ در مثال زير نشان ميدهد چگونه از متغير‎$GLOBALS‎ استفاده ميشود.

<?php 
  $x=75;
  $y=25;
  function addition(){
    $GLOBALS["z"]=$GLOBALS["x"]+$GLOBALS["y"];
  }
  addition();
  echo $z;
?>

--(go to editor for change code and run)

‎در مثال بالا دو متغير‎$y , $x‎ در خارج تابع ايجادشدند ولي متغير ‎$z‎‎درداخل تابع توسط ‎$GLOBALS['z'] ‎‎براي خارج از تابع ايجاد ميشود .ونتيجه درآن قرار ميگيرد. ‎اين بدين معني است كه، نميتوان ازمتغير‎$z‎ بطور مستقيم استفاده نمود.

‎‎متغير ابر جهانيPHP $_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"];
?> 

--(go to editor for change code and run)

‎‎در جدول زير مهمترين عناصر كه در داخل‎$_SERVER[] ‎ميتواند استفاده گردد،آمده است

Element/Code Description
$_SERVER['PHP_SELF'] Returns the filename of the currently executing script
$_SERVER['GATEWAY_INTERFACE'] Returns the version of the Common Gateway Interface (CGI) the server is using
$_SERVER['SERVER_ADDR'] Returns the IP address of the host server
$_SERVER['SERVER_NAME'] Returns the name of the host server (such as www.w3schools.com)
$_SERVER['SERVER_SOFTWARE'] Returns the server identification string (such as Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL'] Returns the name and revision of the information protocol (such as HTTP/1.1)
$_SERVER['REQUEST_METHOD'] Returns the request method used to access the page (such as POST)
$_SERVER['REQUEST_TIME'] Returns the timestamp of the start of the request (such as 1377687496)
$_SERVER['QUERY_STRING'] Returns the query string if the page is accessed via a query string
$_SERVER['HTTP_ACCEPT'] Returns the Accept header from the current request
$_SERVER['HTTP_ACCEPT_CHARSET'] Returns the Accept_Charset header from the current request (such as utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST'] Returns the Host header from the current request
$_SERVER['HTTP_REFERER'] Returns the complete URL of the current page (not reliable because not all user-agents support it)
$_SERVER['HTTPS'] Is the script queried through a secure HTTP protocol
$_SERVER['REMOTE_ADDR'] Returns the IP address from where the user is viewing the current page
$_SERVER['REMOTE_HOST'] Returns the Host name from where the user is viewing the current page
$_SERVER['REMOTE_PORT'] Returns the port being used on the user's machine to communicate with the web server
$_SERVER['SCRIPT_FILENAME'] Returns the absolute pathname of the currently executing script
$_SERVER['SERVER_ADMIN'] Returns the value given to the SERVER_ADMIN directive in the web server configuration file (if your script runs on a virtual host, it will be the value defined for that virtual host) (such as someone@w3schools.com)
$_SERVER['SERVER_PORT'] Returns the port on the server machine being used by the web server for communication (such as 80)
$_SERVER['SERVER_SIGNATURE'] Returns the server version and virtual host name which are added to server-generated pages
$_SERVER['PATH_TRANSLATED'] Returns the file system based path to the current script
$_SERVER['SCRIPT_NAME'] Returns the path of the current script
$_SERVER['SCRIPT_URI'] Returns the URI of the current page

‎‎متغير ابر جهانيPHP-‎ $_REQUEST

‎اين متغير ابر جهاني‎$_REQUEST[] ‎ براي جمع نمودن اطلاعات فرم پس از عمل submit‎استفاده ميشود.

‎در مثال زير فرمي را با يك فيلد وردي‎(input field) و يكbutton از نوع submit نشان ميدهد . ‎هنگاميكه كاربر كليدSubmit راclick مي نمايد، اطلاعات را، به فايلphp در مشخصهaction فرم ‎ارسال مينمايد .دراين فرم اطلاعات به اسكريپتphp خودش ارسال ميگردد .اين مطلب از action فرم ‎كه بصورت زير است مشخص ميشود.

action="<?php echo $_SERVER['PHP_SELF']; ?>"

‎بدين ترتيب عمليات پردازشي اطلاعات فرم در اسكريپتphp خودش انجام ميشود .دراين مثال اسكريپت ‎بعداز‎</form>‎ اين كار را انجام ميدهد . در اسكريپت، براي دسترسي باطلاعات ‎فرم از‎$_REQUEST‎استفاده ميشود.

‎بعنوان نمونه عبارت‎$_REQUEST[‎"fname‎"] ‎يعني محتوي فيلد ورودي فرم بعداز ‎كليكSubmit فرم

‎‎مثال ـ استفاده از‎$_REQUEST[]

‎نكته ـaction همانست كه ذكر شد .اما بدليل خاصي براي رفع مشكل، متغير كمكيphp_s با قرار دادن ‎عبارتPHP_SELF درآن و استفاده درaction برنامه تنظيم گرديداست .اين دو هيچ تفاوتي در حالت ‎عادي ندارند.

<html>
<body>
<?php  $php_s="PHP_SELF"; ?>
<form method="post" action="<?php  echo $_SERVER[$php_s];?>">
  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> 

--(go to editor for change code and run)

‎‎متغير ابرجهانيPHP $_POST

‎متغير‎$_POST‎ متغير ابر جهاني است ،كه براي جمع آوري اطلاعات از فرمHTML ‎با متدPOST بعد از submit آن استفاده ميشود.

‎در مثال زير فرمي است، با فليد ورودي ويكbutton از نوع Submt كه با كليك آن اطلاعات فرم به ‎اسكريپت مشخص شده درaction ارسال ميگردد .دراين اسكريپت ، اطلاعات فرم از طريق متغير ابر ‎جهاني‎$_POST[ ]‎ قابليت دسترسي دارد.

‎بعنوان نمونه‎$_POST[‎"fname‎"]‎ محتوي فليدfname در فرم پس از عملsubmit ‎فرم وارسال اطلاعات.

‎‎مثال ـ فرم بامتدPOST

 <html>
<body>
<?php  $php_s="PHP_SELF"; ?>
<form method="post" action="<?php  echo $_SERVER[$php_s];?>">
  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> 



--(go to editor for change code and run)

‎‎در مورد متدPOST در بخش فرم ها اطلاعات كاملتري بيان ميگردد .

‎‎متغير ابر جهانيPHP $_GET

‎متغير ابر جهاني‎$_GET[ ] ‎ براي جمع آوري اطلاعات ارسالي فرم با متدGET ‎استفاده ميشود .پس از عملsubmit فرم اطلاعات ارسالي درمتغير‎$_GET[ ]‎ قابل ‎دسترسي ميباشد .اطلاعات در اين فرمت بصورتUrl ارسال ميشود.

‎مثال ـ فرض كنيد داراي يكHTML page با لينكي بهtest_get.php با دو پارامتر وروديsubject ‎وweb داشته باشيم .ميخواهيم درtest_get.php به اطلاعات پارامترهاي ارسالي دسترسي داشته ‎باشيم.برنامه صفحه مطابق زير است.

<html>
<body>

<a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>

</body>
</html> 

--(go to editor for change code and run)

‎‎برنامه دريافت كننده اطلاعاتtest_get.php مطابق زير است .

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

</body>
</html> 

Previous >    <Next