2012-10-02 34 views
1

我是PHP初學者,想知道是否有頁面A.php,B.php和C.php以及頁面A.php向頁面C.php發送請求我怎麼知道請求來自A. PHP沒有任何其他頁面。 謝謝我如何知道哪個php頁面請求當前的php腳本?

+0

它如何將請求發送到頁面C?標題重定向?包括? HTML鏈接? META刷新標籤? – mellamokb

+0

查看Refferer – Vultour

+0

不推薦只給你域名嗎?你可以傳遞一個標識符變量..! – dudewad

回答

0

查看php的$_SERVER變量。這聽起來像你想使用$_SERVER['HTTP_REFERER]

注意:這不會100%準確,因爲它使用來自瀏覽器用戶代理的信息,這些信息可能被欺騙,有些根本不會發送該信息。

有沒有100%保證有這種信息的方式,雖然這將是你最好的選擇。

0

我將一個變量添加到URL調用的GET陣列和檢查 - www.yoururl.com/pageC?callingPage=a 類似的東西。 referrer變量不是絕對可靠的:/ 另外,由於您需要知道您來自哪個頁面,因此您是不是也要使用該頁面的數據進行操作?如果是這樣的話,你可以傳遞標識變量和發送的數據。如果沒有,那麼你仍然可以使用我剛剛提到的方法。

+0

這不一定總是會起作用...不幸的是,沒有100%的方式來獲得這些信息。 –

+0

@JustinWood我沒有看到如何在獲取字符串中傳遞變量絕對不會100%的時間工作?他沒有給我們設計限制,這是一個完全有效的方式來做到這一點,就我而言,它確實是可靠的方式來做到這一點。請讓我知道,如果你有一個案件,這將無法正常工作(無關的服務器配置) – dudewad

+0

同樣的原因,你不能依靠'$ _SERVER'。據我所知,所有現代瀏覽器都會發送這些信息。如果你依賴於一個get/post字符串,那麼這些信息仍然可以在其間被截取或刪除或修改(這很容易實現)。我並不是說你的方法不好,我只是說它一直都不是100%正確的。 –

0

簡單地說,內C.php:

<?php 

if ($_SERVER['HTTP_REFERER'] == 'http://www.somesite.com/A.php'){ 
    // Do it 
} else { 
    // Do not 
} 

爲了提高可靠性,它可以使用通過其它數據(和更何況,如果你使用的形式)(如會話變量)。如果它只是一個沒有別的東西的直接鏈接,那就更難了。

相關問題