2012-03-02 29 views
0

我想阻止直接訪問我的install.php文件,除非用戶已經完成填充信息和提交表單的步驟。PHP:定義常數以防止直接訪問

安裝/ index.php文件:

define("ACCESS", true); 

// HTML form to take to install.php 

安裝/ install.php了:

if (!defined("ACCESS")) { 
    echo "You cannot access this page directly."; 
    exit(); 
} else { 
    // Run SQL Queries 
    echo "Database installation successful."; 
} 

顯然,這是行不通的。我如何才能使這個概念發揮作用?

其他問題: 這樣做的最佳做法是什麼? 我應該使用常量還是函數?

+0

更多地解釋你的過程。沒有更多信息,很難爲*最佳做法推薦*。 – 2012-03-02 23:55:16

+0

您的概念只有在使用「include()」時纔有效。如果不知道應用程序的工作流程,最佳實踐就很困難。 – Marcus 2012-03-02 23:58:49

+0

因此,這段代碼適用於include();但是如果我選擇不使用include(),我應該知道其他方法嗎? – Aaron 2012-03-03 00:02:14

回答

1

您可以這樣做,但不是讓用戶直接訪問install.php,而是從index.php那裏得到include,它定義了常量。

通過這種方式,您可以控制何時通過index.php在適當時加載它來查看該腳本,並且由於您檢查了定義的常量,它們仍然無法直接訪問它。

+0

使用'include();'完美地工作,謝謝。 – Aaron 2012-03-03 00:02:47