欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

thinkphp会员登录问题

程序员文章站 2024-01-25 21:45:46
...
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']."'这种地方都要加上单引号