• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php过滤空值的有关问题

php 搞代码 3年前 (2022-01-24) 10次浏览 已收录 0个评论

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></td></tr><br /><tr><td>名称</td><td></td></tr><br /><tr><td>新密码</td><td></td></tr><br /><tr><td>12</td><td>123</td></tr><br /><tr><td colspan="2"></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过来的“空值”,暂且称为“空值”吧,我也不知道是什么值,反正接收端已经无视这个空值,直接写入数据库了,大神们,求解脱,我已经块¥本文来%源[email protected]搞@^&代*@码)网5搞gaodaima代码暴走了……
——解决思路———————-
这里无论如何都会执行到else代码里面去呀 你可以在最后一个else 输出一个值调试下 我想问题应该在这里
——解决思路———————-
if(!isset($_POST[‘porgnum’]) && empty($_POST[‘porgnum’])){
这个就不对了
应该是 if(isset($_POST[‘porgnum’]) && empty($_POST[‘porgnum’])){
$_POST[‘porgnum’] 存在且为空

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

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php过滤空值的有关问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址