if($action == 'insert'){ //接收数据 $title = empty($_POST['subject']) ? '' : $_POST['subject']; $content = empty($_POST['content']) ? '' : $_POST['content']; $user_id = $_SESSION['myuser']['id']; $create_ad = time(); $summary = empty($_POST['summary']) ? '' : $_POST['summary']; $category_id = empty($_POST['category_id']) ? '' : $_POST['category_id']; $cover = empty($_POST['cover']) ? 'mr.jpg' : $_POST['cover']; $state = empty($_POST['submit']) ? '' : $_POST['submit']; $is_delete = 0; $tags = ''; //验证 if($category_id == '' || $title == '' || $content = '' || $summary == ''){ header('refresh : 2 ; url = article.php?a=add'); echo '输入的信息有误,请重新输入'; exit; } //入库 $sql = "INSERT INTO tn_article
VALUES(null, '$title','$content', $user_id, $create_ad, '$summary', $category_id, '$cover', '$state', '$is_delete', '$tags')"; //获取页面 if($dao ->query($sql)){ header('location:article.php?a=list'); exit; } else{ header('refresh : 2; url = article.php?a=add'); echo '添加失败'; exit; }}
看了下你的代码 没什么问题 估计是你请求了两次 然后插入了两条记录 由于主键自增的 所以导致只有主键不一样
整理后的代码我贴出来 有兴趣的可以一起看下
if($action == 'insert'){
//接收数据
$title = empty($_POST['subject']) ? '' : $_POST['subject'];
$content = empty($_POST['content']) ? '' : $_POST['content'];
$user_id = $_SESSION['myuser']['id'];
$create_ad = time(); $summary = empty($_POST['summary']) ? '' : $_POST['summary'];
$category_id = empty($_POST['category_id']) ? '' : $_POST['category_id'];
$cover = empty($_POST['cover']) ? 'mr.jpg' : $_POST['cover'];
$state = empty($_POST['submit']) ? '' : $_POST['submit'];
$is_delete = 0;
$tags = ''; //验证
if($category_id == '' || $title == '' || $content = '' || $summary == ''){
header('refresh : 2 ; url = article.php?a=add');
echo '输入的信息有误,请重新输入'; exit;
}
//入库
$sql = "INSERT INTO tn_article VALUES(null, '$title','$content', $user_id, "
. "$create_ad, '$summary', $category_id, '$cover', '$state', '$is_delete', '$tags')";
//获取页面
if($dao ->query($sql)){
header('location:article.php?a=list');
exit;
} else{
header('refresh : 2; url = article.php?a=add');
echo '添加失败'; exit;
}
}
可以试试在表单加入一个token字段。这个字段由后台生成同时保存到session中。表单提交的时候判断下如果提交的token与session中的一致执行插入操作 同时将session中的token清空。这样可以在很大程度上防止重复提交了。
那就是你插了两次,你的代码,好乱,手机党不好意思。