Tuesday, August 14, 2012
$_SERVER PHP
$HTTP_SERVER_VAR[deprecated]
SERVER နဲ႔ ပတ္သက္တဲ႔ တြက္ခ်က္မွဳေတြအေၾကာင္းေပါ႔
$_SERVER ဆိုတာကေတာ႔ headers,paths နဲ႔ script locations ေတြလို information ေတြပါ၀င္တဲ႔ array တစ္ခုပါ
Web Server ကဖန္တီးတဲ႔ array တစ္ခုလည္းျဖစ္ပါတယ္.Web Server တိုင္းမွာေတာ႔ ဒါကို run လို႔ အဆင္ေျပမယ္႔လို႔ေတာ႔အာမမခံပါဘူး
ဒါေပမယ္႔ေတာ္ေတာ္မ်ားမ်ားမွာေတာ႔ ok ပါတယ္ :)
ေအာက္မွာကေတာ႔ $_SERVER နဲ႔ သက္ဆိုင္တဲ႔ information ေတြပါ
1. 'PHP_SELF'
သူကေတာ႔ လက္ရွိ ကၽြန္ေတာ္တို႔ေရးထားတဲ႔ ဖိုင္ နာမည္ပါ document root နဲ႔လည္းဆက္စပ္မွဳရွိပါတယ္
နမူနာေျပာရရင္ script ထဲ႔မွာေရးထားတဲ႔ $_SERVER['PHP_SELF'] ရဲ႕ address ကေတာ႔ http://localhost/server.php
ကၽြန္ေတာ္ေရးထားတဲ႔ script file က server.php ပါ
Output is => server.php
2. 'GATEWAY_INTERFACE'
သူကေတာ႔ လက္ရွိကၽြန္ေတာ္တို႔သံုးေနတဲ႔ server ရဲ႕ CGI အမ်ိဳးစား ဘာလဲဆိုတာကိုျပေပးတာပါ
အသံုးျပဳပံု
<?php
echo $_SERVER['GATEWAY_INTERFACE'];
?>
output => CGI/1.1
3.'SERVER_ADDR'
သူကေတာ႔ SERVER ေအာက္မွာ run ေနတဲ႔ script ရဲ႕ ip address ပါ
ကၽြန္ေတာ္သံုးတဲ႔ စက္မွာေတာ႔ Output => ::1 ပါ
4. 'SERVER_NAME'
သူကေတာ႔ လက္ရွိ ကၽြန္ေတာ္တို႔ execute လုပ္ေနတဲ႔ script ရဲ႕ server host ရဲ႕ နာမည္ပါ
တစ္ကယ္လို႔ virtual host မွာ run တယ္ဆိုရင္ေတာ႔ virtual host မွာ သတ္မွတ္ထားတဲ႔ host name ေပၚမွာပါ
Output => localhost
5. 'SERVER_SOFTWARE'
သူကေတာ႔ SERVER ရဲ႕ identification string ပါ request လုပ္တဲ႔အခါ ေပးထားတဲ႔ ့header ထဲ႔မွာ response လုပ္ေဆာင္ဖို႔ပါ
Output of my machine => Apache/2.4.2 (Win32) OpenSSL/1.0.1c PHP/5.4.0 :)
6. 'SERVER_PROTOCOL'
သူကေတာ႔ ကၽြန္ေတာ္တို႔ script က request လုပ္တဲ႔ protocol information ရဲ႕ name ပါ
Output => HTTP/1.1
7. 'REQUEST_METHOD'
သူကေတာ႔ ကၽြန္ေတာ္တို႔ page က ဘယ္ method ကိုသံုးျပီး request လုပ္မယ္ဆိုတာကို ေျပာတာပါ
ဥပမာ GET,HEAD,POST,PUT
မွတ္ခ်က္ တစ္ကယ္လို႔ request method က HEAD ျဖစ္မယ္ဆိုရင္ header ကို sending လုပ္ျပီးတဲ႔အခါမွာေတာ႔ PHP script က terminate ျဖစ္သြားမွာပါ
Output => GET
8. 'REQUEST_TIME'
သူကေတာ႔ request ကို စတင္လိုက္တဲ႔ အခ်ိန္ကိုေဖာ္ျပတာပါ PHP 5.1.0 အထက္မွာပဲ႔အဆင္ေျပပါတယ္
ကၽြန္ေတာ္စက္မွာေတာ႔ version 5.4.0 ဆိုေတာ႔
Output => 1344870357 it timestamp :)
9. 'REQUEST_TIME_FLOAT'
နံပါတ္ 8 နဲ႔ တူပါတယ္ သူမွာေတာ႔ တိက်တဲ႔ microsecond ပါေဖာ္ျပေပးပါတယ္
PHP version 5.4.0 မွာသာအလုပ္လုပ္ပါတယ္
Output => 1344870524.401
10. 'QUERY_STRING'
သူကေတာ႔ ကၽြန္ေတာ္တို႔ access လုပ္ခဲ႔တဲ႔ query string ပဲ႔ျဖစ္ပါတယ္
Output ကေတာ႔ query မသံုးထားတဲ႔အတြက္ေၾကာင္႔ empty ပါဟီး
11. 'DOCUMENT_ROOT'
သူကေတာ႔ ကၽြန္ေတာ္တို႔ script ရဲ႕ root directory document ပဲ႔ျဖစ္ပါတယ္
server config file မွာသတ္မွတ္ထားတဲ႔ လမ္းေၾကာင္းပါ
Output => D:/xampp/htdocs ကၽြန္ေတာ္က server confiig ကို D မွာ install လုပ္ထားလို႔ပါ
12. 'HTTP_ACCEPT'
သူကေတာ႔ လက္ရွိ request လုပ္တဲ႔ header က Accept ရဲ႕ အေၾကာင္းအရာေတြပါ
Output is => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
13. 'HTTP_ACCEPT_CHARSET'
12 နဲ႔ တူပါတယ္ charset ပဲ႔ပိုသြားတာပါ
Output is => UTF-8,*;q=0.5
14. 'HTTP_ACCEPT_ENCODING'
သူကေတာ႔ လက္ရွိ request လုပ္တဲ႔ header ရဲ႕ Accept-Encoding ရဲ႕ အေၾကာင္းရာေတြပါပါတယ္
Output => gzip,deflate,sdch
15. 'HTTP_ACCEPT_LANGUAGE'
သူကေတာ႔ လက္ရွိ request လုပ္တဲ႔ header ရဲ႕ Accept-Language ရဲ႕ အေၾကာင္းရာေတြပါပါတယ္
Output => en-US,en;q=0.8,yi;q=0.6
16. 'HTTP_CONNECTION'
လက္ရွိ request လုပ္တဲ႔ header ရဲ႕ Connection ရဲ႕ အေၾကာင္းရာေတြပါပါတယ္
Output => keep-alive
17. 'HTTP_HOST'
သူကေတာ႔ SERVER_NAME နဲ႔တူပါတယ္ လက္ရွိ request လုပ္တဲ႔ header ရဲ႕ Host ရဲ႕ အေၾကာင္းရာေတြပါပါတယ္
Output => localhost
18. 'HTTP_REFERER'
သူကေတာ႔ user agent က referred လုပ္တဲ႔ လက္ရွိ page ရဲ႕ address ပါ
ကၽြန္ေတာ္စက္မွာေတာ႔အလုပ္မလုပ္ပါဘူး
တစ္ကယ္လို႔ output ထြက္ရင္ေတာ႔ ဒီလိုပါ
http://localhost/server.php
19.'HTTP_USER_AGENT'
လက္ရွိ request လုပ္တဲ႔ header ရဲ႕ User-Agent ရဲ႕ အေၾကာင္းရာေတြပါပါတယ္
user agent က access လုပ္တဲ႔ page ရဲ ႔ အညႊန္း string တစ္ခုလည္းျဖစ္ပါတယ္
Output => Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1068.1 Safari/536.3
20. 'HTTPS'
တစ္ကယ္လို႔ script က HTTPS protocol ေပၚမွာ query လုပ္မယ္ဆုိရင္ non-empty value ကို set လုပ္ပါတယ္
IIS နဲ႔ ISAPI အသံုးျပဳမယ္ဆိုရင္ request က HTTPS protocol ေပၚမွာ မလုပ္ဘူးဆိုရင္ ဒီ value က OFF ျဖစ္သြားပါလိမ္႔မယ္
21. 'REMOTE_ADDR'
သူကေတာ႔ လက္ရွိ ၾကည္႔ေနတဲ႔ user ရဲ႕ IP address ကိုေဖာ္ျပေပးမွာပါ
Output => ::1
22. 'REMOTE_HOST'
သူကေတာ႔ လက္ရွိ page ကို ၾကည္႔ေနတဲ႔ user ရဲ႕ host name ကိိုေဖာ္ျပေပးပါတယ္
Output => Error တက္တုန္း မစမ္းရေသးဘူး
23. 'REMOTE_PORT'
သူကေတာ႔ user ရဲ႕ စက္နဲ႔ web server ကို communicate ျဖစ္ေအာင္လုပ္ေပးတဲ႔ အသံုးျပဳထားတဲ႔ port ကိုေဖာ္ျပေပးတာပါ
Output => 49209 ကၽြန္ေတာ္သံုးတဲ႔ port ပါ ဟီး
24.'REMOTE_USER'
The authenticated user. တိဘူးဟီး
25. 'REDIRECT_REMOTE_USER'
The authenticated user if the request is internally redirected. ဒါလည္းတိေသးဘူး
26. 'SCRIPT_FILENAME'
သူကေတာ႔လက္ရွိ ကၽြန္ေတာ္တို႔ script ရဲ႕ တိက်တဲ႔လမ္းေၾကာင္းအျပည္႔စံုပါ
Output => D:/xampp/htdocs/server.php
27. 'SERVER_ADMIN'
web server configuration file ထဲ႔မွာ SERVER_ADMIN ကိုေပးထားတဲ႔ တန္ဖိုးပါ
တစ္ကယ္လို႔ server က virtual host မွာ run ေနတယ္ဆိုရင္ virtual host က သတ္မွတ္ထားတဲ႔ တန္ဖိုးကိုျပေပးမွာပါ
Output => postmaster@localhost
28.'SERVER_PORT'
သူကေတာ႔ web server က communication လုပ္ဖို႔ အတြက္ server စက္ရဲ႕ အသံုးျပဳတဲ႔ port ပါ
default setup ကေတာ႔ 80 ပဲ႔ျဖစ္ပါတယ္
Output => 80
29.'SERVER_SIGNATURE'
သူကေတာ႔ server version နဲ႔ virtual host ပါ၀င္တဲ႔ string ျဖစ္ပါတယ္
Output => Apache/2.4.2 (Win32) OpenSSL/1.0.1c PHP/5.4.0 Server at localhost Port 80
30. 'PATH_TRANSLATED'
လက္ရွိ script ရဲ႕ Filesystem ရဲ႕ based path ပါ
31. 'SCRIPT_NAME'
လက္ရွိ script ရဲ႕ လမ္းေၾကာင္းကိုျပေပးမွာပါ PHP developer ေတြအသံုးမ်ားပါတယ္
Output => /server.php
32. 'REQUEST_URI'
31 နဲ႔ဆင္ပါတယ္
Output =>/server.php
33.'PHP_AUTH_DIGEST'
When doing Digest HTTP authentication this variable is set to the 'Authorization' header sent by the client
မသံုးဖူးေသးဘူး
34. 'PHP_AUTH_USER'
HTTP autheriticated လုပ္တဲ႔အခါ ဒီ variable ကို user က သတ္မွတ္တဲ႔ username အျဖစ္ထားပါတယ္
35. 'PHP_AUTH_PW
HTTP autheriticated လုပ္တဲ႔အခါ ဒီ variable ကို user သတ္မွတ္ထားတဲ႔ password အျဖစ္ထားပါတယ္
36. 'AUTH_TYPE'
HTTP autheriticated လုပ္တဲ႔အခါ ဒီ variable ကို autherntication type အျဖစ္ထားပါတယ္
37.'PATH_INFO'
Client ကသတ္မွတ္ထားတဲ႔ path name information ေတြပါ၀င္ပါတယ္
ကၽြန္ေတာ္တို႔ script က ဒီလိုဆိုပါစို႔
http://localhost/server.php/server/stuff?foo=bar , ဒီေတာ႔ $_SERVER['PATH_INFO'] က server/stuff ျဖစ္သြားမွာေပါ႔
38.'ORIG_PATH_INFO'
PHP process မလုပ္ခင္က PATH_INFO ရဲ႕ Original Version ပါ
အေပၚက $_SERVER ကိုပိုျပီးသိခ်င္ရင္ေတာ႔
<?php
print_r($_SERVER);
?>
Thanks for Reading
Written by cyberoot1@gmail.com
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Thanks for your comments
Welcome from cyberoot