需要一次阻止我重定向PHP
我正在用php创建一个登录页面。我想在用户成功登录后将其重定向到自动页面。因为我使用的是pdo,所以我使用require_调用pdo.php一次。但是,这行代码阻止重定向指定的页面。如果我删除require_once代码,我可以在点击cancle后成功返回到索引页面。下面的代码将带我进入auto.php页面需要一次阻止我重定向PHP,php,Php,我正在用php创建一个登录页面。我想在用户成功登录后将其重定向到自动页面。因为我使用的是pdo,所以我使用require_调用pdo.php一次。但是,这行代码阻止重定向指定的页面。如果我删除require_once代码,我可以在点击cancle后成功返回到索引页面。下面的代码将带我进入auto.php页面 <?php require_once "pdo.php"; require_once "bootstrap.php"; if ( isset($_POST['cancel'] )
<?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 (@)";
}
}
?>
检查php所需文件是否发送任何输出,例如,发送到brower块的任何输出进一步重定向或任何其他头,关闭php标记不是最佳做法,尤其是由于此类问题
如果这不是问题,请检查您是否有错误(解析或缺少文件),以显示它们都包含在脚本顶部
error_reporting(-1);
ini_set('display_startup_errors',true);
ini_set('display_errors','stdout');
这是一个引导问题。php输出一些阻止重定向的信息。我将require_once“bootstrap.php”移到header标记下面,解决了这个问题
ps:还要记住,头文件()必须位于模型中任何内容之前(除了会话_start()可以位于头文件之前)。可能是因为文件不存在,因此代码停止执行。请检查日志。错误是什么?您是否尝试使用require\u once
afterif(isset($\u POST['cancel']))
?require\u once-after-if(isset($\u POST['cancel'])将允许癌症按钮工作,页面将重定向到索引页面。但是,发送重定向(自动页面)仍然会有相同的问题,因为我需要调用pdo来检查用户登录凭据