Могу ли я получить свою страницу PHP, чтобы перенаправить пользовательскую страницу HTML с сообщениями об ошибках - PullRequest
0 голосов
/ 09 марта 2019

У меня есть не-ajax проверка формы PHP и страница отправленной почты.Когда письмо отправлено или имеются ошибки проверки, страница перенаправляется на другую пустую страницу с отраженными сообщениями об успехе или сбое.Может ли это перенаправление с сообщениями быть выполнено на специально разработанной странице (то есть на той, которая имеет верхний, нижний колонтитул, меню и т. Д.)?

1 Ответ

1 голос
/ 09 марта 2019

Вы можете сохранить состояние сообщения в $_SESSION, чтобы запомнить его состояние (например, ошибка, успех и т. Д.). Таким образом, вы можете убедиться, что страница сообщения об успехе / ошибке доступна только один раз, удалив $_SESSION снова. Для перенаправления используйте

header("Location: path/to/your/html/page");

В конце ваш код может выглядеть так:

page1.php

session_start();

if(form submitted){
    if(no errors){
        $_SESSION['status'] = 0;    // 0 for no error
    }else{
        $_SESSION['status'] = 1;    // 1 for some other error. Extend it as you prefer
    }

    // Redirect to second page with header, body, footer,etc.
    header("Location: page2.php");
}

page2.php

session_start();

if(!isset($_SESSION['status']){
    header("Location: /");    // redirect if no status has been set yet
}

// if we reach this line, we have a status and the user should be able
// to read it once

if($_SESSION['status'] == 0){
     print "Hey nice, no errors!";
}else{
     print "Oh no, something went wrong!";
}

// delete session at the end
unset($_SESSION['status']);


...