php小編草莓今天將為大家介紹如何在 PHP 中確定 referer。 referer 是 HTTP 請求頭的一部分,用於識別請求的來源頁面。在開發過程中,有時需要取得 referer 資訊來實現特定功能,例如防盜鏈、統計分析等。透過 PHP 可以輕鬆取得 referer 訊息,從而實現相關功能。接下來,我們將詳細介紹如何在 PHP 中確定 referer,讓大家輕鬆掌握這項技巧。
$_SESS<strong class="keylink">io</strong>N[]
決定引用者
由於 HTTP_REFERER
可以被欺騙/偽造,php 允許我們使用會話/cookie 來確定傳入的使用者請求是否來自你的網域(伺服器)。
我們將為本文建立兩個演示頁面。
userrequest.php
程式碼:
<code> <code class="language-php+HTML hljs" data-lang="php+HTML"><!DOCTYPE <strong class="keylink">html</strong>> <body> <f<strong class="keylink">ORM</strong> action ="determineuser.php" method ="post" align="center"> <input type ="submit" name="click" value="Determine user request through session"/> <?php session_start(); //first we start session $setsession = uniqid(mt_rand(), TRUE); //Set it true, assign mt_rand to ensure secuity $_SESSION['set'] = $setsession; //we can use url to export session over servers $redirect = "determineuser.php?set={$setsession}"; // this url can be on any server ?> <br> <h1 align="center"> <?php echo "Your current session is:".$_SESSION['set']; //check session on page 1 echo"<br>"; ?> </form> </body> </html> </code></code>
determineuser.php
程式碼:
<code> <code class="language-php+HTML hljs" data-lang="php+HTML"><?php session_start(); //check if the session and form input is set if ( (isset( $_SESSION[ 'set' ] ) && $_SESSION[ 'set' ] === TRUE ) || isset( $_POST[ 'click' ] ) ) { echo "Determined Last visited page on the server using HTTP REFERER:<br>".$_SERVER['HTTP_REFERER']; ?> <h1 align="center"> <p> This is the secure way to determine referer using session:</p> <?php echo $_SESSION['set'];//check session on page 2 (compare to determine from the last page) ?> </h1> <?php } else { //if the dom<strong class="keylink">ai</strong>n referer is not determined, header function will redirect the user page to the last page header('Location:userrequest.php'); exit; //exit to release unnessary server load } ?> </form> </body> </html> </code></code>
輸出:
請務必注意,雖然確定 referer
的傳統方法在大多數情況下並不可靠,但仍被廣泛使用。為了更安全性,我們建議使用 session
或 (<strong class="keylink">ajax</strong>
) 而不是 HTTP
。
以上是在 PHP 中確定 referer的詳細內容。更多資訊請關注PHP中文網其他相關文章!