PHP - 将电子邮件添加到数据库中,发送确认电子邮件和重定向

时间:2014-09-18 17:28:22

标签: php forms email

我是PHP的初学者,并且遇到一些困难,可能非常简单。我的部分网站需要快速注册电子邮件才能访问。

首先,我有一个非常简单的表单,这是HTML:

<form>
                <div class="row uniform half collapse-at-2">
                    <div class="8u">
                        <input type="text" name="emailaddress" id="email" placeholder="Email Address" />
                    </div>
                    <div class="4u">
                        <input name="Submit" type="submit" form value="Submit" action="postemail.php" method="post">
                    </div>
                </div>
            </form>

所以这只是一个简单的表单,用户可以在其中放置他们的电子邮件地址和提交按钮。我正在尝试将此连接到postmail.php(我想我已经弄乱了这部分:<input name="Submit" type="submit" form value="Submit" action="postemail.php" method="post">

当你按提交没有任何反应时,它目前没有连接到postemail.php。

这是postmail.php

<?php $connection = mysql_connect("localhost","user","pass"); if (!$connection) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("my_database", $connection);
$sql="INSERT INTO Subscribers (EmailAddress) VALUES ('$_POST[emailaddress]')";
if (!mysql_query($sql,$connection)) { die('Error: ' . mysql_error()); }
mysql_close($connection); 
header('Location: http://www.example.com/STEP1/');?>

所以希望当这个工作时,按下提交后,电子邮件地址将存储在数据库中,用户重定向到example.com/step1

最后,我不知道该怎么做,我希望脚本也向该地址发送确认/欢迎电子邮件。我可以使用像mail("$_POST[emailaddress]",$subject,$message,"From: $from\n");这样的东西来实现这个目标吗?

非常感谢你的时间。

(仅供参考:名为my_database的数据库,表为Subscribers,列为EmailAddress)

1 个答案:

答案 0 :(得分:0)

首次更改您的HTML代码

   <form action="postemail.php" method="post">
                 <div class="row uniform half collapse-at-2">
                        <div class="8u">
                            <input type="text" name="emailaddress" id="email" placeholder="Email Address" />
                        </div>
                        <div class="4u">
                            <input name="Submit" type="submit" value="Submit" >
                        </div>
                    </div>
                </form>

然后更改你的postemail.php

<?php 

$connection = mysql_connect("localhost","user","pass"); 
if (!$connection) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("my_database");
$sql="INSERT INTO Subscribers (EmailAddress) VALUES ('$_POST[emailaddress]')";
mysql_query($sql);
if(mysql_affected_rows()>0)
{
header('Location: http://www.example.com/STEP1/');
}
else{
      echo "fail";
}

?>