Javascript 提交表单时,如何防止中声明的文件向用户显示结果?

Javascript 提交表单时,如何防止中声明的文件向用户显示结果?,javascript,php,html,Javascript,Php,Html,我有一个带有表单处理程序process-form.php的表单。此表单按计划工作,但是,无论何时提交表单,在将用户重定向到另一个URL(例如,thank-you.html)之前,它都会在process-form.php中显示从表单接收的内容。我怎样才能防止这种情况发生 if ($mail->send()) { ?> <script type="text/javascript"> alert('Message Sent!'); window.loc

我有一个带有表单处理程序process-form.php的表单。此表单按计划工作,但是,无论何时提交表单,在将用户重定向到另一个URL(例如,thank-you.html)之前,它都会在process-form.php中显示从表单接收的内容。我怎样才能防止这种情况发生

if ($mail->send())
{

?>
    <script type="text/javascript">
    alert('Message Sent!');
    window.location.replace("thank.html");
    </script>
<?php

}
else
{
  echo "<script type='text/javascript'>alert('ERROR!');</script>";
}

你的意思是显示在URL中,还是在页面的HTML中?如果是前者,您可以使用

<form method="POST" ...>

如果您指的是后者,那么您应该更改PHP/JavaScript以不显示数据。嘿,您看到的问题是,并不是所有表单字段都已填充,因此会出现未定义的变量错误,您不希望用户看到

通常在像我的共享服务器这样的生产环境中,错误是隐藏的,只是不在本地主机上。要隐藏错误,您可以使用以下方法:

error_reporting(0);
ini_set('display_errors', 0);
然而,你最好首先确保没有错误。要执行此操作,请检查字段是否已实际填写,否则请将变量设置为“零”,这样从技术上讲,即使该变量为空,它仍将存在

if(isset($_POST['my_var'])){
    $my_var = $_POST['my_var'];
}else{
    $my_var = "";
}

您也可以在实际使用变量而不是设置变量的地方使用相同的ifisset逻辑

我们需要查看process-form.php文件中还发生了什么。除非您告诉它,否则它不应该显示任何内容。您可以尝试将重定向逻辑放入处理程序中。或者该代码已经存在于处理程序中了?但是,您不希望在处理程序中向屏幕显示任何内容,否则它不会重新定位。提示:提醒您也可以将提醒放在thank.html或failed.html中。@Paddyhalihan嘿,paddy,我是堆栈溢出新手,因此,我不确定如何共享更多代码。我有没有办法附上一份文件什么的?本质上,没有什么不寻常的事情发生,我只是从表单中获取数据,然后使用PHPMailer发送实际的电子邮件。但是,如果我没有填写一个不需要的字段,它会显示它是一个未定义的变量,这是有意义的,但我不希望用户看到该位。提前感谢您的帮助help@nocturns2嘿,夜曲,在thank-you.html中放置警报似乎是一个解决方案,但是,我只想显示一个警报,向用户指示消息已正确发送,然后将它们重定向到另一个页面。html示例只是为了举例说明重定向位。你的问题不是很清楚你显示的代码不是问题所在。以后尝试创建一个最小、完整且可验证的示例,请参见: