PHP如何检测按钮被按下

<html>
<head>
<title>database connection</title>
</head>
<body>
<?php
$mylink=mysql_connect("localhost","root","123456")or die("无法连接数据库");
//echo $mylink;
mysql_select_db("mydata",$mylink);
if(isset($_POST['sub']))
{
$str="insert into dept(deptno,dename,location)values('$_POST[deptno]','$_POST[dename]','$_POST[location]')";
//echo $str;
$result=mysql_query($sql,$mylink);
echo $result;
if(mysql_affected_rows($mylink)!=0)
echo "OK!";
else
echo "Error!";
}
mysql_close($mylink);
?>
<form action="index.php" method="post">
系号:<input type="text" name="deptno"/></br>
系名:<input type="text" name="dename"/></br>
所在地:<input type="text" name="location"/></br>
<input type="submit" name="sub" value="提交"/></br>
</form>
</body>
</html>

上面这段代码为什么按钮还没按钮就执行,如何检测按钮被按下??

我仔细看了一下你的代码,你的问题不在于检测按钮是否被按下,因为SUBMIT按钮根本就无所谓检不检测,因为他是用于提交的,你提交了,当然就按了,没有提交,你的PHP文件怎么可能执行?连调都没调用,除了那种用GET方法从地址栏输入值的还差不多。当然还有种情况是把提交按钮隐藏起来,用一个显示的普通按钮代替,这种技术一般是在使用JS时采用的。意思就是说,你按了SUBMIT按钮就会提交值,这没有任何怀疑,你采用了POST方法,又没按SUBMIT按钮,那么,就不可能提交值。

对客户端的数据你这里省略了过滤这不是个好习惯。

$_POST[deptno]等等你可以先付给一个变量:$deptno=$_POST['deptno']
.这样也利用你检查,也规范些

总结我以上说的意思就是,不要去检查SUBMIT按钮是否按了,而是要检查数据,不如是否为空之类的,是否有特殊字符,是否有SQL注入等等。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-02-06
可以这样做:
<?php
if ($_POST['deptno']){
。。。。把你现在所有的PHP代码写在这里。。。。
}
?>