Session 会话在yii中无法正常工作
我在什么时候使用会话 用户控制器 操作登录Session 会话在yii中无法正常工作,session,yii,Session,Yii,我在什么时候使用会话 用户控制器 操作登录 $userid=User::model()->fetch($username,$password); // var_dump($userid); Yii::app()->SESSION['srid']=$userid; 在用户模型中,我有 public function fetch($username,$password) { $sql="selec
$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中配置会话。。。。。。我需要db吗
请帮帮我,我在这件事上迷失了方向。从你的代码
$result
是一个数组,不是字符串或整数
{$result[]=$val;}
应该是
{$result=$val;}
查看处理登录的更好方法。试试这个
public function fetch($username,$password)
{
$sql="select id FROM user where ( username='".$username. "' AND password='".$password."')";
$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
// use queryColumn if you have to fetch only a single column
$resuserid=$command->queryColumn();
//var_dump($resuserid);
$result=array();
foreach($resuserid as $val)
{
// you can cast each value as integer like this
$result=(int) $val;
}
return $result;
}
注意:-会话仅将整数存储为整数。问题是您正在将它存储为字符串。如果查询只返回一个值,则应使用queryScalar()。尝试以下代码
$model->personid=(int)Yii::app()->会话['srid']对于上面的cdetryintval(Yii::app()->SESSION['srid']),code>personid始终为1代码>这非常容易受到SQL注入的攻击。我不建议您这样做a)使用此方法设置会话,以便最终解决您的问题。哈恩??不要对任何事情失去理智:pIt有时会发生:)继续编码:)