我正在尝试创建一个允许用户插入其电子邮件地址的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';
}
}
?>
答案 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;
(不再显示表格)告诉用户消息已被发送或错误已经发生。