用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;
}
?> 展开
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;
}
?> 展开
4个回答
展开全部
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去执行
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去执行
追问
谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用了什么高级框架么?alert_back和alert_go的代码需要贴上来。
不过,我猜你的alert_back应该形似
echo '<script>alert....';header('location:'...);
或者干脆echo '<script>alert(...);window.history.go(-1);';
你在后面添加一个exit;就行了,这样错误出现时阻止程序继续运行,后面的sql操作就不会发生了。
因为浏览器响应跳转是有延时的,因此无法打断当前php代码的运行。
alert_back函数里面加上exit;就行了
不过,我猜你的alert_back应该形似
echo '<script>alert....';header('location:'...);
或者干脆echo '<script>alert(...);window.history.go(-1);';
你在后面添加一个exit;就行了,这样错误出现时阻止程序继续运行,后面的sql操作就不会发生了。
因为浏览器响应跳转是有延时的,因此无法打断当前php代码的运行。
alert_back函数里面加上exit;就行了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查alert_back()函数,是否中止程序执行了,如果没有exit() or die(),还会继续执行下面的代码。
追问
谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看 alert_back 里面有没有 exit。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询