isset上的解析错误? [PHP]

时间:2015-04-25 15:40:18

标签: php isset

我是HTTP / PHP编码的新手,我在PHP中遇到isset的问题。 这是我目前的代码,它应该检查用户名和密码是否为管理员和密码,如果是,它将回显一些信息。

然而,它不起作用。没有错误,它只接受所有用户名和密码。

$username = isset($_POST['password']);
$password = isset($_POST['username']);
$date = date('d-m-y');
$time = date('h:m:s');
$day = date('l');

if($username == 'Admin' and $password == 'Password')
{ //echo bla bla bla..

3 个答案:

答案 0 :(得分:3)

isset只检查是否设置了变量。另一方面,您的用户案例需要检查实际值:

if(isset($_POST['username']) and
   $_POST['username'] == 'Admin' and
   isset($_POST['password']) and
   $_POST['password'] == 'Password') {
   // echo...

为了在你的变量中使用isset(),你需要使用三元运算符。

即:

$username = isset($_POST['password']) ? $_POST['password'] : "default";

答案 1 :(得分:1)

您可以在php isset中阅读使用isset,其中看来isset的值为true或false。所以变量$ username的值为true或false,因此变量$ password也是如此。因此,如果您要检查POST操作的值,可以使用

if(isset($_POST['username']) && isset($_POST['password'])){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $date = date('d-m-y');
    $time = date('h:m:s');
    $day = date('l');


  if($username == "Admin" && $password == "Password")
  { //echo bla bla bla..

  }
}

答案 2 :(得分:0)

试试这个,

if(isset($_POST['password']) &&  isset($_POST['username'])){

        $username = $_POST['password'];
        $password = $_POST['username'];
        $date = date('d-m-y');
        $time = date('h:m:s');
        $day = date('l');
         //  code here 
                if($username == 'Admin' and $password == 'Password'){

                    // Okay

                }else{

                    // not Okay
                }

    } else {

        // error 
    }