欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

奇怪 ,$_POST[]取值报错,该怎么处理

程序员文章站 2022-06-01 14:27:52
...
奇怪 ,$_POST[]取值报错
$name=$_POST['name'];
$password=$_POST['password'];
if ((!isset($name)) || (!isset($password))) {
?>

Please Log In


This page is secret.



Username:


Password:




} else {
$mysql = mysqli_connect("localhost", "webauth", "123456");
if(!$mysql) {
echo "Cannot connect to database.";
exit;
}
$selected = mysqli_select_db($mysql, "auth");
if(!$selected) {
echo "Cannot select database.";
exit;
}
$query = "select count(*) from authorised_users where
name = '".$name."' and
password = '".$password."'";

$result = mysqli_query($mysql, $query);
if(!$result) {
echo "Cannot run query.";
exit;
}
$row = mysqli_fetch_row($result);
$count = $row[0];
if ($count > 0) {
echo "

Here it is!


I bet you are glad you can see this secret page.

";
} else {
echo "

Go Away!


You are not authorized to use this resource.

";
}
}
?>

报错如下:Notice: Undefined index: name in C:\wamp\www\logindb.php on line 2
Notice: Undefined index: password in C:\wamp\www\logindb.php on line 3
以前貌似没这个问题,重新装了个版本的WAMP,出现了这个问题,奇怪

------解决方案--------------------
不是错误
修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE
------解决方案--------------------
修改php.ini配置文件,error_reporting = E_ALL & ~E_NOTICE 问题解决了

这种只是屏蔽了 E_NOTICE的显示,实际问题还是存在的,就好像掩耳盗铃一样,问题出现了,但你假装不知道而已。

if(!empty($_POST['submit']))
{
$name=$_POST['name'];
$password=$_POST['password'];
}

这才是正确的方法,在使用POST数据之前,事先就要对数据的正确性进行判断,连input是否存在都不知道,就贸然使用,在生产环境是不可接受的。
------解决方案--------------------
查看置顶的帖子里有基础问题里面说到你的问题了
奇怪 ,$_POST[]取值报错,该怎么处理

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频