自各儿做了个登陆注册的小东西 但一旦用字母登陆就报错

WBOY
Release: 2016-06-13 12:43:38
Original
903 people have browsed it

自己做了个登陆注册的小东西 但一旦用字母登陆就报错
先上代码

这是控制器下登陆Action的代码

<br />
//登陆提交控制器<br />
    public function logAction()<br />
    {<br />
        //获取登录表单参数<br />
    	$userid = $this->getRequest()->getParam('userid');<br />
    	$password = $this->getRequest()->getParam('psd');<br />
    	//创建表模型并查询登录密码<br />
    	$table = new user();<br />
    	$where = 'userid ='.$userid;<br />
    	$row = $table->fetchRow($where)->toArray();<br />
    	//验证表单密码和数据库密码<br />
    	if($row['password'] == $password)<br />
    	{<br />
    		//创建全局变量session用户名id<br />
    		session_start();<br />
    		$_SESSION['userid'] = $userid;<br />
    		//显示登陆成功视图<br />
    		$this->render('logok');<br />
    	}<br />
    	else <br />
    	{<br />
    		//密码错误显示登录失败视图<br />
    		$this->render('logfailed');<br />
    	} 	<br />
    }<br />
Copy after login

这就是user表
+--------+----------+----------+
| userid | username | password |
+--------+----------+----------+
| 010    | messi    | 010      |
| robin  | test     | robin    |
+--------+----------+----------+

首先注册过程一切正常 这两条记录都可以正常插入

但登陆的时候 用第一条记录010登陆的时候正常
             用第二条记录robin登陆的时候就出错了!! 报的是500错误 An error occurred  Application error

而如果我随便写一个用户名提交表单后 如果带字母就报错 没有字母纯数字的话就不报错 但也没有显示任何跳转信息
首先我分析出了随便写用户名密码时没有任何跳转的原因 就是因为fetchRow的返回值为null

但为什么我一旦写入英文字符就报错??
获取表单参数应该没有问题 表模型也应该没有问题
页面字符集 mysql字符集 zend studio字符集也都统一为了utf-8
是$where条件写的不对么 可是用数字登陆成功跳转啊
怎么还会出这么奇葩的问题呢...小弟经验不足 还得求教各位高手了

我还测试了010_010这种不带字母带特殊字符的字符串 提交之后也是报500的错
这问题实在是太奇怪了..

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template