我试图允许用户在我的PHP系统中编辑他们的电子邮件地址,但也阻止他们设置已经存在的电子邮件地址,我也尝试通过FILTER_VALIDATE_EMAIL运行它们。然而,它停在我的某个地方。检查在相同的功能中工作正常,但如果我尝试设置的检查通过则更新新的检查不起作用。我正在使用HTML表单来更新它们。我以为我做对了,我在这里读到check if email exists in MySQL database应该可以这样做。
这是我的代码,是否有人看到我做错了什么?我在哪里错过了?
container matches {
choice l2 {
container eth {
when "derived-from(../../../../type, " +
"'acl:eth-acl-type')";
if-feature match-on-eth;
uses pf:acl-eth-header-fields;
description
"Rule set that matches ethernet headers.";
}
description
"Match layer 2 headers, for example ethernet
header fields.";
}
.....
答案 0 :(得分:2)
您的更新查询看起来像是在错误的位置。根据您的代码,如果未设置发布的电子邮件值,则表示您正在更新数据库。我猜这不是你想要做的。我看到的另一个问题是你只是将$ sql变量传递给函数。发布的值永远不会被设置。
//initalize flags
$flag1 = "no";
$flag2 = "no";
if( isset($_POST['email'])){
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
echo "Invalid e-mail, please try a different.";
exit;
}else{
//use flag here for for last if
$flag1 = "yes";
}
$check_email = $sql->query("SELECT email FROM auth WHERE email='$newemail'");
if ($check_email-> num_rows) {
echo "E-mail is already in use.";
exit;
}else{
//set 2nd flag here
$flag2 = "yes";
}
if( $flag1 == "yes" && $flag2 == "yes"){
//update query for new email here
}
}else{
//do something when no email is posted
}