需要帮助来自process.php的index.php中的echo

时间:2014-12-11 01:45:19

标签: php

在我的表单提交并且我的消息已经发送之后我想回到它所做的索引,但是我也希望在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 {}
?>

2 个答案:

答案 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>";
    } 
?>