2024 年 PHP 日本研討會

URL 函式

目錄

新增筆記

使用者貢獻的筆記 4 則筆記

5
jrg45 at pantheon dot yale dot edu
22 年前
請注意,根據瀏覽器的不同,$_SERVER["HTTP_REFERER"] 可能不會包含參考網址中的 GET 資料。因此,如果您依賴 GET 變數來產生頁面,則使用 HTTP_REFERER 將使用者「跳轉」回來源頁面並不是一個好主意。
3
verdy_p at wanadoo dot fr
23 年前
另請注意,$HTTP_REFERER 中顯示的網址並不一定是使用者點擊以調用 PHP 腳本的網頁網址。
它可能是您自己網站上的文件,其中包含一個 HTML 元素,其屬性引用了該腳本。另請注意,目前的頁面片段 (#anchor) 是否與網址一起傳輸取決於瀏覽器。
範例
<FRAME src="your-page-script.php">
<IMAGE src="your-image-script.php">

在這種情況下,瀏覽器應該傳輸容器文件的網址,但有些瀏覽器仍然堅持使用瀏覽器歷史記錄中的前一個文件,這可能會導致在使用者返回引用您腳本的文件時發送不同的 $HTTP_REFERER 值。如果您要確保發送的是實際的目前文件或歷史記錄中的前一個文件,請使用用戶端 JavaScript 將其發送到您的腳本

<SCRIPT language="JavaScript"><!--
document.writeln('<FRAME src="your-page-script.php?js=1&ref=' +
document.location + '">');
--></SCRIPT><NOSCRIPT>
<FRAME src="your-page-script.php?js=0">
</NOSCRIPT>

然後在您的頁面腳本中檢查 $js 的值,以便在遠端使用者代理程式不支援用戶端腳本(例如大多數索引/掃描機器人、某些舊的或特殊的簡化瀏覽器,或使用者已停用 JavaScript 的瀏覽器)時產生適當的內容。
1
php at malaker dot com
20 年前
如果程式碼位於 FRAME 或 IFRAME 的來源頁面中(例如 SRC="sourcepage.php"),則以下方法不會在使用者瀏覽器中顯示網址(如作者所述)。在這種情況下,會顯示來源頁面的網址。

$url = sprintf("%s%s%s","http://",$HTTP_HOST,$REQUEST_URI);
echo "$url";

預期結果:https://127.0.0.1/urltest/framedpage.php

實際結果:https://127.0.0.1/urltest/sourcepage.php
0
chemanfit at hotmail
21 年前
補充說明以上內容,您需要加上 ?

範例

$page=$PHP_SELF."?".$_SERVER['QUERY_STRING'];
To Top