gpt4 book ai didi

php - 检查重复的电子邮件地址但排除当前用户

转载 作者:行者123 更新时间:2023-12-02 04:02:55 25 4
gpt4 key购买 nike

我创建了一个用户登录系统,并有一个页面,用户可以在其中更新其详细信息。电子邮件地址和用户名需要是唯一的,因此我在更新表单中添加了验证。但是,提交表单时会出现错误,提示电子邮件地址已被使用。我可以以某种方式从重复检查中排除当前电子邮件(存储在 session 中)吗?

这是我的代码,但不是全部,因为它有点长,我还需要对用户名进行相同的验证检查:

    try {
$stmt = $db->prepare('SELECT email, username, firstname, middlename, lastname FROM members WHERE memberID = :memberID');
$stmt->execute(array(':memberID' => $_SESSION['memberID']));
$row = $stmt->fetch();
} catch(PDOException $e) {
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
}

//process form
if(isset($_POST['submit'])){

// email validation
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$error[] = 'Please enter a valid email address';
} else {
$stmt = $db->prepare('SELECT email FROM members WHERE email = :email');
$stmt->execute(array(':email' => $_POST['email']));
$emailcheck = $stmt->fetch(PDO::FETCH_ASSOC);

if(!empty($emailcheck['email'])){
$error[] = 'Email provided is already in use.';
}
}

// insert to DB
if(!isset($error)){

try {
$stmt = $db->prepare('UPDATE members SET username=:username, firstname=:firstname, middlename=:middlename, lastname=:lastname, email=:email, updated=NOW() WHERE memberID = :memberID');
$stmt->execute(array(
':username' => $_POST['username'],
':firstname' => $_POST['firstname'],
':middlename' => $_POST['middlename'],
':lastname' => $_POST['lastname'],
':email' => $_POST['email'],
':memberID' => $_SESSION['memberID']
));

//redirect to page with updated message
header('Location: personal-details.php?action=updated');
exit;

} catch(PDOException $e) {
$error[] = $e->getMessage();
}

} else {
$error[] = 'Update error';
}

}

然后在我使用的每个文本框中:

    <input type="text" name="username" id="username" class="form-control" value="<?php echo($row['username']) ?>" tabindex="1">

最佳答案

您也可以像在其他查询中一样使用 memberID,但排除它:

SELECT email FROM members WHERE email = :email AND memberID != :memberID

关于php - 检查重复的电子邮件地址但排除当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41043493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com