Вызов заголовка PHP для внутренней переадресации страницы

У меня есть контактная форма, и после завершения проверки я хочу, чтобы она перенаправлялась на другой файл messageSent.php. Я думал, что использование include будет работать, но это просто добавляет всю страницу о странице контактов.

Я читал, чтобы использовать функцию header() для перенаправления страницы. Но во всех примерах показано использование URL-адреса сайта в реальном времени. Все мои файлы являются внутренними, и я тестирую их локально.

Как мне правильно вызвать функцию header() для перенаправления на страницу в моей корневой папке?

PHP:

if(!empty($_POST)){
$POST = filter_post($_POST);
$invoice = array_splice($POST,3,1);
$MSG = check_empty($POST);
$email = test_input($_POST["email"]);

if(!array_filter($MSG)){
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
    $MSG[] = "Invalid Email Format ([email protected])";
    }
    else{
        $POST['invoice'] = $invoice['invoice'];
        if(send_mail($POST)){
            include '/Users/orobosaenagbare/Dropbox/Websites/Se7en Service/messageSent.php';
        }
        else{
            $MSG[] = "Email Failed";
        }
    }
}
}

person blackRob4953    schedule 03.09.2015    source источник
comment
Путь, который вы отправляете с помощью header('Location: path');, может быть относительным: header('Location: messageSent.php');   -  person samlev    schedule 03.09.2015
comment
идеально получилось. Спасибо!   -  person blackRob4953    schedule 03.09.2015
comment
но URL-адрес типа localhost:8888/contact.php не будет работать универсально, как только я поставлю это все живут. Просто пытаюсь свести к минимуму и ошибки в будущем. @Поп-лапша   -  person blackRob4953    schedule 03.09.2015
comment
Обычно используется файл конфигурации, уникальный для каждой установки, в котором есть такие вещи, как имя хоста (которое также можно получить с помощью $_SERVER['HTTP_HOST'])   -  person samlev    schedule 03.09.2015
comment
@samlev что, если это другая папка/подраздел? например. мой логин site.com/login, но если я поставлю Location: home, то он попытается сделать login/home   -  person Chillin'    schedule 07.04.2020


Ответы (1)


Вы можете просто позвонить:

header('Location: relative/path/to/file.php');

И это должно работать. В зависимости от локального веб-сервера и вашего корневого веб-каталога вы можете использовать абсолютный путь из корневого веб-каталога с префиксом /.

Важно отметить, что header() необходимо вызывать до любого вывода.

person Devon    schedule 03.09.2015