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

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

程序员文章站 2022-06-16 22:13:31
...
自己做了个登陆注册的小东西 但一旦用字母登陆就报错
先上代码

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

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

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

网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 自各儿做了个登陆注册的小东西 但一旦用字母登陆就报错
  • 专题推荐

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

    认证0级讲师

    推荐视频教程
  • 自各儿做了个登陆注册的小东西 但一旦用字母登陆就报错javascript初级视频教程
  • 自各儿做了个登陆注册的小东西 但一旦用字母登陆就报错jquery 基础视频教程
  • 视频教程分类