在 PHP 中打印在另一页上时不显示变量


Variable not getting displayed when printed on another page in PHP

<?php
session_start();
 error_reporting(E_ALL);
// Clean up the input values 
foreach($_POST as $key => $value) {  
    $_POST[$key] = stripslashes($_POST[$key]); 
    $_POST[$key] = htmlspecialchars(strip_tags($_POST[$key])); 
}
$name = trim(strip_tags(stripslashes($_POST['name'])));
$email = trim(strip_tags(stripslashes($_POST['email'])));
$subject = trim(strip_tags(stripslashes($_POST['subject'])));
$message = trim(strip_tags(stripslashes($_POST['message'])));
$successful = "Message was sent";
$failure = "Message was not sent";
$header = "From: $email'r'n";
$validEmail = filter_var($email, FILTER_VALIDATE_EMAIL);
if (isset($name) && isset($email) && isset($subject) && isset($message)) {
    if ($validEmail) {
        mail ("myemail@email.com", $subject, $message, $header);
        header("Location: emailsent.php?message=$successful");
    }
    else {
        header("Location: emailnotsent.php?message=$failure");
    }
}
?>

电子邮件未发送.php:

<?php
session_start();
echo $failure;
?>

电子邮件发送.php:

<?php
session_start();
echo $successful;
?>

我看到带有"消息已发送"的 URL,但页面本身上没有显示任何内容。

不显示任何内容,因为 emailsent .php 中未定义$successful。尝试打印 GET 变量:

echo $_GET['message'];

请参阅变量范围。

emailnotsent.php

<?php
session_start();
echo $_GET['message'];
?>

电子邮件已发送.php

<?php
session_start();
echo $_GET['message'];
?>