在我的表单提交并且我的消息已经发送之后我想回到它所做的索引,但是我也希望在div中的index.php中显示echo'已发送消息'而不是我的process.php,我该怎么做呢。如果您需要我将提供的任何更多代码或链接到网站,请点击新的PHP。感谢。
这是我到目前为止所尝试的。 在我的process.php文件中
if(!$mail->send()) {
$output = 1;
// $output = 'Mailer Error: ' . $mail->ErrorInfo;
} else {
$output = 2;
header('Location:index.php');
}
在我的index.php文件中
<?php
if ($output == 2) {
echo "<b>Message has been sent</b>";
} elseif ($output == 1) {
echo "<b>Message could not be sent, please try again</b>";
} else {}
?>
答案 0 :(得分:1)
变量$ output不会在index.php文件中设置。
作为一种简单的开始方式,您可以尝试
header('Location:index.php?output='.$output);
并使用
获取index.php中的输出$output = $_GET['output'];
在文件的开头,这样你就可以使你的if语句有效。
另外请注意,如果$ process = 1,则不会重定向到您的process.php,因为标题只在else语句中。只需将标题放在else语句结束括号后面。
if(!$mail->send()) {
$output = 1;
} else {
$output = 2;
}
header('Location:index.php?output='.$output);
die();
<强>的index.php:强>
<?php
if (isset($_GET['output'])) {
$output = $_GET['output'];
if ($output == 2) {
echo "<b>Message has been sent</b>";
} elseif ($output == 1) {
echo "<b>Message could not be sent, please try again</b>";
}
}
请注意,您不应在生产环境中使用未经过验证的请求数据(用户输入以及其他任何内容),因为这会带来安全风险。
答案 1 :(得分:0)
这不起作用,该值不会以这种方式传递给索引:
} else {
$output = 2;
header('Location:index.php');
}
您的选择(不重新设计其工作方式)是POST或GET;
} else {
$output = 2;
header('Location:index.php?sent=1');
}
然后在你的index.php中:
<?php
if (isset($_GET['sent']) && $_GET['sent'] == 1) {
echo "<b>Message has been sent</b>";
}
?>