HTML PHP电子邮件提交表单

时间:2018-05-25 17:29:18

标签: php html email subscription

我正在尝试创建一个允许用户插入其电子邮件地址的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';
}
}
?>

1 个答案:

答案 0 :(得分:1)

我的代码不足以让我能够完全回答,但我脑海中浮现的一件事就是不让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;(不再显示表格)告诉用户消息已被发送或错误已经发生。