2016-03-09 64 views
1

我遇到了麻煩,所以我不想讓這個去,我有一個PHP類來處理會話,所以當我調用IniciarSesion函數時,我將發送和對象的參數和值設置爲SESSION,但我無法將其分配到會話中。這是我的班級代碼。設置來自陣列的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

*什麼*不工作?請更好地描述你的問題。 – Jordy

+1

你的確切代碼似乎是填充'$ _SESSION'就好:https://3v4l.org/mvlBE – jszobody

+0

問題是SESSION沒有填充,但我想我找到了問題,不知道該怎麼辦,現在編輯問題 –

回答

0

按我的代碼檢查的瞭解這個的foreach

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

要試試這個,但我現在編輯問題,我發現了別的東西 –