我試圖使用define函數和定義的函數來避免盜鏈/直接訪問PHP腳本,但由於某種原因它不起作用。防止使用PHP中的define和defined函數直接訪問
我遇到的問題是,它根本無法正常工作,即使我先訪問index.php並按照鏈接和/或發佈表單,我也會收到「Hotlinking is not allowed」消息。
這裏是我想要做的一個例子:
的index.php
<?php
define("ACCEPT",TRUE);
?>
<html>
...
core.php中
<?php
if (defined('ACCEPT'))
{
// ACCEPT is defined which means the user came here via index.php
}
else
{
// The user is most likely direct accessing core.php, abort.
echo "Hotlinking is not allowed";
exit;
}
請注意,後「防止直接訪問,是否有可能欺騙一個PHP定義?」沒有回答我的問題,也沒有「定義和定義禁止直接訪問」的帖子。
如果您有不想直接訪問的內容,請勿將其放入文檔根目錄。保持在外面。您仍然可以將其包含在其他腳本中。 – Brad
不幸的是,我的主機不允許我訪問任何東西,但public_html root =/ – Squeeze
你應該得到一個新的主機!即使我的3美元/月。共享主機讓我可以做到這一點。 5美元/月,你可以得到一個堅實的VPS。 – Brad