ホームページ  >  記事  >  バックエンド開発  >  なぜこんなことをしているのですか?

なぜこんなことをしているのですか?

WBOY
WBOYオリジナル
2016-06-23 13:55:17964ブラウズ

定義済み ( 'IN' ) または Die ( 'Access Denied' );
この文。フロントエンドコントローラーにファイルがあるのですが、なぜこれを行う必要があるのでしょうか? この定数をindex.phpファイルに定義し、定義されているかどうかを確認しますが、フロントエンドコントローラーは本来アクセスに使用されます。 、なぜこの定義を追加する必要があるのでしょうか?全然無駄じゃないですか?


議論への返信(解決策)

INが定義されていない場合は実行を終了し、Access Deniedを出力する

INが定義されていない場合、後続のプログラムは実行されないという機能です。

これは ok を出力します
define('IN', 123);
defined ( 'IN' ) または die ( 'Access Denied' );
iffine('IN', 123);この文は存在しません。AccessDenied を出力するだけです

この目的は、入り口を制御することです。プログラムは、index.php?controller=xxx&action=xxx の形式でのみアクセスできるようにする必要があります。

ユーザーがcontroller.phpに直接アクセスする場合は禁止されます。そこで、この判断を加えさせていただきました。

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

define('IN','xxx'); この文はindex.phpで定義されています
ユーザーがindex.phpに直接アクセスした場合?controller= c は、IN が定義されているので app/controller/c.php を実行しますので実行可能です。
ただし、ユーザーが app/controller/c.php に直接アクセスするのは、IN が定義されていないため実行できません。

この文を含むプログラム ファイルには直接アクセスできません

が、index.php にのみ含めることができます

この目的は、プログラムでは、index.php?controller=xxx&action =xxx 形式のみを使用する必要があります。アクセス用に。

ユーザーがcontroller.phpに直接アクセスする場合は禁止されます。そこで、この判断を加えさせていただきました。

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

define('IN','xxx'); この文はindex.phpで定義されています
ユーザーがindex.phpに直接アクセスした場合?controller= c は、IN が定義されているので app/controller/c.php を実行しますので実行可能です。
ただし、ユーザーが app/controller/c.php に直接アクセスするのは、IN が定義されていないため実行できません。


ありがとう、兄弟、私もちょうどそれを理解しました、そしてあなたの答えを読んでよりよく理解しました。ありがとうございます

この文を含むプログラム ファイルには直接アクセスできません

が、index.php にのみ含めることができます



モデレーター、ありがとう、私が質問するたびに答えてくれます - - 答えが得られるたびに自信を持ちます倍増した。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。