2009-06-05 21 views
1

私は、postメソッドでデータを取得する同じページのmysqlにデータを挿入するコードを記述しています。それは正常に動作しますが、私はページをリフレッシュするときに再び挿入されます。 私の質問は、ページを更新するときに挿入クエリを再実行することをやめることです。データが転送される同じページにクエリを挿入します。

答えて

1

これは、更新時に再度POSTデータが送信されたために発生しています。ブラウザがそのことを警告します。その警告が表示されない場合は、POSTではなくGETを使用している可能性があります。これはデータを変更または挿入するアクションには適していません。

<form method="post"> 

あなたは完全にそれを回避したい場合は、単にポストバック後にブラウザをリダイレクト:

は、フォームがこの属性を持って確認してください。

<?php 
if ($_POST) { 
    // insert into database 
    header("location: thisPage.php"); 
    // don't bother with die() here 
} 

リダイレクトがセキュリティ上の目的のために使用されていないので、あなたはちょうど同じページに戻ってリダイレクトしている、それはその後die()に本当に必要はありません。

0

フォームに変数を追加してから、保存中に値をリセットします。

if(isset($_POST['save'])) 
{ //do your saving 
    $save="";  
} 
1

この状況を解決するには、おそらくPost-Redirect-Get patternを使用します。 POSTを使用してサーバーにデータを送信するのは良いことです。必要な変更を行った後、簡単なリダイレクトヘッダーを使用して、見たいページにユーザーをリダイレクトします。これは、戻るボタンを壊すことはありませんし、それをクリックすると、データを再度送信せずにフォームに戻ることになります。

関連する問題