首页 > 解决方案 > HTML PHP 电子邮件提交表单

问题描述

我正在尝试创建一个 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';
}
}
?>

标签: phphtmlemailsubscription

解决方案


没有足够的代码让我能够完全回答,但我立即想到的一件事就是不要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;从文件(不再显示表单)告诉用户消息已发送或已发生错误。


推荐阅读