我有一个包含姓名,姓氏,电子邮件和总和的表格,请选择一个选项。通过电子邮件发送其唯一性,您无法输入其他用户已经在使用的电子邮件。当用户仅更改名称而没有电子邮件时,问题就开始了,因为当前用户正在使用该电子邮件,所以我收到一条错误消息,因为该电子邮件已被当前用户使用,因此我需要保留此电子邮件小技巧,以避免重复电子邮件并将其保留为一种形式/ p>
if (isset($_POST["submit"])) {
$db = new PDO('mysql:host=localhost;dbname=avihai_bid;charset=utf8', '****', '*******');
$sql = "SELECT * FROM users WHERE id = '$uid'";
$result = $db->prepare($sql);
$result->execute();
$user = $result->fetch(PDO::FETCH_ASSOC);
$nameError = '';
if (empty($_POST['name'])) {
$nameError = 'שם הוא שדה חובה';
$valid = false;
}
$lastnameError = '';
if (empty($_POST['lastname'])) {
$lastnameError = 'שם משפחה הוא שדה חובה';
$valid = false;
}
$emailError = '';
if (empty($_POST['email'])) {
$emailError = 'אימייל הוא שדה חובה';
$valid = false;
} elseif (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
$emailError = 'אימיל לא תקין';
$valid = false;
} elseif ($_POST['email']) {
$query = $db->prepare("SELECT * FROM users WHERE email = :email");
$query->bindParam(':email', $_POST['email']);
$query->execute();
if($POST['email'] === $user['email']){
$valid = true;
} elseif ($query->rowCount() == 1) {
$emailError = 'אימייל זה קיים כבר אצלנו במערכת';
$valid = false;
}
}
if ($valid) {
$sql = "UPDATE users SET name = :name, lastname = :lastname, email = :email, build_stage = :build_stage WHERE id = '$uid'";
$insert = $db->prepare($sql);
$insert->bindParam(':name', $_POST['name'], PDO::PARAM_STR);
$insert->bindParam(':lastname', $_POST['lastname'], PDO::PARAM_STR);
$insert->bindParam(':email', $_POST['email'], PDO::PARAM_STR);
$insert->bindParam(':build_stage', $_POST['build_stage']);
$insert->execute();
if ($insert->rowCount() > 0) {
$sql = "SELECT * FROM users WHERE id = '$uid'";
$result = $db->prepare($sql);
$result->execute();
if ($result->rowCount() == 1) {
$user = $result->fetch(PDO::FETCH_ASSOC);
$_SESSION['user_id'] = $user['id'];
$_SESSION['first_name'] = $user['name'];
$_SESSION['last_name'] = $user['lastname'];
$_SESSION['user_email'] = $user['email'];
$_SESSION['build_stage'] = $user['build_stage'];
}
}
}
}
答案 0 :(得分:0)
//just REMOVE EMAIL in update
$sql = "UPDATE users SET name = :name, lastname = :lastname,
build_stage = :build_stage WHERE id = '$uid'";