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

WBOY
풀어 주다: 2016-06-13 12:43:38
원래의
901명이 탐색했습니다.

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

这是控制器下登陆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 />
로그인 후 복사

这就是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的错
这问题实在是太奇怪了..

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿