我正在创建一个关于音乐的网站,在我的网站底部,我有一个只有电子邮件提交的表格。我这样做是为了收集来自用户的电子邮件。
此外,我还创建了一个数据库,在该数据库中,我创建了一个名为emails的表,其中只有2列:id和email。
我想让我收到的电子邮件独特,因为现在我正在测试它,我可以把许多电子邮件以相同的名字。我已经尝试了一些编码,以实现这一点,但没有运气,所以我将只张贴我的代码,在目前,所以你可以帮助我,我需要添加的代码,以收到一个独特的电子邮件地址。
在项目结束时,我将把我的数据库从mysql更新到mysqli。
以下是我的当前代码:
<?php
error_reporting(E_ERROR | E_PARSE);
include('../database/db.php');
$email = $_POST['email'];
if($email != "") {
$sql = mysql_query ("INSERT INTO emails (email) VALUES ('$email')");
echo "Thank you for Submitting. Redirecting back to Home Page";
}
?>发布于 2016-02-01 13:09:15
error_reporting(E_ERROR | E_PARSE);
include('../database/db.php');
$email = $_POST['email'];
if($email != "") {
$result = mysql_query("SELECT * FROM emails where email='".$email."'");
$num_rows = mysql_num_rows($result);
if($num_rows >= 1){
echo "email exist";
}else{
$sql = mysql_query ("INSERT INTO emails (email) VALUES ('$email')");
echo "Thank you for Submitting. Redirecting back to Home Page";
}
})将代码替换为:)
发布于 2016-02-01 13:12:24
email列添加一个唯一索引mysql_*函数,因为它们是不推荐的。您可以使用mysqli_*函数、MySQLi类或PDO。此外,通过使用准备好的语句,可以避免使用SQL注入发布于 2016-02-01 13:03:17
注意:这将不涉及您需要如何清理PHP。(有用的建议)
正如@RamRaider建议的,将电子邮件列更新为unuiqe。
然后,将mysql_query()的结果设置为一个变量,该变量可以被检查,以查看是否存在有效的执行。
$result = mysql_query("INSERT INTO emails (email) VALUES ('$email')");
if (mysql_num_rows($result)) {
// Something good happened and email was unuiqu
}
else{
// well we have encountered a problem and need to fix that or inform he user
}如您所见,它将检查试图执行的结果,以确定是否添加了成功的项。
https://stackoverflow.com/questions/35131149
复制相似问题