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

为什么空提交什么都不提示?

php 搞代码 3年前 (2022-01-23) 28次浏览 已收录 0个评论
文章目录[隐藏]

第一次打开这个页面的时候没有post数据 为了避免错误提示我在最外面加了一个判断if(trim(@$_POST[‘num’])) 在里面为了避免空提交我又做了一个判断(isset($_POST[‘yzm’])&&trim($_POST[‘num’])) 如果没有post数据就提示没有输入 但是我只输入验证码 上面的文本框什么都不写 提交后什么都不提示 这是为什么呢?应该提示没有输入才对呀?

<code>    <br />    </span>        <button type="submit">提交</button><?php    if(trim(@$_POST['num'])){        session_start();        if(isset($_POST['yzm'])&&trim($_POST['num'])){            if($_SESSION["str"]==$_POST['yzm']){              echo "right";              $pdo=new PDO("mysql:host=localhost;dbname=t1","root","");              $stmt=$pdo->prepare("insert into test(num)values(:num)");              $stmt->execute(array(':num'=>$_POST['num']));            }else{              echo "wrong";            }        }else{          echo "还没有输入";        }    }    ?></code>

回复内容:

第一次打开这个页面的时候没有post数据 为了避免错误提示我在最外面加了一个判断if(trim(@$_POST[‘num’])) 在里面为了避免空提交我又做了一个判断(isset($_POST[‘yzm’])&&trim($_POST[‘num’])) 如果没有post数据就提示没有输入 但是我只输入验证码 上面的文本框什么都不写 提交后什么都不提示 这是为什么呢?应该提示没有输入才对呀?

<code>    <br />    </span>        <button type="submit">提交</button><?php    if(trim(@$_POST['num'])){        session_start();        if(isset($_POST['yzm'])&&trim($_POST['num'])){            if($_SESSION["str"]==$_POST['yzm']){              echo "right";              $pdo=new PDO("mysql:host=localhost;dbname=t1","root","");              $stmt=$pdo->prepare("insert into test(num)values(:num)");              $stmt->execute(array(':num'=>$_POST['num']));            }else{  <mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark><pre>搞代gaodaima码

echo “wrong”; } }else{ echo “还没有输入”; } } ?>

if(trim($_POST['num'])) 你什么都没提交就是 $_POST[‘num’]为空了,if(false)所以根本没进去。很简单的问题吧。

自己思考一下吧,你的代码不能自圆其说,你用isset($_POST[‘yzm’])防止未定义下标没问题,但是trim($_POST[‘num’])如果$_POST[‘num’]也没定义不也是错么?要不就都验证,要不就都别验证,这种情况说明你写代码的姿势不对。

写程序是很傻瓜的,是开发者的休息时间。为什么呢?因为要先想好再动手写,而不是写几个字想一下,所以思考才是工作,写程序只是把思考结果记录下来而已。
你的代码问题很明显,如果你写之前考虑了未定义问题,那么肯定就这样了:

<code>if(isset($_POST['num']) && isset($_POST['yzm'])){    //...处理逻辑}</code>

而你的代码不是,是你敲到$_POST[‘yzm’]的时候突然想起来我是不是要做个未定义验证呢?这种突如其来的灵感其实会把你的思路完全打乱,不建议。


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

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

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

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