我遇到了麻烦所以我不想这样做,我有一个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类上格式化
答案 0 :(得分:0)
根据我对代码的理解检查这个foreach
foreach ($user_params as $key => $val){
$_SESSION[$key] = $val;
}