请参阅下面给出的代码。自从过去5个小时以来,我一直在使用这段代码来了解为什么isset()正在将条件评估为false,如果值的确是张贴了POST的话。 如果我取消注释行号。 - 4,5,6,7,8并将其余代码放在第4行。 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';
}
?>
答案 0 :(得分:0)
如果没有看到表格,我只能理解发生的事情:
login(...) !== true
的结果无论出于何种原因(密码错误或代码中的错误)login.php?error=1
。现在,$_POST
为空,$_REQUEST
包含array('error' => 1)
。也许login.php
不应该重定向到自身,而是重定向回到您显示表单的页面。