為了安全有時候我們要判斷表單提交是否是來自本站,下面本站介紹兩種方法,僅供了解方法原理,具體使用請進行完善!
方法一:
你可以把處理提交數據的代碼寫到一個單獨的文件裡,比如form.php。
<?php
if (defined(’INSIDE’)) {//判斷是否有定義INSIDE常量
//處理表單
} else {
exit(’錯誤’);
}
?>
然後,在提交表單的那個頁面先定義INSIDE這個常量,常量值無所謂
define(’INSIDE’, ’TRUE’);
接著,判斷是否有提交,如果提交,則
include ’form.PHP’;
=======================================================================================
方法二:
<?PHP
if(PHP_VERSION<’4.1.0’){$_SERVER = $HTTP_SERVER_VARS;}
if(isset($_SERVER["HTTP_REFERER"])){
//針對部分浏覽器可能無HTTP_REFERER,所以做這麼一個判斷
$servername=$_SERVER[’SERVER_NAME’];
$sub_from=$_SERVER["HTTP_REFERER"];
$sub_len=strlen($servername);
$checkfrom=substr($sub_from,7,$sub_len);
if($checkfrom!=$servername)
{
echo "<script language=’javascript’>window.alert(’數據來源有誤,建站學www.jzxue.com不接收站外提交的數據!’);window.opener=self;window.close();</script>";
exit;
}
}
?>
此方法並非絕對安全,因為HTTP_REFERER是可以偽造的,只能是防君子但不能防小人了,但在一般情況下已經夠用。