我一直试图弄清楚这几个小时,但没有成功。我正在用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);
// }
?>
答案 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注入。
您应该使用绑定参数。
阅读以下文章:
<强>密码强>
我注意到您可能以纯文本格式存储密码。不建议这样做。
考虑使用以下其中一项:
crypt()
bcrypt()
scrypt()
password_hash()
功能。其他链接:
答案 2 :(得分:0)
使用@parameter
将值传递给存储过程
找到用户名已退出
编写存储过程
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