本文目錄一覽:
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-hant/n/147043.html