如何检查用户名是否存在?

时间:2014-05-07 01:56:28

标签: php mysql sql if-statement

我一直试图弄清楚这几个小时,但没有成功。我正在用PHP编写MSSQL数据库的注册页面。我想出了如何在数据库中插入用户名,但我不知道如何检查它是否存在。这是我的代码:

<?php
$server = "----";
$user = "----";
$pass = "----";
$db = "----";

$link = mssql_connect($server, $user, $pass);
$selected = mssql_select_db ($db, $link);
?>

--------------------------------   

<html>
<head>
</head>
<body>
<center>
<form action="register.php" method="post">
<div style="border: 1px solid black; width:320px; font-family:arial;">
<center>
<table cellspacing="5">
<tr>
<td>Account:</td><td><input type="text" name="username" value="" /></td>
</tr>
<tr>
<td>Password:</td><td><input type="text" name="password" value="" /></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" value="submit" /></center></td>
</tr>
</table>
</center>
</div>
</form>
</center>
</body>
</html>

-------------------------------- 

<?php
require_once('config.php');
$username=$_POST['username'];
$password=$_POST['password'];
$query = "INSERT INTO Accounts (AccountName, Password) VALUES ('$username', '$password')"; 
//if username exists {}
//else {
$result = mssql_query($query);
// }
?>

3 个答案:

答案 0 :(得分:0)

喜欢以下。您的密码可能是加密格式,因此您必须相应地检查

$sql="SELECT * FROM Accounts WHERE AccountName='$username' AND Password='$password'";
$result = mssql_query($sql);
if (mssql_num_rows($query)) {
  echo 'user exists';
}else{
  echo 'user does not exist';
}

答案 1 :(得分:0)

使用mssql_num_rows()功能查询以下内容。

$query_check = "SELECT * FROM Accounts WHERE AccountName='$username' AND Password='$password'";
$results = mssql_query($query_check);

if(mssql_num_rows($results) > 0){
  echo "Exists.";
}

else{
  echo "Sorry.";
}

另外我建议你改变:

<input type="text" name="password" value="" />

<input type="password" name="password" value="" />

因为您将以简单可见的文本显示密码。


您目前正在接受SQL注入。

您应该使用绑定参数。

阅读以下文章:


<强>密码

我注意到您可能以纯文本格式存储密码。不建议这样做。

考虑使用以下其中一项:

其他链接:

答案 2 :(得分:0)

  1. 使用@parameter将值传递给存储过程

  2. 找到用户名已退出

  3. 编写存储过程

    create stored procedure abc
        @username varchar(20),
        @pass varchar(20)
    
        if exists(select usename 
                  from tablename 
                  where username = @username and password = @pass)
        begin
            select 
                'alreadyexists' as result
        end
        else
        begin
            select usename  
            from tablename 
            where username = @username and password = @pass
        end
    end