Расположение заголовка, приводящее к ошибке 404

Я пробовал использовать функцию заголовка. Но когда я нажимаю кнопку входа в систему, отображается сообщение об ошибке. Мой документ для входа находится в: 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();
}

Ну что за сообщение об ошибке? У них есть цель. Имейте в виду, что заголовки не могут быть отправлены после тела, поэтому вы не можете ничего распечатывать перед заголовками, включая пробелы в любых файлах до <?php.

Devon 11.04.2018 12:26

Ошибка 404. URL-адрес не найден на сервере.

aftershock 11.04.2018 12:29
0
2
247
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Когда вы включаете файл, URI не изменяется. Таким образом, вы по-прежнему ссылаетесь на ссылки или местоположения на основе загруженного URI.

Основываясь на вашей ошибке 404, вполне вероятно, что вы включаете этот файл из того же веб-каталога, что и index.php, поэтому местоположение не должно быть установлено на ../index.php?login=error, который будет пытаться вернуться на один каталог назад, но index.php?login=error, который попытается загрузить index.php в том же веб-каталоге.

Вы также можете использовать /index.php?login=error (префикс /), который загрузит index.php из корневого каталога Интернета. Если вы собираетесь загружать этот включаемый файл во множество разных файлов, лучше всего использовать относительные корневые пути, подобные этому.

Вы можете использовать буферизацию вывода, чтобы обойти эту проблему, при этом накладные расходы на весь ваш вывод в браузер буферизуются на сервере до тех пор, пока вы его не отправите. Вы можете сделать это, вызвав ob_start () и ob_end_flush () в вашем скрипте или установив директиву конфигурации output_buffering в вашем php.ini или файлах конфигурации сервера.

Используйте ob_start()

Для получения дополнительной информации прочтите это Заметки

Не уверен, помогает ли это с ошибкой «Ошибка 404. URL-адрес не найден на сервере». в комментариях OP.

Nigel Ren 11.04.2018 12:49

Другие вопросы по теме