2015-12-06 71 views
1

如何在数据提交并插入数据库后清除表单数据?因此,用户在提交数据后不能回头刷新以重新输入数据,因为他们现在可以。也请忽略MYSQL根登录,它仅用于测试目的。如何在表单数据插入数据库后清除表格数据

这是我的代码

<?php 
session_start(); 
if (isset($_POST['sub'])) { 
$host='localhost'; 
$user='root'; 
$pass=''; 
$db='theatre_booking'; 

$con=mysqli_connect($host,$user,$pass,$db); 

$row = $_POST['row']; 
$_SESSION["row"]=$row; 

$zone = $_POST['zone']; 
$_SESSION["zone"]=$zone; 

$quantity = $_POST['qty']; 
$_SESSION["qty"]=$quantity; 

$quantity = $_POST['quotation']; 
$_SESSION["quotation"]=$quantity; 


$sql="INSERT INTO booking(PerfDate, PerfTime, Name, Email, RowNumber) 
VALUES (
    '{$_SESSION['date']}', 
    '{$_SESSION['time']}', 
    '{$_SESSION['name']}', 
    '{$_SESSION['email']}', 
    '{$_SESSION['row']}')"; 

    if ($con->query($sql) === TRUE) { 
    echo "Booking successful"; 
} else { 
    echo "Error: " . $sql . "<br>" . $con->error; 
    } 

} 






?> 

<!------------------------------------------------------------------------------------> 
<DOCTYPE! html> 
<html> 
<head> 
    <meta charset="uft-8" /> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1""> 
    <meta name= "viewport" content="width=device-width, initial-scale=1.0"> 
    <link href="style/styles.css" type="text/css" rel="stylesheet"> 


</head> 
<body> 

     <h2 id="siteTitle">Westend</h2> 
     <nav> 
      <ul class="main_menu"> 
       <li><a href="index.php">Home</a></li> 
       <li><a href="booking.php" >Booking</a></li> 
      </ul> 
     </nav> 

    <!--Image shown in the background after booking is confirmed--> 
    <div><img src="images/curtains.jpg" id="open"/> 
     <!--Booking confirmation message the user sees--> 
     <div id="process"> 
      </br>Hi <?php echo "'".$_SESSION['name']."'"; ?></br> 
      Your tickets have been booked for <?php echo "'".$_SESSION['production']."'";?> 
      </br>Playing on <?php echo "'".$_SESSION['date']."'";?> at <?php echo "'".$_SESSION['time']."'";?> </br> 
      You are in <?php echo $_POST["zone"];?> in row <?php echo $_POST["row"];?></br> 
      The total cost is £<?php echo $_POST["quotation"];?></br> 
      Confirmation of your booking has been sent to: <?php echo "'".$_SESSION['email']."'"; ?></br> 
      </br> 
      Enjoy the show! 
      </br> 
    </div> 
</div> 


<!--Footer--> 

<footer> 
    <p class="pageBottom">&copy Westend 2015</p> 
</footer> 




</body> 
</html> 
+0

为什么你把$ _SESSION这个值? 使用简单的变量,你会解决这个问题。 P.S我建议你在$ _POST变量中做一些控制以避免sql注入攻击 –

+0

Hi @ Alessandro.Vegna $ _Session持有从表单的前几页收集的值,所以结转。如何将控件添加到$ _POST变量? – YasMan

+0

为控件只是看看这里http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php。 好的,所以你可以在$ sql = ...之后添加if _if(isset($ _ POST [“row”] &&!empty($ _ POST [“row”]))_ –

回答

1

我所以在这里回答我可以添加一些代码

if(isset($_POST["row"] && !empty($_POST["row"]){ 

    $sql="INSERT INTO booking(PerfDate, PerfTime, Name, Email, RowNumber) 
    VALUES (
    '{$_SESSION['date']}', 
    '{$_SESSION['time']}', 
    '{$_SESSION['name']}', 
    '{$_SESSION['email']}', 
    '{$_SESSION['row']}')"; 

    if ($con->query($sql) === TRUE) { 
    echo "Booking successful"; 
    } else { 
    echo "Error: " . $sql . "<br>" . $con->error; 
    } 
} 
+0

它工作现在谢谢! – YasMan