-2

これが私のphpファイルです。データをデータベースに正常に挿入しています。追加ボタンをクリックするとデータが挿入され、挿入時に「新しいユーザーが追加されました」という警告メッセージが表示されますが、問題はデータが挿入された後です。ページのリロードをクリックするたびに、以前のデータがデータベースに挿入され、「新しいユーザーが追加されました」というメッセージが表示されます。

データベースに挿入しようとしていますが、挿入すると、「新しいユーザーが追加されました」という警告メッセージが表示され、すべてのテキスト ボックスがクリアされます。これが私がやろうとしていることです。

 <?php
    require("../connect.php");
    error_reporting(0);
    /*
    if(!(adminsessioncheck()))
    header('location:index.php'); */

    if(isset($_POST['add']))
    {
        $username=$_POST['username'];
        $password=$_POST['password'];

if($_POST['password'] !== $_POST['cpassword']) {
     echo("Password did not match! Try again. ");
} 
else {
    mysql_query("INSERT INTO users VALUES('','$username','$password')") or die(mysql_error());

    echo '<script type="text/javascript">  window.onload = function(){
  alert("New user added");
}</script>';

}

    }
?>


<form action="" method="post" >
     <table width="330" height="135" border="0" class="text">
<tr>
    <td><label>User Name</label></td>
    <td><input type="text" name="username" id="username" required></td> 
    </tr>

    <tr>
    <td><label>Password</label></td>
    <td><input type="password" id="password" name="password" required></td>
    </tr>

    <tr>
    <td><label>Confirm Password</label></td>
    <td><input type="password" id="cpassword" name="cpassword" required></td>
    </tr>

    <tr><td></td></tr>
    <tr><td></td></tr>

<tr><td></td><td align="center"><input type="submit" name="add" value="Add"></td></tr>
</table>
  </form>
4

2 に答える 2

0

@WebNoviceが言ったように、再送信を避けるために、投稿してからリダイレクトしてから別のページに移動する必要があります。Post/Redirect/Getをご覧ください

于 2013-10-11T11:00:20.900 に答える
0

これは、フォームの送信が重複しているために発生しています。ページを更新/再読み込みすると、フォームが再送信されるため、データが挿入され、そのメッセージが表示されます。

http://en.wikipedia.org/wiki/Post/Redirect/Get

フォームを送信してデータベースに挿入したら、リダイレクトを行います。

header('Location: user.php?status=success');

そして再びあなたのスクリプトで:

$_GET 変数を確認して、javascript メッセージを実行します。

if(isset($_GET['status']) AND ($_GET['status'] == 'success')){
    echo '<script type="text/javascript">  window.onload = function(){
  alert("New user added");
}</script>';
}
于 2013-10-11T11:03:12.610 に答える