2010-11-29 15 views
0

こんにちは、私はPHPで新しく、私はdefine( 'INCLUDE_CHECK'、true)に遭遇しました。私はそれが何のために理解できませんでしたか?PHPでINCLUDE_CHECKは何をしますか?

Pls。説明してください。

ありがとうございます! Sagar

答えて

4

これは後でそのアプリケーションで使用される定数です。これらの定数を作成するには、Define()を使用します。通常、これは構成データに使用されます。この定数を後で使用するには、文字列INCLUDE_CHECKを$のない変数のようにコードで使用します。

ので

if(INCLUDE_CHECK) 
{ 
// Do code that only should happen if you want it to. 
} 
+0

お返事ありがとうございました。それはブール変数のようですか? – Sagar

+0

可能です。それらは、複雑でないデータ構造を保持することができます。String、float、int、bool。オブジェクトや配列を保持することはできません。もしあなたが本当にPHPを初めて使っているのであれば、私はDefine()のphp.netのエントリを読んで、理解が難しい場合は後でそれに戻ってください。これはPHPの中程度の高度な側面です。 – DampeS8N

+0

本当にありがとうございました! – Sagar

0

INCLUDE_CHECKだけ誰かがPHPで書かれていることをいくつかのコードを、PHP自体の機能ではありません。最初のヒットon googleは、変数が定義されているかどうかをチェックすることによってユーザーが保護しようとしている構成ファイルを示しています。

I Googleで見出さsnipedに取られたアプローチは、この

  • 直接参照することができるファイルのようなものである(例えばhttp://example.com/foo.php)例えば、INCLUDE_CHECKを定義しINCLUDE_CHECKをチェックするファイルを含むであろうconfig.php; foo.phpが既に定義しているので、これは正しく動作します
  • ユーザーがconfig.phpに直接アクセスすると(例えばhttp://example.com/config.php)、INCLUDE_CHECKが定義されていないと、エラーが発生し、ユーザーがスクリプトを実行できなくなります。

ユーザが直接のconfig.phpにアクセスする場合は、次の例は、この明確

foo.php

<?php 
defined('INCLUDE_CHECK', true); 
require_once 'config.php'; 
?> 

config.phpの

<?php 
if (!defined('INCLUDE_CHECK')) { die ('invalid access'); } 
echo 'Hello World!'; 
?> 

を行う必要があり、その後、INCLUDE_CHECKではありません定義されているので、スクリプトはメッセージ無効アクセスで死ぬでしょう。ユーザーがfoo.phpにアクセスすると、INCLUDE_CHECK が定義され、にconfig.phpが含まれ、Hello Worldがエコーされます。

これは、構成ファイルbtwを保護するのに大変便利な方法です。より簡単で信頼性の高い方法については、my post hereを参照してください。

+0

返信いただきありがとうございます!これは本当に役に立ちましたが、まだあなたのansのgoogleリンクの設定ファイルの保護がどのように行われているのか理解していません... – Sagar

+0

私はgoogleの例がどのように見つかったか説明するために私の答えを変更しました。私が言ったように、これらのファイルを保護するために取るのは良い方法ではありません。 –

0

DampeS8N Answerにちょうど加えて正しいものです。

私はphp.netのリンクhttp://in2.php.net/manual/en/function.define.php を読み、例の下にそれを明確に任意の値が一定とINCLUDE_CHECKは、私はPHPの機能のいくつかの種類として考えだけ変動したとして、変数を定義するための関数を定義内部で使用することができます。

<?php 
define("CONSTANT", "Hello world."); 
echo CONSTANT; // outputs "Hello world." 
echo Constant; // outputs "Constant" and issues a notice. 

define("GREETING", "Hello you.", true); 
echo GREETING; // outputs "Hello you." 
echo Greeting; // outputs "Hello you." 

?> 

@ DampeS8N pls。間違っているとコメントする!

あなたのお返事ありがとうございます!

関連する問題