$sql="select * from user where name='".$username."' and password='".$password."'";
这条SQL语句不应这样写,这样有漏洞
这条SQL语句不应这样写,这样有漏洞
解决方案 »
- windows下写PHP程序,一定要用记事本吗?白底黑字看着好眼晕呀,有像linux上的编辑器一个性质的软件可以用吗?求解…
- 只用cookie不用session和数据库做一个超级简单的用户登陆,求助
- php清空文本框
- discuz论坛的一个简单查询问题,新手请教顺便散分。。。
- 关于mysql数据库导入的问题(通过sql导入,但是又有2进制文件..)
- 论我的站zero.njidc.com为何这么棒?顺便放点分~~
- 表单提交问题
- 快来帮助我,一个关于文件存取的问题。
- 请问MYSQL是什么(不用细说)?怎么使用MYSQL(请细说)!
- php 二维数组去重合并将相同数量累加
- 庆祝Free Messenger开始使用,散分了。
- 这样访问access为什么会出错呢?
比如表中下边几个字段值是:
id user guanlian_id statu
1 aaa 1000 1
2 1001 0
3 1002 0
4 1005 0
5 1019 0
运行这个程序我想要的结果是:
id user guanlian_id statu
1 aaa 1000 1
2 bbb 1001 1
3 1002 0
4 1005 0
5 1019 0
可现在运行结果却是:id user guanlian_id statu
1 aaa 1000 1
2 adf 1001 1
3 aeg 1002 1
4 bbb 1005 0
5 1019 0
<?php
function CheckUser($username,$password)
{
global $db;
require("conn2.php");
$sql="select * from users where name='".$username."' and password='".$password."'";
$obj =SelectQuery($sql);
if (count($obj)>0)
{ require_once("conn.php");
$sql="select * from user where user_name='".$username."' and user_password='".$password."'";
$query = $db->query($sql);
$row=$db->fetch_array($query);
$num2=$db->num_rows($query);
if($num2!=0)
{
if ($row)
{
$user['username']=$row["user_name"];
$user['guanlianname']=$row["guanlian_id"];
$user['guanlianpassword']=$row["guanlian_password"];
$user['flag']=1;
}
return $user;
exit;
}
else
{ $sql="select min(id) from user where statu='0'";
$query = $db->query($sql);
if ($row = $db->fetch_array($query))
{
$id =$row["min(id)"];
$sql = "update user set user_name='".$username."',user_password='".$password."',statu='1' where id='".$id."'";
$query = $db->query($sql);
}
$sql="select user_name,guanlian_id,guanlian_password from user where user_name='".$username."' and user_password='".$password."'";
$query = $db->query($sql);
if ($row = $db->fetch_array($query))
{
$user['username']=$row["user_name"];
$user['guanlianname']=$row["guanlian_id"];
$user['guanlianpassword']=$row["guanlian_password"];
$user['flag']=2;
}
return $user;
exit;
} }
else {
$user['flag']=3;
return $user;
}
}
?>
3 aeg 1002 1
adf aeg这两个用户是users(第一个查询语句是查users表的)这个表里有的用户。
大家帮忙看看哪个循环有问题?
改成if (count($obj)>=0)试一下。
{
$result=@mysql_query($sql,$this->link) or $this->ErrorMessage("Unable to perform this query:<br>\n $sql<br>");
if (!$result)
{
return $none; // 未找到 返回未定义变量
}
$count=0;
while ($obj=@mysql_fetch_object($result))
{
$msgs[$count++]=$obj;
}
return $msgs;
}
function SelectQuery($sql)
{
$mysql=new mysql(dbname);
$obj=$mysql->SelectQuery($sql);
$mysql->close();
return $obj;
}
还有你最好把你的if语句再优化一下
比如:
if($num>0)
if($row)
...
完全可以:if(!$num && !$row)