自分自身に送信するフォームのPOSTREDIRECTGETパターンの基本を理解していないため、人生で最も苦労しています。主な問題は、ユーザーがページに戻ったり更新したりすると、データベースに重複したエントリが表示されることです。したがって、基本的に、それぞれが自分自身に送信する2つのフォームを含むページがあります。PRGパターンに関していくつかのコードを実装していますが、機能していないようです。私がしていることを説明しようとする簡単な例を投稿します。
<?php
function saveUser1($UserName_1)
{
include 'db_conn.php';
//MySQL code etc...
if($result) return 1; //registro correcto
else return -2; //error
header('Location: samepage.php' , true, 303);
exit();
}
function saveUser2($UserName_2)
{
include 'db_conn.php';
//MySQL code etc...
if($result) return 1; //registro correcto
else return -2; //error
header('Location: samepage.php' , true, 303);
exit();
}
$error1 = 0;
$error2 = 0;
if(isset($_POST['userForm1']))
{
$error1 = saveUser1(clean_form($_POST['txtUserName_1']);
}
if(isset($_POST['userForm2']))
{
$error2 = saveUser2(clean_form($_POST['txtUserName_2']);
}
?>
今HTML
<form action="" name="userForm1" method="POST">
<label for="data">Some Data</label>
<input type="text" value="some test data to post" name="txtUserName_1" id="txtUserName_1" /><br />
<input type="submit" name="userForm1" id="userForm1"/>
</form>
<form action="" name="userForm2" method="POST">
<label for="data">Some Data</label>
<input type="text" value="some test data to post" name="txtUserName_2" id="txtUserName_2" /><br />
<input type="submit" name="userForm2" id="userForm2"/>
</form>
私が達成しようとしていることの例としてこのコードを作成したばかりですが、PGRパターンには何の運もありませんでした。エラーがどこにあるか教えていただけますか?または、このテーマに関するいくつかの良いチュートリアルに私をリダイレクトしますか(冗談ではありません)?私はたくさんの質問/回答、ブログを探していましたが、(私の観点からは)本当にしっかりしたものを見つけることができません。前もって感謝します。