HTML PHP 电子邮件提交表格

HTML PHP email submit form

我正在尝试创建一个 PHP 表单,允许用户插入他们的电子邮件地址,它会自动向我发送一封包含他们电子邮件地址的电子邮件。类似订阅的东西。

我目前的情况是这样的:

<form  action="" method="post">
    <input type="email" name="email" placeholder="Enter your email address" /><br>
</form>

我找到了这个 PHP 示例,我相信它可以解决我的问题,但我不知道如何从我的 HTML.

中调用它
<?php
if(isset($_POST['email'])){
$email = $_POST['email'];
$to = 'myemail@something.com';
$subject = 'new subscriber';
$body = '<html> 
            <body>
                <p>Email:<br>'.$email.'</p>
            </body>
        </html>';
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset-utf-8";

$send = mail($to, $subject, $body, $headers);
if($send){
    echo '<br>';
    echo 'thanks';
}else{
    echo 'error';
}
}
?>

代码不足,我无法完整回答,但我立即想到的一件事就是不要让 action="" 为空。试试 $_SERVER['PHP_SELF'] 变量,它应该打印当前 运行 文件的路径,这样您将看到相同的页面,但您将发送 $_POST 中的数据。你可以这样试试:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="email" name="email" placeholder="Enter your email address" /><br>
</form>

如果您希望像这样将数据发送到同一文件,请确保您的 PHP 代码与表单的 HTML 结构位于同一文件中。如果将 PHP 代码放在首位可能会使事情变得更容易,因此您可以从文件 exit; 中(不再显示表单)告诉用户消息已发送或发生了错误.