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

WBOY
풀어 주다: 2016-06-13 13:44:44
원래의
1271명이 탐색했습니다.

奇怪 ,$_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是否存在都不知道,就贸然使用,在生产环境是不可接受的。
------解决方案--------------------
查看置顶的帖子里有基础问题里面说到你的问题了
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿