php过滤空值的有关问题

php中文网
发布: 2016-06-13 12:10:59
原创
1122人浏览过

php过滤空值的问题
这个要死的POST,已经忽视了IF判断直接把空值写入数据库了

PHP接收端:

<br />if($_GET['do'] =='add'){<br />if(!isset($_POST['porgnum']) && empty($_POST['porgnum'])){<br />echo '未填写登录名!';<br />}else if(!isset($_POST['porgname']) && empty($_POST['porgname'])){<br />echo '未填写昵称!';<br />}else if(!isset($_POST['ppasswd']) && empty($_POST['ppasswd'])){<br />echo '未填写密码!';<br />}else{<br />$orgid =$_POST['porgnum'];<br />$orgname =$_POST['porgname'];<br />$passwd =$_POST['ppasswd'];<br />$author =$_POST['pauthor'];<br />$con = mysql_connect(DB_HOST,DB_USER,DB_PASSWD);<br />mysql_select_db(DB_NAME,$con);<br />mysql_query("SET NAMES 'utf8'");<br />mysql_query("SET CHARACTER_SET_CLIENT=utf8");<br />mysql_query("SET CHARACTER_SET_RESULTS=utf8");<br />if(!mysql_query("INSERT INTO `".DB_PRE."menber` (orgnum, orgname, passwd, power) VALUES ('$orgid', '$orgname', '$passwd', '$author')")){<br />die('错误!代码:' .mysql_error());<br />}else{<br />echo '注册成功!';<br />};<br />mysql_close($con);<br />};<br />
登录后复制


PHP表单:

<br /><tr><td>登录名</td><td><input type="text" id="orgnum" /></td></tr><br /><tr><td>名称</td><td><input type="text" id="orgname" /></td></tr><br /><tr><td>新密码</td><td><input type="text" id="passwd" /></td></tr><br /><tr><td>12</td><td><select id="author"><option value="v">123</option></select></td></tr><br /><tr><td colspan="2"><input type="button" value="提交" onclick="new_org();" /></td></tr><br /><tr><td colspan="2"><div class="admin_display"></div></td></tr><br />
登录后复制


JQUERY:

<br />function new_org(){<br />var orgnum = j('#orgnum').val();<br />var orgname = j('#orgname').val();<br />var passwd = j('#passwd').val();<br />var author = j('#author').val();<br />j.ajax({<br />type:"POST",<br />url:"action.php?do=add",<br />data:{<br />porgnum:orgnum,<br />porgname:orgname,<br />ppasswd:passwd,<br />pauthor:author<br />},<br />dataType:"html",<br />cache:false,<br />async:false,<br />error:function(){<br />alert("发送失败!");<br />},<br />success:function(msg){<br />j('.admin_display').html(msg);<br />alert(orgnum);<br />}<br />});<br />};<br />
登录后复制


能正常注册,写入数据库,但是,如果前端的iput不输入,直接提交,接收端会无视前端POST过来的“空值”,暂且称为“空值”吧,我也不知道是什么值,反正接收端已经无视这个空值,直接写入数据库了,大神们,求解脱,我已经块暴走了……
------解决思路----------------------
这里无论如何都会执行到else代码里面去呀  你可以在最后一个else  输出一个值调试下  我想问题应该在这里
------解决思路----------------------
if(!isset($_POST['porgnum']) && empty($_POST['porgnum'])){
这个就不对了
应该是 if(isset($_POST['porgnum']) && empty($_POST['porgnum'])){
$_POST['porgnum'] 存在且为空

按你写的,如果 $_POST['porgnum'] 不存在的话,不就进到 else 分支了吗?
其他类同
------解决思路----------------------
你没理解isset是什么意思,把&&换成或者(
------解决思路----------------------

------解决思路----------------------
这个完全是你自己疏忽了或者对isset没有理解
------解决思路----------------------
isset 检查变量是否定义。
没有定义放入变量当然可以认为是空
但值为空的变量也是变量呀
所以逆命题不成立

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号