> 백엔드 개발 > PHP 튜토리얼 > thinkphp会员登录问题

thinkphp会员登录问题

WBOY
풀어 주다: 2016-06-23 14:18:38
원래의
1187명이 탐색했습니다.

<?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으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿