2017-10-02 1 views
0

セッションで変数を保存しようとするといくつかの問題があります。私はセッションで節約するためにすべての手順を追ったが、それがhtaccesのためであるかどうかを見出そうとするまでは何も動作しなかったが、決して解決できなかった。set session codeiniterの問題

$autoload['libraries'] = array('database','session', 'encrypt'); 

そして、これは私がライブラリを構成し、これは、コントローラでは私のコードでファイルに自動ロード中

のconfig/config.phpの

$config['sess_driver'] = 'files'; 
$config['sess_cookie_name'] = 'caja_prymera'; 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = NULL; 
$config['sess_match_ip'] = TRUE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 

私の構成です。

function solicitar() { 
    $data['error'] = EXIT_ERROR; 
    $data['msj'] = null; 
    try { 
     $json_service = '{"tipo": "A","Nombre": "juan","cantidad_max": 3000}'; 
     $nombre  = __getTextValue('nombre');//validation 
     $apellido  = __getTextValue('apellido');//validation 
     $dni   = _post('dni'); 
     $email   = _post('email'); 
     $newdata  = array(); 
     $tipo_producto = PRODUCTO_MICASH; 
     if($dni == null || $dni == '') { 
      throw new Exception('Ingrese su DNI'); 
     } 
     if(strlen($dni) != 8) { 
      throw new Exception('El DNI debe contener 8 caracteres'); 
     } 
     $json = json_decode($json_service); 
     $session = array('nombre'   => $nombre, 
         'apellido'   => $apellido, 
         'dni'    => $dni, 
         'email'    => $email, 
         'tipo_solicitud' => $json->tipo, 
         'cantidad'   => $json->cantidad_max, 
         'tipo_producto'  => $tipo_producto 
     ); 
     $this->session->set_userdata('deliverdata', $session); 
     if($dni == null) { 
      throw new Exception('Ingrese su DNI'); 
     }else { 
      if($json->tipo == 'A') { 
       if($tipo_producto == PRODUCTO_MICASH) { 
        $data['url'] = RUTA_CAJA.'c_preaprobacion'; 
       }else { 
        $data['url'] = RUTA_CAJA.'c_marca'; 
       } 
      }else if($json->tipo == 'B') { 
       $data['url'] = RUTA_CAJA.'c_losentimos'; 
      }else if($json->tipo == 'C') { 
       $data['url'] = RUTA_CAJA.'c_noencontrado'; 
      } 
     } 
     $data['error'] = EXIT_SUCCESS; 
    } catch (Exception $e){ 
     $data['msj'] = $e->getMessage(); 
    } 
    echo json_encode(array_map('utf8_encode', $data)); 
    } 

と私は私の他のコントローラでセッションを取得する場合、これは私のコードです:

public function index() { 
    $data['nombreDato']=':D'; 
    $data['nombre'] = _getSesion('nombre');//_getSesion = $this->session->userdata 
    $nombre = $this->session->userdata('nombre'); 
    _log(print_r($this->session->all_userdata('deliverdata'), true)); 
    $sueldo = $this->sueldo; 
    $minAuto = null; 
    $maxAuto = null; 
    $plazo = null; 
    $minPrestamo = null; 
    $maxPrestamo = null; 
    $valorAuto = null; 
    $minInicial = null; 
    $maxInicial = null; 
    $cantPago = 100000; 
    $minIniPorc = $this->minIniPorc; 
    $maxIniPorc = $this->maxIniPorc; 
    $arr = $this->array_datos; 
    foreach ($arr as $row) { 
     $plazo = $row['plazo']; 
     $minPrestamo = $row['mont_min']; 
     $maxPrestamo = $row['mont_max']; 
     $minAuto = $minPrestamo/(1-$minIniPorc); 
     $maxAuto = $maxPrestamo/(1-$maxIniPorc); 
    } 
    $valorAuto = ($minAuto+$maxAuto)/2; 
    $minInicial = max($valorAuto-$maxPrestamo,$valorAuto*$minIniPorc); 
    $maxInicial = min($valorAuto-$minPrestamo,$valorAuto*$maxIniPorc); 
    'mi_cash' == PRODUCTO_MICASH ? $titulo = 'Felicidades!!! Tienes un 
    préstamo pre aprobado' : $titulo = ''; 

    $data['tipo_product'] = $titulo; 
    $data['iniRango']  = round($valorAuto/100)*100; 
    $data['minAuto']  = round($minAuto/100)*100; 
    $data['maxAuto']  = round($maxAuto/100)*100; 
    $data['max_cuota'] = round($maxInicial/100)*100; 
    $data['min_cuota'] = round($minInicial/100)*100; 
    $data['cantPago']  = round($maxInicial/100)*100; 
    $data['mensual']  = round($minInicial/100)*100; 
    $this->load->view('v_preaprobacion', $data); 
    } 

私が設定されている必要があり$config['sess_save_path']「ファイル」ドライバを使用するには私の問題

+1

エラーメッセージも投稿する必要があります。誰かが理解できるように。 –

+0

セッションでデータを印刷するとエラーメッセージは表示されません。空になります。 –

+0

'$ config ['sess_save_path'] = APPPATHのように保存パスを設定してください。 'cache/session /' 'はデータベースではなくファイルを使用しているためです。 – user4419336

答えて

1

を解決してくださいファイルが書き込まれる絶対パスに移動します。ドキュメントHERE

フォルダへのアクセス許可を適切に設定する必要があります。もう一度、ドキュメントを参照してください。

他の問題があるかもしれませんが、私はそれらを探していないと告白します。あなたはsessionセットアップを正しく取得する必要があります。

関連する問題