本文目錄一覽:
php中如何讀取環境變數
PHP中的環境變數可以通過 $_SERVER 獲取
$_SERVER是一個包含伺服器端相關信息的PHP全局環境變數,在PHP4.1.0之前的版本使用$HTTP_SERVER_VARS。
下面是詳細的說明及用法:
$_SERVER[‘PHP_SELF’] 當前正在執行腳本的文件名,與 document root相關。在FORM表單中,如執行文件是本身,你可以在ACTION中使用$_SERVER[‘PHP_SELF’],好處是當執行文件名有變動時可以不去頻繁替換ACTION中的文件名。
$_SERVER[‘SERVER_NAME’] 當前運行的PHP程序所在伺服器主機的名稱。
$_SERVER[‘REQUEST_METHOD’] 訪問頁面時的請求方法,即GET、HEAD、POST、PUT。
$_SERVER[‘DOCUMENT_ROOT’] 當前運行的PHP程序所在的文檔根目錄。也就是PHP.INI文件中的定義。
$_SERVER[‘HTTP_REFERER’] 鏈接到當前頁面的前一頁面的URL地址。在頁面跳轉功能中非常有用。
$_SERVER[‘REMOTE_ADDR’] 正在瀏覽當前頁面訪問者的IP地址。
$_SERVER[‘REMOTE_HOST’] 正在瀏覽當前頁面用戶的主機名。
$_SERVER[‘REMOTE_PORT’] 正在遊覽的用戶連接到伺服器時所使用的埠。
$_SERVER[‘SCRIPT_FILENAME’] 當前執行腳本的絕對路徑名。
$_SERVER[‘SERVER_PORT’] 伺服器所使用的埠
$_SERVER[‘SCRIPT_NAME’] 包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
$_SERVER[‘REQUEST_URI’] 訪問此頁面所需的URI。如「/index.html」。
$_SERVER[‘PHP_AUTH_USER’] 應用在HTTP用戶登錄認證功能中,這個變數是用戶輸入的用戶名。
$_SERVER[‘PHP_AUTH_PW’] 應用在HTTP用戶登錄認證功能中,這個變數便是用戶輸入的密碼。
$_SERVER[‘AUTH_TYPE’] 應用在HTTP用戶登錄認證功能中,這個變數便是認證的類型。
備註:上述提到的這些PHP全局環境變數,在php.ini中的register_globals設置為on時,這些變數在所有PHP程序腳本中都可用,也就是$_SERVER數組被分離了。當然為了安全考慮,還是不要將register_globals打開為好。
使用PHP代碼編寫一個在網頁中強迫用戶進行身份認證的程序語句段
if ($_SERVER[‘PHP_AUTH_USER’]!=’user’ || $_SERVER[‘PHP_AUTH_PW’]!=’123456′) {
header(‘WWW-Authenticate: Basic realm=”MyFramework Realm”‘);
header(‘HTTP/1.0 401 Unauthorized’);
echo “You must enter a valid login ID and password to access this resource.\n”;
exit;
}
上面的代碼段作用就是強制用戶輸入認證,用戶名跟密碼可以自己設置
PHP 可以獲取客戶端哪些訪問信息
?php
echo “br”.$_SERVER[‘PHP_SELF’];#當前正在執行腳本的文件名,與 document root相關
echo “br”.$_SERVER[‘argv’];#傳遞給該腳本的參數。
echo “br”.$_SERVER[‘argc’]; #包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。
echo “br”.$_SERVER[‘GATEWAY_INTERFACE’]; #伺服器使用的 CGI 規範的版本。例如,「CGI/1.1」。
echo “br”.$_SERVER[‘SERVER_NAME’]; #當前運行腳本所在伺服器主機的名稱。
echo “br”.$_SERVER[‘SERVER_SOFTWARE’]; #伺服器標識的字串,在響應請求時的頭部中給出。
echo “br”.$_SERVER[‘SERVER_PROTOCOL’]; #請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
echo “br”.$_SERVER[‘REQUEST_METHOD’]; #訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
echo “br”.$_SERVER[‘QUERY_STRING’]; #查詢(query)的字元串。
echo “br”.$_SERVER[‘DOCUMENT_ROOT’]; #當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。
echo “br”.$_SERVER[‘HTTP_ACCEPT’]; #當前請求的 Accept: 頭部的內容。
echo “br”.$_SERVER[‘HTTP_ACCEPT_CHARSET’]; #當前請求的 Accept-Charset: 頭部的內容。例如:「iso-8859-1,*,utf-8」。
echo “br”.$_SERVER[‘HTTP_ACCEPT_ENCODING’]; #當前請求的 Accept-Encoding: 頭部的內容。例如:「gzip」。
echo “br”.$_SERVER[‘HTTP_ACCEPT_LANGUAGE’];#當前請求的 Accept-Language: 頭部的內容。例如:「en」。
echo “br”.$_SERVER[‘HTTP_CONNECTION’]; #當前請求的 Connection: 頭部的內容。例如:「Keep-Alive」。
echo “br”.$_SERVER[‘HTTP_HOST’]; #當前請求的 Host: 頭部的內容。
echo “br”.$_SERVER[‘HTTP_REFERER’]; #鏈接到當前頁面的前一頁面的 URL 地址。
echo “br”.$_SERVER[‘HTTP_USER_AGENT’]; #當前請求的 User_Agent: 頭部的內容。
echo “br”.$_SERVER[‘HTTPS’];# — 如果通過https訪問,則被設為一個非空的值(on),否則返回off
echo “br”.$_SERVER[‘REMOTE_ADDR’]; #正在瀏覽當前頁面用戶的 IP 地址。
echo “br”.$_SERVER[‘REMOTE_HOST’]; #正在瀏覽當前頁面用戶的主機名。
echo “br”.$_SERVER[‘REMOTE_PORT’]; #用戶連接到伺服器時所使用的埠。
echo “br”.$_SERVER[‘SCRIPT_FILENAME’]; #當前執行腳本的絕對路徑名。
echo “br”.$_SERVER[‘SERVER_ADMIN’]; #管理員信息
echo “br”.$_SERVER[‘SERVER_PORT’]; #伺服器所使用的埠
echo “br”.$_SERVER[‘SERVER_SIGNATURE’]; #包含伺服器版本和虛擬主機名的字元串。
echo “br”.$_SERVER[‘PATH_TRANSLATED’]; #當前腳本所在文件系統(不是文檔根目錄)的基本路徑。
echo “br”.$_SERVER[‘SCRIPT_NAME’]; #包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
echo “br”.$_SERVER[‘REQUEST_URI’]; #訪問此頁面所需的 URI。例如,「/index.html」。
echo “br”.$_SERVER[‘PHP_AUTH_USER’]; #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的用戶名。
echo “br”.$_SERVER[‘PHP_AUTH_PW’]; #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的密碼。
echo “br”.$_SERVER[‘AUTH_TYPE’]; #當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是認證的類型。
?
原創文章,作者:IBEW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147043.html