$_SERVER["SCRIPT_NAME"]、$_SERVER["PHP_SELF"]、$_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]

來源:互聯網
上載者:User

標籤:

1、$_SERVER["SCRIPT_NAME"]

說明:包含當前指令碼的路徑

2、$_SERVER["PHP_SELF"]

說明:當前正在執行指令碼的檔案名稱

3、$_SERVER["QUERY_STRING"]

說明:查詢(query)的字串

4、$_SERVER["REQUEST_URI"]

說明:訪問此頁面所需的URI

執行個體:

1.http://blog.snsgou.com/ (直接開啟首頁)

結果:

$_SERVER["SCRIPT_NAME"] = "/index.php"$_SERVER["PHP_SELF"]     = "/index.php"$_SERVER["QUERY_STRING"] = ""$_SERVER["REQUEST_URI"] = "/"

2.http://blog.snsgou.com/?p=222 (附帶查詢)

結果:

$_SERVER["SCRIPT_NAME"] = "/index.php"$_SERVER["PHP_SELF"]     = "/index.php"$_SERVER["QUERY_STRING"] = "p=222"$_SERVER["REQUEST_URI"] = "/?p=222"

3.http://blog.snsgou.com/index.php?p=222&q=biuuu

結果:

$_SERVER["SCRIPT_NAME"] = "/index.php"$_SERVER["PHP_SELF"]     = "/index.php"$_SERVER["QUERY_STRING"] = "p=222&q=biuuu"$_SERVER["REQUEST_URI"] = "/index.php?p=222&q=biuuu"

4.http://blog.snsgou.com/123/123.php/abc/def?id=222&name=jack

$_SERVER["SCRIPT_NAME"] = "/123/123.php"$_SERVER["PHP_SELF"]     = "/123/123.php/abc/def"$_SERVER["QUERY_STRING"] = "id=222&name=jack"$_SERVER["REQUEST_URI"] = "/123/123.php/abc/def?id=222&name=jack"

5.http://blog.snsgou.com/123/123.php/abc/def.bat?id=222&name=jack

$_SERVER["SCRIPT_NAME"] = "/123/123.php"$_SERVER["PHP_SELF"]     = "/123/123.php/abc/def.bat"$_SERVER["QUERY_STRING"] = "id=222&name=jack"$_SERVER["REQUEST_URI"] = "/123/123.php/abc/def.bat?id=222&name=jack"

 

  • $_SERVER["SCRIPT_NAME"]  擷取當前指令碼的路徑,如:index.php
  • $_SERVER["PHP_SELF"]  當前正在執行指令碼的檔案名稱
  • $_SERVER["QUERY_STRING"]  擷取查詢語句,執行個體中可知,擷取的是?後面的值
  • $_SERVER["REQUEST_URI"]  擷取http://blog.snsgou.com後面的值,包括/

總結一下,對於SCRIPT_NAME、PHP_SELF、QUERY_STRING、REQUEST_URI,深入瞭解將有利於我們 在$_SERVER函數中正確調用這四個值。

一般地: $_SERVER["REQUEST_URI"] = $_SERVER["PHP_SELF"] . ‘?‘ . $_SERVER["QUERY_STRING"]

 

注意:當有地址修正時,情況有些變化,如:

/class 重寫到 /index.php?app=class&mod=Index&act=index

此時:

$_SERVER[‘PHP_SELF‘] 值等於 /index.php
$_SERVER[‘QUERY_STRING‘] 值等於 /index.php?app=class&mod=Index&act=index
$_SERVER["REQUEST_URI"] 值等於 /class

 

uchome系統中處理技巧:

//處理REQUEST_URIif (!isset($_SERVER[‘REQUEST_URI‘])) {    $_SERVER[‘REQUEST_URI‘] = $_SERVER[‘PHP_SELF‘];    if (isset($_SERVER[‘QUERY_STRING‘])) $_SERVER[‘REQUEST_URI‘] .= ‘?‘ . $_SERVER[‘QUERY_STRING‘];}if ($_SERVER[‘REQUEST_URI‘]) {    $temp = urldecode($_SERVER[‘REQUEST_URI‘]);    if (strexists($temp, ‘<‘) || strexists($temp, ‘"‘)) {        $_GET = shtmlspecialchars($_GET); // XSS    }}

 

 

 

延伸閱讀:

PHP擷取當前頁面的URL

PHP擷取當前網域名稱$_SERVER[‘HTTP_HOST‘]和$_SERVER[‘SERVER_NAME‘]的區別

PHP的$_SERVER[‘PHP_SELF‘]造成的XSS漏洞攻擊及其解決方案

 

$_SERVER["SCRIPT_NAME"]、$_SERVER["PHP_SELF"]、$_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.