Php 如何判断数据库中是否已使用用户名
如何判断数据库中的用户名是否已被php用作注册页?从概念上讲,您可能会使用GET for username字段来创建一个脚本,该脚本使用WHERE子句对数据库运行查询,其中username等于GET变量。如果返回匹配项,则使用用户名 有很多方法可以做到这一点,如果你有一个更具体的规范,我可以详细阐述 我们从评论中得到了一些非常有趣的观点;根据我在UI方面的经验,我肯定会进行内联检查,这意味着您可以通过AJAX检查用户名的状态,以立即提供一些关于是否使用用户名的反馈。在这种情况下,您肯定会使用GETPhp 如何判断数据库中是否已使用用户名,php,mysql,login,Php,Mysql,Login,如何判断数据库中的用户名是否已被php用作注册页?从概念上讲,您可能会使用GET for username字段来创建一个脚本,该脚本使用WHERE子句对数据库运行查询,其中username等于GET变量。如果返回匹配项,则使用用户名 有很多方法可以做到这一点,如果你有一个更具体的规范,我可以详细阐述 我们从评论中得到了一些非常有趣的观点;根据我在UI方面的经验,我肯定会进行内联检查,这意味着您可以通过AJAX检查用户名的状态,以立即提供一些关于是否使用用户名的反馈。在这种情况下,您肯定会使用GE
如果这不是您的意图,并且您在本例中提交了任何敏感信息,可能是注册表单中的密码,请使用POST查看此问题:从概念上讲,您可能会使用GET作为用户名字段来创建一个脚本,该脚本使用WHERE子句对数据库运行查询,其中username等于GET变量。如果返回匹配项,则使用用户名 有很多方法可以做到这一点,如果你有一个更具体的规范,我可以详细阐述 我们从评论中得到了一些非常有趣的观点;根据我在UI方面的经验,我肯定会进行内联检查,这意味着您可以通过AJAX检查用户名的状态,以立即提供一些关于是否使用用户名的反馈。在这种情况下,您肯定会使用GET 如果这不是您的意图,并且您在本例中提交了任何敏感信息,可能是注册表单中的密码,请使用POST查看此问题:类似于:
$sql = 'SELECT * FROM USERS where user_name = "'.$_GET['username'].'"';
$res = mysql_query($sql);
if($res && mysql_num_rows($res)>0){
echo 'taken';
} else {
echo 'free';
}
比如:
$sql = 'SELECT * FROM USERS where user_name = "'.$_GET['username'].'"';
$res = mysql_query($sql);
if($res && mysql_num_rows($res)>0){
echo 'taken';
} else {
echo 'free';
}
我想你在找这样的东西
$username = $_POST['username'];
$query = sprintf("SELECT * FROM users WHERE user='%s'", mysql_real_escape_string($username));
$result = mysql_query($query);
if(!$result) {
// Some kind of error occurred with your connection.
} else {
if(mysql_num_rows($result) > 0) {
// Throw an error, the username exists
} else {
// Good to go...
}
}
我想你在找这样的东西
$username = $_POST['username'];
$query = sprintf("SELECT * FROM users WHERE user='%s'", mysql_real_escape_string($username));
$result = mysql_query($query);
if(!$result) {
// Some kind of error occurred with your connection.
} else {
if(mysql_num_rows($result) > 0) {
// Throw an error, the username exists
} else {
// Good to go...
}
}
试试这个也许对你有帮助 当然,您需要调整输入
//first check if it's not empty input
if (empty($_POST['userName'])) {
$userNameErr = "User name required";
} else {
$userName = $_POST['userName'];
$getData= $db->prepare("SELECT * FROM tableName WHERE user_name=?");
$getData->bind_param('s', $userName);
if($getData->execute()){
$results = $getData->get_result();
if($results->num_rows>0){
$userNameErr = "User name already token";
}
}
//check the input characters
if (!preg_match("/^[0-9_a-zA-Z]*$/", $userName)) {
$userNameErr = "Only letters, numbers and '_' allowed";
}
}
希望这有帮助。试试这个,也许它能帮你 当然,您需要调整输入
//first check if it's not empty input
if (empty($_POST['userName'])) {
$userNameErr = "User name required";
} else {
$userName = $_POST['userName'];
$getData= $db->prepare("SELECT * FROM tableName WHERE user_name=?");
$getData->bind_param('s', $userName);
if($getData->execute()){
$results = $getData->get_result();
if($results->num_rows>0){
$userNameErr = "User name already token";
}
}
//check the input characters
if (!preg_match("/^[0-9_a-zA-Z]*$/", $userName)) {
$userNameErr = "Only letters, numbers and '_' allowed";
}
}
希望这能有所帮助。为什么要发帖?你不是真的在做一个动作,所以你不是更合适吗?我可以支持你。我非常习惯于发布敏感数据,所以我在这里使用了它。考虑一下这里的工作流程:1个用户填写表单,2个用户将数据发布到服务器,3个验证@Mike Swift理想情况下至少从UI角度来看,检查应该通过AJAX完成,但在这方面问题有点模糊。@melee你是对的。在这种情况下,工作流将更改为GET。为什么要发布?你不是真的在做一个动作,所以你不是更合适吗?我可以支持你。我非常习惯于发布敏感数据,所以我在这里使用了它。考虑一下这里的工作流程:1个用户填写表单,2个用户将数据发布到服务器,3个验证@Mike Swift理想情况下至少从UI角度来看,检查应该通过AJAX完成,但在这方面问题有点模糊。@melee你是对的。在这种情况下,工作流将更改为GET。它会给我以下错误警告:mysql_num_rows期望参数1为resource,boolean given。请尝试此操作。听起来你从mysql\u查询中得到的信息是错误的。你确定你的数据库配置正确吗?它给我这个错误警告:mysql\u num\u rows期望参数1是资源,布尔给定。试试这个。听起来你从mysql\u查询中得到的信息是错误的。您确定您的数据库配置正确吗?对于现在发现此问题的任何人,请不要使用此不推荐使用的代码。请参阅:对于现在发现此代码的任何人,请不要使用此不推荐使用的代码。见: