2013-04-06 2 views
0

В этом коде все работает нормально, он принимает имя пользователя из сеанса и отлично вставляет данные с помощью переключателя, только проблема заключается в том, что он автоматически вставляет данные снова, когда я перезагружаю страницу.Данные вставляются автоматически

if(isset($_SESSION['user_id'])&&isset($_POST['r1'])&&isset($_POST['r2'])&&isset($_POST['r3'])&&isset($_POST['r4'])&&isset($_POST['suggestion'])&&isset($_POST['submit'])){ 
    $user=$_SESSION['user_id']; 
    $r1=$_POST['r1']; 
    $r2=$_POST['r2']; 
    $r3=$_POST['r3']; 
    $r4=$_POST['r4']; 
    $suggestion=$_POST['suggestion']; 
    $query_insert="INSERT INTO `wp_feedback` VALUES ('".$user."','".$r1."','".$r2."','".$r3."','".$r4."','".$suggestion."')"; 

    if($query_run=mysql_query($query_insert)){ 
    echo "alright"; 
    } 
    else { 
     echo "not inserted"; 
     } 

} 

Заранее спасибо.

+4

Когда вы перезагружаете страницу после вставки, браузер повторяет запрос POST. Чтобы избежать такого поведения, вы должны перенаправить пользователя на страницу просмотра после вставки в базу данных. – barbashov

+0

перенаправление при вставке 1 –

+1

В качестве (весьма важной) заметки стороны, пожалуйста, прочитайте [SQL injection] (http://en.wikipedia.org/wiki/SQL_injection#Incorrectly_filtered_escape_characters). –

ответ

1

Пожалуйста, попробуйте,

if(isset($_SESSION['user_id'])&&isset($_POST['r1'])&&isset($_POST['r2'])&&isset($_POST['r3'])&&isset($_POST['r4'])&&isset($_POST['suggestion'])&&isset($_POST['submit'])) 
{ 
     $user=$_SESSION['user_id']; 
     $r1=$_POST['r1']; 
     $r2=$_POST['r2']; 
     $r3=$_POST['r3']; 
     $r4=$_POST['r4']; 
     $suggestion=$_POST['suggestion']; 
     $query_insert="INSERT INTO wp_feedback VALUES ('".$user."','".$r1."','".$r2."','".$r3."','".$r4."','".$suggestion."')"; 


    if(isset($_POST['submit'])) 
    { 

     if($query_run=mysql_query($query_insert)) 
     { 
      echo "alright"; 
      header('Location:setlocation.php'); 
     } 
     else 
     { 
      echo "not inserted"; 
     } 
    } 
} 

установить местоположение заголовка после запроса на вставку ...

1

Поместите перенаправлении на днище вашего сценария, потому что я думаю перезагрузки страницы еще выполнить вашу форму представления

if(isset($_SESSION['user_id'])&&isset($_POST['r1'])&&isset($_POST['r2'])&&isset($_POST['r3'])&&isset($_POST['r4'])&&isset($_POST['suggestion'])&&isset($_POST['submit'])){ 
    $user=$_SESSION['user_id']; 
    $r1=$_POST['r1']; 
    $r2=$_POST['r2']; 
    $r3=$_POST['r3']; 
    $r4=$_POST['r4']; 
    $suggestion=$_POST['suggestion']; 
    $query_insert="INSERT INTO `wp_feedback` VALUES ('".$user."','".$r1."','".$r2."','".$r3."','".$r4."','".$suggestion."')"; 

    if($query_run=mysql_query($query_insert)){ 
    echo "alright"; 
    } 
    else { 
     echo "not inserted"; 
     } 
header('Location: redirect url'); 
} 
0
if(isset($_SESSION['user_id'])&&isset($_POST['r1'])&&isset($_POST['r2'])&&isset($_POST['r3'])&&isset($_POST['r4'])&&isset($_POST['suggestion'])&&isset($_POST['submit'])){ 
    $user=$_SESSION['user_id']; 
    $r1=$_POST['r1']; 
    $r2=$_POST['r2']; 
    $r3=$_POST['r3']; 
    $r4=$_POST['r4']; 
    $suggestion=$_POST['suggestion']; 
    $query_insert="INSERT INTO `wp_feedback` VALUES ('".$user."','".$r1."','".$r2."','".$r3."','".$r4."','".$suggestion."')"; 

    if($query_run=mysql_query($query_insert)){ 
    echo "alright"; 
    header("Location:someurl");//This will redirect into some other pages and solve your problem 
    } 
    else { 
     echo "not inserted"; 
     } 

} 
0
if(isset($_SESSION['user_id'])&&isset($_POST['r1'])&&isset($_POST['r2'])&&isset($_POST['r3'])&&isset($_POST['r4'])&&isset($_POST['suggestion'])&&isset($_POST['submit'])){ 
$user=$_SESSION['user_id']; 
$r1=$_POST['r1']; 
$r2=$_POST['r2']; 
$r3=$_POST['r3']; 
$r4=$_POST['r4']; 
$suggestion=$_POST['suggestion']; 
$query_insert="INSERT INTO `wp_feedback` VALUES ('".$user."','".$r1."','".$r2."','".$r3."','".$r4."','".$suggestion."')"; 

if($query_run=mysql_query($query_insert)){ 
echo "alright"; 
} 
else { 
    echo "not inserted"; 
    } 
header('Location:yourpage.php'); 

}

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