我试图使用标头功能。但是当我点击登录按钮时它会显示一条错误消息。 我的登录文档位于: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();
}
答案 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