我正在php中创建一个登录页面。我想在用户成功登录后将用户重定向到自动页面。由于我使用的是pdo,我使用require_once来调用pdo.php。但是,这行代码阻止重定向指定的页面。如果我删除require_once代码,我可以在击中cancle后成功返回索引页面。以下代码将我带到auto.php页面
<?php
require_once "pdo.php";
require_once "bootstrap.php";
if ( isset($_POST['cancel'] ) ) {
// Redirect the browser to game.php
header("Location: index.php");
return;
}
$failure = false;
if ( isset($_POST['email']) && isset($_POST['password']) ) {
if ( strlen($_POST['email']) < 1 || strlen($_POST['password']) < 1 ) {
$failure = "User name and password are required";
}
else if (strpos($_POST['email'], '@')!== false)
{
$e = htmlentities($_POST['email']);
$p = htmlentities($_POST['password']);
$sql = "SELECT email FROM users
WHERE email = '$e'
AND password = '$p'";
echo "<p>$sql</p>\n";
$stmt = $pdo->query($sql);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
var_dump($row);
echo "-->\n";
if ( $row === FALSE ) {
echo "Incorrect password";
}
else {
header("Location: autos.php?name=".urlencode($_POST['email']));
return;
}
}
else
{
$failure = "Email must have an at-sign (@)";
}
}
?>
答案 0 :(得分:0)
检查您的php所需文件没有发送输出,例如,通过空格或行结束,发送到浏览器块的任何输出进一步重定向或任何其他标头,关闭php标签不是最佳做法,尤其是因为这种问题
如果这不是问题,请检查您是否有错误(解析或丢失文件),以便在脚本顶部显示所有内容
error_reporting(-1);
ini_set('display_startup_errors',true);
ini_set('display_errors','stdout');
答案 1 :(得分:0)
这是一个引导问题。 bootstrap.php输出一些阻止重定向的信息。我移动了require_once&#34; bootstrap.php&#34;在标题标记下方并解决了问题。