首页 > 后端开发 > php教程 > thinkphp会员登录问题

thinkphp会员登录问题

WBOY
发布: 2016-06-23 14:18:38
原创
1186 人浏览过

<?phpsession_start();header('Content-Type:text/html; charset=utf-8');class AdminAction extends Action{      public function index(){	  if(isset($_POST['username'])){	        if(isset($_POST['username'])&&isset($_POST['password'])){			    $db=M();				$select=$db->query("select * from developers where username=".$POST['username']." and password=".$_POST['password']."");				if($select){				    $_SESSION['admin']=$_POST['username'];					$this->redirect('Index/index','',2,'用户'.$_POST['username'].'登录成功!');                 }else{					$this->redirect('Index/index','',2,'用户名或者密码不正确');					}				}else{				    $this->redirect('Index/index','',2,'用户名或密码不能为空!');					}					}					$this->display();					}	    	}	?>
登录后复制

这是AdminAction代码,不知道怎么回事,不管输入什么或者不输人它都提示用户名或者密码不正确,为什么呢?哪的问题?


回复讨论(解决方案)

看看sql语句在数据库的查询结果有没有问题。

你确定你的sql没错??

"select * from developers where username='".$POST['username']."' and password='".$_POST['password']."'"
登录后复制
登录后复制
登录后复制
登录后复制

你确定你的sql没错??

"select * from developers where username='".$POST['username']."' and password='".$_POST['password']."'"
登录后复制
登录后复制
登录后复制
登录后复制


我改成你这样了,但是又出新问题了,就是什么也不填,显示用户登录成功,然后就是不管填什么都是用户名或者密码不正确。这。。。咋回事啊?

查询操作后面加上: echo $db->getLastSql();exit; 把sql语句打印出来就知道结果了。

查询操作后面加上: echo $db->getLastSql();exit; 把sql语句打印出来就知道结果了。
用这个发现问题了,username不管我输入什么都打印不出来,password就没问题,这是哪的问题呢?没发现是哪写错了啊


查询操作后面加上: echo $db->getLastSql();exit; 把sql语句打印出来就知道结果了。
用这个发现问题了,username不管我输入什么都打印不出来,password就没问题,这是哪的问题呢?没发现是哪写错了啊
表单里的name属性有没有写错



查询操作后面加上: echo $db->getLastSql();exit; 把sql语句打印出来就知道结果了。
用这个发现问题了,username不管我输入什么都打印不出来,password就没问题,这是哪的问题呢?没发现是哪写错了啊
表单里的name属性有没有写错
当然不可能写错了。。。怎么会犯那么低级的错误...




查询操作后面加上: echo $db->getLastSql();exit; 把sql语句打印出来就知道结果了。
用这个发现问题了,username不管我输入什么都打印不出来,password就没问题,这是哪的问题呢?没发现是哪写错了啊
表单里的name属性有没有写错
当然不可能写错了。。。怎么会犯那么低级的错误...

你的password没有MD5?

是不是数据库里md5了,查询里没有md5

你直接打印$_POST看看有没有username

你直接打印$_POST看看有没有username

首先password md5了。数据库里也md5了。直接打印也还是没有username。密码能打印出来,就是username打印不出来

先获取post值看下,再输出sql,再把sql执行,看是否返回结果集。

检查一下浏览器 cookie

username='".$POST['username']."'
发现问题了没
username='".$_POST['username']."'

你确定你的sql没错??

"select * from developers where username='".$POST['username']."' and password='".$_POST['password']."'"
登录后复制
登录后复制
登录后复制
登录后复制


我晕,你发现了居然不指出来,他们也没发现,坑爹啊,直到现在才明白....
应该是$select=$db->query("select * from developers where username=".$_POST['username']." and password=".$_POST['password']."");


你确定你的sql没错??

"select * from developers where username='".$POST['username']."' and password='".$_POST['password']."'"
登录后复制
登录后复制
登录后复制
登录后复制


我晕,你发现了居然不指出来,他们也没发现,坑爹啊,直到现在才明白....
应该是$select=$db->query("select * from developers where username=".$_POST['username']." and password=".$_POST['password']."");


username='".$_POST['username']."'这种地方都要加上单引号

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板