Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要一次阻止我重定向PHP_Php - Fatal编程技术网

需要一次阻止我重定向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创建一个登录页面。我想在用户成功登录后将其重定向到自动页面。因为我使用的是pdo,所以我使用require_调用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 (@)";
        }

}
?>

检查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
after
if(isset($\u POST['cancel']))
?require\u once-after-if(isset($\u POST['cancel'])将允许癌症按钮工作,页面将重定向到索引页面。但是,发送重定向(自动页面)仍然会有相同的问题,因为我需要调用pdo来检查用户登录凭据