从数组

时间:2016-03-09 17:34:35

标签: php session

我遇到了麻烦所以我不想这样做,我有一个PHP类来处理会话,所以当我调用IniciarSesion函数时,我将发送和对象的param和值设置为SESSION,但我无法将其分配到会话中。这是我的班级代码。

class Sesiones{
    public function IniciarSesion($params, $url){
        session_start();
        //Iterar parametros de array params y setearlo en session
        foreach ($params as $param){
            $_SESSION[$param["param"]] = $param["val"];
        }
        //URL para redireccionar
        if (isset($url)){
            header("Location: ".$url);
        }
    }
    public function CerrarSesion($url){
        session_destroy();
        exit();
        //El parametro URL es para saber a que URL redireccionar
        if (isset($url)){
            header("Location: ".$url);
        }
    }
}

这是结构调用将具有:

$user_params = [["param"=>"id", "val"=>1457],["param"=>"user", "val"=>"Force"]];
$user_url = "perfil.php?id=1457";

$init_session = new Sesiones();
$init_session->IniciarSesion($user_params, $user_url);

我做错了什么?

修改

我的问题是$ _SESSION没有填充,因为在我的工作中我无法访问错误日志并且PHP erroe消息被禁用我很难找到它,但当我更改用户时它工作,所以我回滚到主用户并按值访问值,发现$ user_params可以获取此数据:

$user_params = [["param"=>"apellido", "val"=>Ámbar]];

我认为这是一个完全不同的问题,我不知道为什么没有“”将它设置为字符串,但由于这来自外部Web服务,我需要在我的Sesiones类上格式化

1 个答案:

答案 0 :(得分:0)

根据我对代码的理解检查这个foreach

foreach ($user_params as $key => $val){
     $_SESSION[$key] = $val;
}