私はいくつかの挿入関数を持つ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') {...}.
質問持っている:私のフォームのいくつかは、正しい挿入機能を指していないのはなぜ
- を?
GET
とPOST
の挿入機能を別々のファイルに置く方が良いですか、それとも1つのファイルに残しても構いませんか?- 私はおそらく、質問2.
このソリューション上の任意の考えを解決するために以下のコードを使用してと思っていますか?
$form = ($_SERVER['REQUEST_METHOD'] == 'GET') ? $_GET['form'] : $_POST['form'];
コードを投稿できますか? –
上記を参照してください。私はコードを見ることができるように書式を修正しました。 – user5075858
だから、私はこれを2番目の問題を解決/解答するためにしましたが、最初にまだ立っています。 if($ _SERVER ['REQUEST_METHOD'] == 'POST'){ $ form = $ _POST ['form']; } else { $ form = $ _GET ['form']; } – user5075858