我在项目中使用以下表单。在此表单中,我提交时正确添加值。但提交后如果刷新页面,则会再次插入现有值。我需要在提交后刷新页面,不添加现有值。请帮帮我。
`<form name="form" method="post" action="<?php $_SERVER['PHP_SELF'];?>">
<table width="918" border="0">
<tr>
<td width="222" height="300"> </td>
<td width="686">
<table width="331" border="0">
<tr>
<td height="30">
<?php
error_reporting (E_ALL ^ E_NOTICE);
include("config.php");
$class_section=$_POST['class_section'];
if(isset($_POST['submit']))
{
$sql=mysql_query("insert into section(section_id, class_section) values ('', '$class_section')",$conn);
if($sql)
{
echo"<p><center><b><font color='green'>Section Added Successfully!</font></b></center></p>";
}
else
{
echo"<p><center><b><font color='red'>Section Add Failed!</font></b></center></p>";
}
}
?>
</td>
</tr>
</table>
<table width="331" border="0">
<tr>
<td height="47">Class Section/Group</td>
<td><input name="class_section" type="text"/> </td>
</tr>
<tr>
<td height="33"></td>
<td><input type="submit" name="submit" value="ADD" class="button"> </td>
</tr>
</table></td>
</tr>
</table>
</form>`
答案 0 :(得分:2)
使用Post/Redirect/Get模式。
用户发起的更新服务器状态的请求应始终为Post。
您的代码也有SQL注入漏洞。
在使用$class_section
之前将mysql_real_escape_string()
换行。