3

请参阅下面给出的代码。自从过去 5 个小时以来,我一直在与这段代码作斗争,以了解为什么 isset() 将条件评估为假,如果值发布的正是它应该发布的内容。如果我取消注释行号。- 4,5,6,7,8 并将其余代码从第 1 行放入。10 到 28 我可以看到 POSTED 值。任何人都可以通过任何指导或建议对此提供帮助。我会很感激的。

<?php
include 'dbconnection.php';
include 'functions.php';

// var_dump($_POST); what happens when you uncomment this line?

//sec_session_start();
 //  $email = $_POST['logemail'];
 //  $password = $_POST['p'];
//  echo $password;
//  echo $email;
 // Our custom secure way of starting a php session. 

if(isset($_POST['logemail'], $_POST['p'])) { 
   $email = $_POST['logemail'];
   $password = $_POST['p']; // The hashed password.
   if(login($email, $password, $mysqli) === true) {
      // Login success
      //$url = 'mwq';
    //echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';  
    echo $password;
    echo $email;

   } else {
      // Login failed
      header('Location: login.php?error=1');
   }
} else { 
   // The correct POST variables were not sent to this page.
   echo 'Invalid Request Data Not POSTED';
}
?>
4

1 回答 1

0

在没有看到表格的情况下,我只能推测会发生什么:

  1. 您从一张白纸开始,表格显示,您输入用户名和密码并提交
  2. 代码通过条件,然后执行登录
  3. login(...) !== true无论出于何种原因(密码错误或代码中的错误)的结果
  4. 页面重定向到login.php?error=1

现在,$_POST是空的并且$_REQUEST包含array('error' => 1)。也许不login.php应该重定向到自身,而是重定向回您显示表单的页面。

于 2012-10-05T08:19:57.913 回答