自己做了个登陆注册的小东西 但一旦用字母登陆就报错
先上代码
这是控制器下登陆Action的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <br />
public function logAction()<br />
{<br />
$userid = $this ->getRequest()->getParam( 'userid' );<br />
$password = $this ->getRequest()->getParam( 'psd' );<br />
$table = new user();<br />
$where = 'userid =' . $userid ;<br />
$row = $table ->fetchRow( $where )->toArray();<br />
if ( $row [ 'password' ] == $password )<br />
{<br />
session_start();<br />
$_SESSION [ 'userid' ] = $userid ;<br />
$this ->render( 'logok' );<br />
}<br />
else <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的错
这问题实在是太奇怪了..