【发布时间】:2014-09-19 02:54:27
【问题描述】:
我是 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 ,表为订阅者,列为电子邮件地址)
【问题讨论】:
-
请阅读
form和input标签,不要混用 -
始终阅读文档以了解您使用的方法。不推荐使用 mysql_* 函数。
-
“我认为我把这部分搞砸了” - 确实。这个
<input name="Submit" type="submit" form value="Submit" action="postemail.php" method="post">应该是<input name="Submit" type="submit" value="Submit">然后在上面使用<form action="postemail.php" method="post">,同时关闭表单标签</form> -
但是,你有很多安全漏洞,比如 SQL 和 XSS 注入,谷歌这些术语。