为了账号安全,请及时绑定邮箱和手机立即绑定

一个关于php登录的小问题实在无法理解

一个关于php登录的小问题实在无法理解

PHP
慕容森 2019-03-10 11:45:11
这个是login.html源码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form method="post"> <input type="text" name="username"> <input type="text" name="password"> <input type="submit" value="提交"> </form> </body> </html> 这个是login.php源码 <?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/1/18 * Time: 20:45 */ $username = isset($_POST['username']) ? trim($_POST['username']) : ''; $password = isset($_POST['password']) ? $_POST['password'] : ''; echo $username; echo '<br>'; echo $password; require 'login.html'; ?> 让我无法理解的是,为什么在login.php中直接用 $username = trim($_POST['username']); $password = $_POST['password']; 就会报错 求解
查看完整描述

6 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

你最开始在加载页面的时候,写的$_POST是获取值,但是你现在其实还没有从html提交值到后端php处理,这个时候就会报错,所以需要使用isset函数来进行判断处理,如果$_POST['username']能获取到值,就执行 $_POST['username']提取到值,并且赋值给$username
@是抑制符,在PHP里可以屏幕警告信息或者错误信息 @$_POST['username']这样就不会报错了
不过一般不推荐这样使用,因为这样会导致看不到报错信息,建议使用isset

查看完整回答
反对 回复 2019-03-18
?
临摹微笑

TA贡献1982条经验 获得超2个赞

报什么错……

查看完整回答
反对 回复 2019-03-18
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

emmmmm, 你login.html里有指定 <form action="login.php">吗。

查看完整回答
反对 回复 2019-03-18
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

用user_error或者error_log把变量信息log一下(个人喜欢用前者,直接传字符串就行),然后找下php.ini把错误日志配到哪了,直接在后台用tail之类的工具看错误日志调起来会快一些。

查看完整回答
反对 回复 2019-03-18
?
达令说

TA贡献1821条经验 获得超6个赞

你把require 放到最上面,报错是因为一开始你$_POST是空的,或者加个抑制符@

查看完整回答
反对 回复 2019-03-18
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

直接用 print_r($_POST) 看打印的是什么?

查看完整回答
反对 回复 2019-03-18
  • 6 回答
  • 0 关注
  • 455 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信