2013-10-11 3 views
-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> 
+0

Не используйте функции mysql_ *, они имеют были лишены! – Laurent

+2

Если вы перезагрузите (обновите), это ожидается. Вы снова отправляете свои данные POST в скрипт. Вы повторно отправляете форму. Вы должны отправить, обработать сообщение, а затем перенаправить на другую страницу. – WebNovice

+0

* устарел для программного обеспечения –

ответ

0

Как @WebNovice сказал, вам придется отправить затем Перенаправление, затем перейти на другую страницу, чтобы избежать повторной отправки. Посмотрите Post/Redirect/Get

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>'; 
} 
+0

Я попытался перенаправить заголовок на ту же страницу, но это не будет отобразите предупреждающее сообщение –

+0

@ShahilM можете ли вы отправить изменения кода, сделанные вами в соответствии с этим ответом? – vbrmnd

Смежные вопросы