2017-08-11 17 views
0

私はいくつかの挿入関数を持つinsert.phpファイルを作成しました。私のフォームは異なるページにあり、あるものはPOSTを使用し、他のものはGETメソッドを使用しますが、それらはすべてinsert.phpファイルを指しています。POSTとGETメソッドが同じファイル内で関数を呼び出す

これはすべてPHP5.2でコード化されていて、どのフォームが送信されているかに基づいて実行する挿入機能を指定するのに苦労しませんでした。しかし、手続き型PHP7にアップグレードしようとしたところで、投稿したフォームが、insert.phpファイルの正しい挿入機能を指しているとは限りません。ここで

は、私がこれをやっている方法の例です:

if($_POST['form']=='data1') { 
    //perform insert into db 
} 

insert.php

page1.php

<form action='insert.php' method='post'> 
    <input type='hidden' name='form' value='data1'> 
    ... 
</form> 

私は違うと異なる挿入機能を持っています$_POST['form']変数。これらの機能のいくつかはGETメソッドを使用するフォームから呼び出されたので、私はif($_GET['form']=='data9') {...}.

質問持っている:私のフォームのいくつかは、正しい挿入機能を指していないのはなぜ

  1. を?
  2. GETPOSTの挿入機能を別々のファイルに置く方が良いですか、それとも1つのファイルに残しても構いませんか?
  3. 私はおそらく、質問2.

このソリューション上の任意の考えを解決するために以下のコードを使用してと思っていますか?

$form = ($_SERVER['REQUEST_METHOD'] == 'GET') ? $_GET['form'] : $_POST['form']; 
+2

コードを投稿できますか? –

+0

上記を参照してください。私はコードを見ることができるように書式を修正しました。 – user5075858

+0

だから、私はこれを2番目の問題を解決/解答するためにしましたが、最初にまだ立っています。 if($ _SERVER ['REQUEST_METHOD'] == 'POST'){ $ form = $ _POST ['form']; } else { $ form = $ _GET ['form']; } – user5075858

答えて

1

このコードを試してみてください。 $フォーム= $ _REQUEST [ 'フォームを'];

$ _REQUESTは、POST変数とGET要求変数の両方をフェッチします。

これが役に立ちます。

関連する問題