ホームページ >バックエンド開発 >PHPチュートリアル >なぜこんなことをするのですか? -

なぜこんなことをするのですか? -

WBOY
WBOYオリジナル
2016-06-13 11:59:521224ブラウズ

なぜこんなことをするのですか?助けていただけますか? -
定義済み ('IN') か、死ぬ ('アクセス拒否');
この文。フロントエンドコントローラーにファイルがあるのですが、なぜこれを行う必要があるのでしょうか? この定数をindex.phpファイルに定義し、定義されているかどうかを確認します。ただし、フロントエンドコントローラーは本来アクセスに使用されます。なぜこの定義を追加する必要があるのでしょうか?全然無駄じゃないですか?
------解決策---------
IN が定義されていない場合は、実行を終了し、関数出力 Access Denied

は、IN が定義されていない場合、後続のプログラムが実行されないことを意味します。

これは ok を出力します
define('IN', 123);
define ( 'IN' ) または die ( 'Access Denied' );
echo 'ok';
define('IN', 123); という文が存在しない場合は、AccessDenied
を出力します-----解決策---------------- -- --
この目的は、入り口を制御することです。プログラムは、index.php?controller=xxx&action=xxx の形式でのみアクセスできる必要があります。
ユーザーがcontroller.phpに直接アクセスする場合は禁止されます。そこで、この判断を加えさせていただきました。

たとえば、ディレクトリ構造
app/controller/c.php
index.php

define('IN','xxx'); .php定義
ユーザーがindex.php?controller=cに直接アクセスすると、app/controller/c.phpが実行されますが、INが定義されているので実行可能です。
しかし、INが定義されていないため、ユーザーはapp/controller/c.phpに直接アクセスし、実行することができません。
------解決策---------
この文を含むプログラム ファイルは
にアクセスできません直接、index.php には

のみを含めることができます
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。