标头位置导致404错误

时间:2018-04-11 10:25:03

标签: php redirect login

我试图使用标头功能。但是当我点击登录按钮时它会显示一条错误消息。 我的登录文档位于:XAMPP \ htdocs \ Website \ includes \ login.inc.php 我的索引文档位于:XAMPP \ htdocs \ Website \ index.php

希望有人能够提供帮助。

<?php

session_start();

if (isset($_POST['submit'])) {

include 'dbh.inc.php';

$gebr = mysqli_real_escape_string($conn, $_POST['gebr']);
$pwd = mysqli_real_escape_string($conn, $_POST['pwd']);

//Foutmeldingen
    //Check of de velden leeg zijn
    if (empty($gebr) || empty($pwd)) {
        header("Location: ../index.php?login=empty");
        exit();
    } else {
        $sql = "SELECT * FROM stemmer WHERE Naam='$gebr'";
        $result = mysqli_query($conn, $sql);
        $resultCheck = mysqli_num_rows($result);
        if ($resultCheck < 1) {
            header("Location: ../index.php?login=error");
            exit();
        } else {
            if ($row = mysqli_fetch_assoc($result)) {

                if ($row['Wachtwoord'] != $pwd) {
                    header("Location: ../index.php?login=error");
                    exit();
                } else{
                    //Log de gebruiker hier in
                    $_SESSION['u_id'] = $row['idStemmer'];
                    $_SESSION['u_naam'] = $row['Naam'];
                    $_SESSION['u_gemeente'] = $row['idGemeente'];
                    $_SESSION['u_partij'] = $row['idPartij'];

                    header("Location: ../index.php?login=succes");
                    exit();
                }
            }
        }
    }
} else {

    header("Location: ../index.php?login=error");
    exit();
}

2 个答案:

答案 0 :(得分:0)

当您包含文件时,URI保持不变。因此,您仍然会根据您加载的URI引用链接或位置。

根据您的404错误,您可能会在与index.php相同的网络目录中包含此文件,因此该位置不应设置为../index.php?login=error尝试返回一个目录但index.php?login=error会尝试在同一个网站目录中加载index.php。

您还可以使用/index.php?login=error/前缀)来加载来自Web根目录的index.php。如果你要在许多不同的文件中加载这个包含文件,最好使用像这样的根相对路径。

答案 1 :(得分:0)

您可以使用输出缓冲来解决此问题,将所有输出到浏览器的开销缓冲在服务器中,直到您发送它为止。您可以通过在脚本中调用ob_start()和ob_end_flush(),或在php.ini或服务器配置文件中设置output_buffering配置指令来完成此操作。

使用ob_start()

更多阅读 Notes