php重定向到带有消息的页面

use*_*906 9 php redirect message

我想重定向到一个页面,然后显示一条消息:

我拥有的是:

if (mysqli_affected_rows($link) == 1) 
{
   //succes         
    $message = 'succes';
    redirect_to('index.php');
}
Run Code Online (Sandbox Code Playgroud)

在索引页面上我有:

if (!empty($message)) {
    echo '<p class="message"> '.$message.'</p>';
}
Run Code Online (Sandbox Code Playgroud)

重定向功能正常工作:

function redirect_to( $location = NULL ) {
        if ($location != NULL) {
            header("Location: {$location}");
            exit;
        }
    }
Run Code Online (Sandbox Code Playgroud)

但它不会显示我的信息.它是空的.

And*_*ong 22

当重定向发生并且$location执行描述的PHP脚本时,$message变量早就消失了.

要解决此问题,您需要使用GET变量在您的位置标头中传递消息:

header("Location: $location?message=success");

if(!empty($_GET['message'])) {
    $message = $_GET['message'];
// rest of your code
Run Code Online (Sandbox Code Playgroud)

您还可以查看会话

session_start();
$_SESSION['message'] = 'success';
header("Location: $location");
Run Code Online (Sandbox Code Playgroud)

然后在目标脚本中:

session_start();
if(!empty($_SESSION['message'])) {
   $message = $_SESSION['message'];
   // rest of your code
Run Code Online (Sandbox Code Playgroud)