Codeigniter を使用して Web アプリケーションを作成しています。私が抱えている問題は、フォームを送信する機能にあります。やりたいことは、フォーム内の関数を使ってURLから直接アクセスできないようにしたいので、誰かがフォームからアクションメソッドをコピーしてURLでアクセスすると、アクセスを拒否してしまいます。
これを案内してください。
ありがとうございます。
Codeigniter を使用して Web アプリケーションを作成しています。私が抱えている問題は、フォームを送信する機能にあります。やりたいことは、フォーム内の関数を使ってURLから直接アクセスできないようにしたいので、誰かがフォームからアクションメソッドをコピーしてURLでアクセスすると、アクセスを拒否してしまいます。
これを案内してください。
ありがとうございます。
厳密に言えば、if($_POST)
orのようなif($this->input->post())
ことをすると 90% のケースで機能しますが、100% 正しいわけではありません。なぜだめですか?実際に何も入力せずにフォームをトリガーした投稿がある場合、その人はPOST
.
POST
誰かがコントローラーに ing していることを本当に確認したい場合は、 REQUEST_METHOD
.
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
// this is a POST
}
else
{
show_404('not-a-POST!');
}
とはいえ、制限することが最良の選択肢である場合はほとんどありません。現実的には、優雅POST
に処理する必要があります。GET
POST
これを行うには、$_POST 変数をチェックするだけです。
if(!is_array($_POST) || count($_POST)==0)
{
die('You have no access');
}