这个是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
潇潇雨雨
TA贡献1833条经验 获得超4个赞
用user_error或者error_log把变量信息log一下(个人喜欢用前者,直接传字符串就行),然后找下php.ini把错误日志配到哪了,直接在后台用tail之类的工具看错误日志调起来会快一些。
- 6 回答
- 0 关注
- 455 浏览
添加回答
举报
0/150
提交
取消