2011-01-14 15 views
1

フォームがデータを投稿する方法を設計しています。php-新しい投稿方法フォーム

例:login.phpがある場合、ユーザーが送信すると通常はlogin.phpに投稿して処理します。つまり、register.php、editprofile.phpなどの他のページがある場合は、プロセスをやり直す必要があります。 、すべてのPOSTリクエストを受け付け共通postForm.phpを行う

if($_POST["btnsubmit"]) { 
//do smth 
} 

イム思考をそれぞれのライブラリにデータを渡すと、それを処理する:ので、通常、私たちはそれぞれのページにこのような何かをするだろう。

これはいいアイデアですか?

答えて

1

これは間違いなく良いアイデアです!あなたが描写しているのはModel View Controllerパターンからcontrollerと呼ばれています。私はPHP用の素晴らしいMVC WebフレームワークであるSymfonyをチェックアウトすることをお勧めします。

1つのSymfonyコントローラ(actions.class.phpのような名前)は、すべての投稿と取得、さらにそこに到達するためのルーティングを処理できます。 Symfonyの規約では、http://mywebsite.mydomain.com/homeを呼び出すと、メインコントローラでexecuteHome関数が実行されます。たとえば、そのページ上のフォームは/attemptLoginに投稿できますが、(同じく慣習的に)Symfonyは同じコントローラファイル内でexecuteAttemptLogin関数を実行します。

+0

こんにちはdorkitude、tksさんはsymfonyの概要をよく知っています。試行ログオンがホームコントローラにあり、executeAttemptLoginを実行するというシナリオを確認できますか?あなたが言ったようにhttp://mywebsite.mydomain.com/homeにすでにログインフォームがあるとしましょう。別のページに別の類似のログインフォームがあるとしたら、http://mywebsite.mydomain.com/loginとすれば、executeAttemptLoginを呼び出すloginコントローラにtryLoginというコードを重複させる必要があります。 – nuttynibbles

+0

いいえ、両方のフォームがURL/attemptLoginを指すことができます: '

...

+0

(home、login、およびattemptLoginアクションはすべて同じコントローラ内にあります) –

関連する問題