你输出 $sql就知道是什么原因了。。
目前成都创新互联公司已为1000+的企业提供了网站建设、域名、雅安服务器托管、网站托管运营、企业网站设计、咸阳网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
$sql="select * from message where username= '".$_POST[username]."'";
提示信息是“密码输入错误”还是“密码或验证码错误”
如果是前一个,那么说明info是非空的,你在
else
{
echo "script language='javascript'alert('密码输入错误!');history.back();/script";
exit;
}
这个else里把info[pwd]和$this-pwd输出看看各是什么值
//取数据库表
$db = M('user');
$user = $db-where(array('username'=I('username')));
--------- 此句返回的$user是对象类型,不是数组,要有查询操作find\select\sum\count等;
你的情况是要取回字段关联数组,且只取一条,可以用以下两种之一:
$user=$db-where(array('username'=I('username')))-find();
或
$user=$db-getByUsername(I('username'));
这两种方法取到的都是关联数组,如果用select取到是索引数组。
取到的结果dump($user)可以打印查看。
最后的p()方法没用过。
这个就是比较基础的事情啦
你的代码中:if(mysql_affected_rows($link)!=0)
意思是某个查询所影响的行数,如果用户名和密码都不对,将返回0行,当然就不能通过验证啦
这样是一次性验证了用户名和密码.
但是你的sql语句有问题
应该这样 : $sql2="select * from user where name = '$name' and password = '$pass'";
你要获取查询的结果: 一般都用 mysql_fetch_array();
按照你上面例子用法
$result = mysql_query (select * from user where name = '$name')
$row = mysql_fetch_array($result);
如果你的sql语句没错话,用户名又存在
那么 就返回了一个数组 $row
你用echo $row[0] 或者 $row['name'] 试试就可以获得内容
你获得了用户名之后,就可以继续查询秘密是否正确啦..
原来一样
还不懂的话,来我博客看看 我也在学习php 大家交流一下