PHP用户输入的信息能和数据库对比验证了.用户勾选了自动登录。保存到COOKIE,我在PHP中取出COOKIE中的信息和数据库对比验证,可是这样出了点小问题,一是用户没自动登录输入用户名和密码,我在PHP中执行了一条SQL语句,select * from user where user="$username" 用户自动登录了。我想再执行一条SQL语句,select * from user where user="$_COOKIE["user"]" 可是这两条SQL语句不知道如何分开执行和调用,
<?php function connect(){ $link=@mysql_connect("localhost","root","root")or die("数据库连接失败".mysql_errno()); mysql_select_db("admin",$link)or die("打开数据库失败"); return $link; } function fetchOne ($sql){ $result_type=MYSQL_ASSOC; $result=mysql_query($sql); $rows=mysql_fetch_array($result,$result_type); return $rows; } 上面是我封装的数据库函数,我在另一个PHP页面调用,$link=connect(); $rows=fetchOne($sql="select * from user where user='$username'");传了一条SQL语句,然后写了 几个判断条件,又传了一条SQL语句,不过这时有错误发生,只传一条很正常,第二条SQL语句是这样的 。$rows=fetchOne($sql="select * from user where user='$_COOKIE['user']'");这条是取出COOKIE里的 用户名和数据库里的对比。可是这样在同一个页面出了错误。不知道哪里不正确。请帮我分析下。谢谢了
实现的原来很简单,代码也不复杂,关键看怎么去设计以保证用户数据安全
实现原理大致分以下几步
1.用户勾选 选项
2.输入用户名 + 密码 +验证等信息 == 实现成功登录
3.PHP写入Cookie 记录用户 ID Username Pwd(不建议记录密码,可考虑其它加密方式) 是否选择自动登录的状态 以及过期时间
4.关闭浏览器 再次打开的时候 JS读取相关Cookie值, 自动Ajax提交或者跳转到登录控制器,PHP验证数据
5.自动登录就实现了
安全问题是自动登录的风险部分,关键看如何设计本地Cookied 的数据
预置的数据都应视为无效数据,否则登录就形同虚设了登录后,可设置(cookie)一段时间内无需重新登录
但也只是传递用户名(用户id),绝不可同时传递用户名和口令
function connect(){
$link=@mysql_connect("localhost","root","root")or die("数据库连接失败".mysql_errno());
mysql_select_db("admin",$link)or die("打开数据库失败");
return $link;
}
function fetchOne ($sql){
$result_type=MYSQL_ASSOC;
$result=mysql_query($sql);
$rows=mysql_fetch_array($result,$result_type);
return $rows;
}
上面是我封装的数据库函数,我在另一个PHP页面调用,$link=connect();
$rows=fetchOne($sql="select * from user where user='$username'");传了一条SQL语句,然后写了
几个判断条件,又传了一条SQL语句,不过这时有错误发生,只传一条很正常,第二条SQL语句是这样的
。$rows=fetchOne($sql="select * from user where user='$_COOKIE['user']'");这条是取出COOKIE里的
用户名和数据库里的对比。可是这样在同一个页面出了错误。不知道哪里不正确。请帮我分析下。谢谢了