【发布时间】:2014-01-04 08:01:07
【问题描述】:
我在什么时候使用会话 用户控制器 操作登录
$userid=User::model()->fetch($username,$password);
// var_dump($userid);
Yii::app()->SESSION['srid']=$userid;
在我的用户模型中
public function fetch($username,$password)
{
$sql="select id FROM user where ( username='".$username. "' AND password='".$password."')";
$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
$resuserid=$command->queryAll();
//var_dump($resuserid);
$result=array();
foreach($resuserid as $key=>$val)
{$result[]=$val;}
return $result;
}
当我在其他控制器中访问它时
个人控制者
我需要保存
$model->personid=Yii::app()->SESSION['srid'];
结果
var_dump($model->personid);
某事
array
0 =>
array
'id' => string '24' (length=2)
确切的 id 是 '24' 但它显示为字符串 '24'
错误是
personid must be a number.
问题是会话将它存储为字符串,但我需要它作为整数,因为 personid 是整数............
我也想知道我们是否在 config/main 中配置会话......我需要一个数据库吗
请帮我解决这个问题
【问题讨论】:
-
试试这个代码
$model->personid = (int) Yii::app()->SESSION['srid']; -
对于上述 cde,personid 始终为 1
-
试试
intval(Yii::app()->SESSION['srid']); -
这非常容易受到 SQL 注入的攻击。我不建议你这样做
-
a) 使用它来设置会话 stackoverflow.com/questions/14197462/…