用php做了个留言板,已经提示用户名不能为空,但空值还是能进入数据库??代码如下:

<?phpheader("Content-Type:text/html;charset=utf-8");session_start();include("function... <?php
header("Content-Type:text/html; charset=utf-8");
session_start();
include("functions.php");
$fname=$_POST["fname"];
$fcheckno=$_POST["fcheckno"];
$fcontent=$_POST["fcontent"];
if( $_SESSION['randcode']!=$fcheckno){
alert_back("验证码不对!");
}
if(empty($fname)){
alert_back("用户名不能为空!");
}
if(empty($fcontent)){
alert_back("留言内容不能为空!");
}
include("connect.php");
$insertSQL="insert into feedback(fname,fcontent,fdate)
values('$fname','$fcontent',now())";
$result=mysql_query($insertSQL);
if($result){
alert_go("留言成功","feedback.php");
}
else{
alert_go("留言失败","feedback.php");
history.back();
}
?>
函数如下:
<?php
//functions.php
function alert_back($msg){
echo('<script language="javascript">
alert("'.$msg.'");
history.back();
</script>"');
}
function alert($msg){
echo('<script language="javascript">
alert("'.$msg.'");
</script>"');
}
function alert_go($msg,$url){
echo('<script language="javascript">
alert("'.$msg.'");
location.href="'.$url.'";
</script>');
exit;
}
?>
展开
 我来答
梦里寻你我他
2013-04-19 · TA获得超过2199个赞
知道大有可为答主
回答量:2171
采纳率:42%
帮助的人:1215万
展开全部
if(empty($fname)){

alert_back("用户名不能为空!");
}
else
{
if(empty($fcontent)){
alert_back("留言内容不能为空!");
}
else
{

include("connect.php");
$insertSQL="insert into feedback(fname,fcontent,fdate)
values('$fname','$fcontent',now())";
$result=mysql_query($insertSQL);
if($result){
alert_go("留言成功","feedback.php");
}
else{
alert_go("留言失败","feedback.php");
history.back();

}

}

你虽然之前提示用户名不能为空,但是程序还是继续执行下去了,应该放在在else去执行
追问
谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a19d193
2013-04-19 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1450万
展开全部
用了什么高级框架么?alert_back和alert_go的代码需要贴上来。
不过,我猜你的alert_back应该形似
echo '<script>alert....';header('location:'...);
或者干脆echo '<script>alert(...);window.history.go(-1);';
你在后面添加一个exit;就行了,这样错误出现时阻止程序继续运行,后面的sql操作就不会发生了。
因为浏览器响应跳转是有延时的,因此无法打断当前php代码的运行。

alert_back函数里面加上exit;就行了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jblaiye
2013-04-19 · TA获得超过1057个赞
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:183万
展开全部
检查alert_back()函数,是否中止程序执行了,如果没有exit() or die(),还会继续执行下面的代码。
追问
谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
朦胧的守望
2013-04-19 · 超过21用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:46.5万
展开全部
看看 alert_back 里面有没有 exit。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式