2017-02-10 2 views
0

投稿フォームの直接URLアクセスを防ぐ方法を知っている人はいますか?私たちは直接フォームをsubmitingせずにURLでアクセスするのでPHP Codeigniter - 直接URLアクセスフォームのサブミットを防ぐ

だから私は、私は

localhost/myweb/registration 

を入力すると、この

$route['registration']=administration/register 

のようなルートがデータベースエラーがあります持っている、確かにそれはあります。私はデータベースエラーを防ぐために自分のフォームに検証を設定しましたが、それはユーザーが私たちのフォームを提出する場合です。ユーザーが「登録」と入力すると、データベースのエラーが発生します。

まあ、いくつかの仕事やページでは、私は単純にSESSIONをADMINまたはUSERとして設定して、直接URLにアクセスしないようにしていますが、フォームを作成することはできません。

注:私のフォームは、データを送信、私はちょうど実行を提出

+0

は、コントローラの「REGISTER」アクションコードを与え、明確化のためにいくつかのリンクです。 –

答えて

0

の言葉がappliaction/config/routes.phpであなたのルートを管理するようユーザータイピング「登録」を防ぐ方法がわからない、大丈夫でした。この

$route['registration']='administration/register'; 

のようにこれはlocalhost/myweb/administration/registerlocalhost/myweb/registrationをリダイレクトします。

+0

それは私が意味するものではありません。したがって、ユーザーがフォームを送信してデータを送信し、送信ボタンをクリックすると、URLは「管理」(ページ名)から「登録」に変わります。私はルートに問題はありません。したがって、「登録」という単語は、送信ボタンと同じ機能を持つだけでなく、URLによって表されます。 フォームが空のときにリダイレクトユーザーのコンセプトを設定できますが、そのコンセプトをコントロールに入れる方法 –

0

Codeigniterでの直接フォーム送信を停止するには、CSRF保護を使用できます。

あなたがしなければならないのは、アプリケーション/設定/ config.phpの中で

$の設定[ 'csrf_protectionは'] = TRUE、あなたの$設定[ 'csrf_protection']で有効です。

フォームにform_open()関数を使用します。

これにより、ユーザーはフォームを直接送信できなくなります。

はここにあるあなたは一例で助けを得ることができるようにhttps://www.codeigniter.com/user_guide/libraries/security.html Codeigniter CSRF - how does it work

関連する問題