【发布时间】:2016-11-25 13:30:52
【问题描述】:
当其他用户正在注册时,我如何检查 电子邮件或用户名 是否已存在于我的 mysql 数据库 中,以便我可以停止 注册 过程并可能为新用户建议另一个数据库中不存在的 2/3 新用户名。
所以我尝试解决,我只能得到一个检查电子邮件是否已存在于数据库中的那个,同时我需要一个同时检查数据库中的 用户名和电子邮件 并打印两个 >$error 分开。我的意思是如果电子邮件存在而用户名不存在,它只会打印错误电子邮件并且用户名相同。
希望有人能理解我。
<?php
if(isset($_POST['register'])) {
$username = $_POST['username'];
$full_name = ucwords($_POST['full_name']);
$email = $_POST['email'];
$password = trim($_POST['password']);
$time = time();
$age = $_POST['age'];
$gender = $_POST['gender'];
// Geolocation
$longitude = $_SESSION['longitude'];
$latitude = $_SESSION['latitude'];
$geo_info = $geo->getInfo($latitude,$longitude);
$city = $geo_info['geonames'][0]['name'];
$country = $geo_info['geonames'][0]['countryName'];
$check_d = $db->query("SELECT username, email from users WHERE username = '$username' OR email = '$email'");
$check_d = $check_d->num_rows;
if($check_d == 0) {
$db->query("INSERT INTO users (profile_picture,username,full_name,email,password,registered,credits,age,gender,ip,country,city,longitude,latitude) VALUES ('default_avatar.png','$username','$full_name','$email','".$auth->hashPassword($password)."','$time','100','$age','$gender','$ip','".$country."','".$city."','".$longitude."','".$latitude."')");
setcookie('justRegistered', 'true', time()+6);
setcookie('mm-email',$email,time()+60*60*24*30,'/');
header('Location: '.$domain.'/people');
}
else { $error = 'Username or password already exist, Try Another';
}
}
if($auth->isLogged()) {
$first_name = $system->getFirstName($_SESSION['full_name']);
$logged_in_user = header('Location: '.$domain.'/people');
}
$users = $db->query("SELECT * FROM users ORDER BY RAND() LIMIT 7");
?>
【问题讨论】: