如何使php代码不切换页面?

如何使php代码不切换页面?,php,html,Php,Html,我创建了一个名为coodos.co的网站,我是php的新手,每当有人提交contact us表单时,php页面就会打开,而不会关闭,我想做的是php代码在后端执行,而不是在用户面前加载名为contact.php的页面 这是我的php代码 <?php $name = $_POST['name']; $email = $_POST['email']; $msg = $_POST['msg']; $to='info@coodos.co'; // Recei

我创建了一个名为coodos.co的网站,我是php的新手,每当有人提交contact us表单时,php页面就会打开,而不会关闭,我想做的是php代码在后端执行,而不是在用户面前加载名为contact.php的页面

这是我的php代码

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $msg = $_POST['msg'];   

    $to='info@coodos.co'; // Receiver Email ID, Replace with your email ID
    $subject='Form Submission';
    $message="Name :".$name."\n"."email:".$email."\n"."Wrote the following :"."\n\n".$msg;
    $headers="From: ".$email;
    if(mail($to, $subject, $message, $headers)){
        exit();
    }

?>

这与php的工作方式无关,而是与HTML中表单的工作方式有关
我想在你的页面的某个地方你有一行

<form action="/contact.php">

如果我理解正确,您希望执行一些外部php文件,而不是在提交表单时离开您所在的页面。
希望这是正确的

选项1-标题() 实现类似行为的一种常用方法是
头方法。这会将您重定向到特定文件

header('location: index.php');
这也可用于将URL中的附加数据作为
$\u GET
值传递。
小例子:

    header('location: index.php?login=success');
注意:您仍然希望保留
exit()
,以防止执行重定向后的代码

选项2-PHP_SELF 有点棘手,但你也可以使用重定向到你已经在的页面。为此,您可以使用
$\u SERVER['PHP\u SELF']
而不是硬编码的文件路径

小心处理这个巫婆
用户有办法操纵url,这意味着您必须覆盖潜在的跨站点脚本(XSS)攻击。这可以通过
htmlspecialchars
轻松完成,但非常重要

以下是如何在表单中使用它:

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">

Hi John,您的代码是在“后端”执行的,即所有PHP代码都是在服务器上执行的,而不是在客户机上执行的。代码段中的处理调用了
exit()
,这意味着用户将看到一个空白页面。与其这样做,不如使用
header('Location:'。$newURL)重定向它们
退出()之前
其中
$newURL
将是一些HTML页面,上面写着“谢谢你的邮件”@JohnSmith没问题,很乐意帮助:)如果你能按勾号接受答案,我将不胜感激
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">