【发布时间】:2017-07-26 23:51:58
【问题描述】:
我正在用 php.ini 创建一个登录页面。我想在用户成功登录后将用户重定向到自动页面。由于我使用的是 pdo,所以我使用 require_once 来调用 pdo.php。但是,这行代码阻止了重定向指定页面。如果我删除 require_once 代码,我可以在点击取消后成功返回索引页面。以下代码将带我进入 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 (@)";
}
}
?>
【问题讨论】:
-
可能是因为文件不存在所以代码停止执行。
-
检查日志。什么错误?
-
你试过在
if (isset($_POST['cancel']))之后使用require_once吗? -
if (isset($_POST['cancel'])) 之后的require_once 将允许癌症按钮工作,页面将被重定向到索引页面。但是,发送重定向(自动页面)仍然会有同样的问题,因为我需要调用 pdo 来检查用户登录凭据
标签: php