2012-03-02 24 views
0

ユーザが情報を入力してフォームを送信するステップを経なかった場合は、私のinstall.phpファイルに直接アクセスしないようにします。PHP:定数を定義してダイレクトアクセスを禁止する

は/ index.phpをインストール:

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

明らかにこれは動作しません:

define("ACCESS", true); 

// HTML form to take to install.php 

は、/ install.phpをインストールしてください。どのように私はこのコンセプトを働かせることができますか?

その他の質問: このためのベストプラクティスは何ですか? 定数または関数を使用すべきですか?

+0

詳細を説明してください。 *ベストプラクティス*の推奨事項を作成することは困難です。 –

+0

コンセプトは "include()"を使用する場合にのみ有効です。ベストプラクティスは、アプリケーションのワークフローを知らなくても困難です。 – Marcus

+0

このコードはinclude();ではうまく動作しますが、include();を使用しないことを選択した場合には知っておくべき他のメソッドがあります; – Aaron

答えて

1

これは可能ですが、ユーザーにinstall.phpを直接アクセスさせる代わりに、includeindex.phpから定数を定義します。

この方法では、適切なときにindex.phpを読み込んでスクリプトを表示すると、定義された定数のチェックのためにスクリプトに直接アクセスできなくなります。

+0

'include();'を使うと、完璧に動作します。 – Aaron

関連する問題