2015-04-28 2 views
0

я разработал одно приложение в Codeigniter все идет отлично, но у меня есть один вопрос следующим образом:
Я хочу осуществить autologin на приборную панель после того, как первый раз логина и для переднего конца и обратно конец.
Объяснение:
Когда я войти в admin side в первый раз он идет в admin dashboard и закрыть tab/browser без нажатия на logout button и поставить admin ссылку она идет к админ панели управления без входа в систему снова, ДО здесь все идет хорошо, но когда я ставлю front end link (after first time login and closing tab) он не идет к admin приборной панели и показывает ошибку какCodeigniter Cookie проблема для задней части и передней торцевой стороны

страница не перенаправлять правильно

Я столкнулся с такой же проблемой на лицевой стороне.
Я хочу сделать это, потому что это требование клиента.
Пожалуйста, помогите мне в этом вопросе. Благодарю.

Вот моя функция индекса

if($_COOKIE['AS_AD_SES_ADMIN_ID']!='' && $_COOKIE['stay_signedin']=='1') 
{ 
     $username = $_COOKIE['ADMIN_USERNAME']; 
     $password = $_COOKIE['ADMIN_PASS']; 

     $result = $this->verifylogin->login($username, $password); 

     foreach($result as $row) 
     { 
      $sess_array = array(
        'AS_AD_SES_ADMIN_ID'   => $row->fld_id, 
        'AS_AD_SES_ADMIN_FULL_NAME' => $row->fld_user_name, 
        'AS_AD_SES_ADMIN_NAME'   => $row->fld_adm_name, 
        'AS_AD_SES_LOGIN_TIME'   => date('h:i:s A'), 
        'AS_AD_SES_LOGIN_DATE'   => date("d-m-Y"), 
        'AS_SES_ACCESS_LEVEL'   => $row->fld_access_level, 
        'AS_TAB_TITLE'     => 'Welcome to Project', 
        'logged_in'     => TRUE 
        ); 

      $this->session->set_userdata($sess_array); 
     } 
     $this->load->view('dashboard'); 
}else{ 
     redirect(base_url()); 
} 

модели Verifylogin входа в систему функция следующим образом

function login($username, $password) 
{ 
    $ip_address=$_SERVER['REMOTE_ADDR']; 

    $this -> db -> select('fld_id, fld_user_name,fld_adm_name,fld_adm_pwd,fld_access_level'); 
    $this -> db -> from('tbl_admin'); 
    $this -> db -> where('fld_user_name',$username); 
    $query = $this -> db -> get(); 

    if($query -> num_rows() == 1) 
    { 
     $res = $query->row(); 
     $pass = $res->fld_adm_pwd; 
     $pass1 = $this->encrypt->decode($pass); 
     if($pass1 == $password) 
     { 
      $password = $pass; 

      $query = $this->db->query("SELECT fld_id,fld_user_name,fld_adm_name,fld_access_level,fld_adm_pwd,fld_stay_signed_in FROM tbl_admin where fld_user_name = '".$username."' and fld_adm_pwd = '".trim($password)."' and fld_isdeleted !=1 and fld_status = 'Active'"); 

      if($query->num_rows() == 1) 
      { 
       return $query->result(); 
      } 
     } 
     else 
     { 
      return false; 
     } 
    } 

} 
+0

где ваш код? – Saty

+0

@saty Спасибо за мгновенный ответ, я использовал cookie для него, когда админ логин, и я установил для него cookie. –

+0

Мы не можем помочь вам, пока мы не сможем увидеть ваш код? – Saty

ответ

0

Я думаю, что проблема заключается в том, что $ куки умирающей, когда браузер закрыт, я предлагаю использовать $ _SESSION переменная.

// Start the session 
session_start(); 

if($_SESSION['AS_AD_SES_ADMIN_ID']!='' && $_SESSION['stay_signedin']=='1') 
     { 
      $username = $_SESSION['ADMIN_USERNAME']; 
      $password = $_SESSION['ADMIN_PASS']; 

      $result = $this->verifylogin->login($username, $password); 

      foreach($result as $row) 
      { 
       $sess_array = array(
         'AS_AD_SES_ADMIN_ID'   => $row->fld_id, 
         'AS_AD_SES_ADMIN_FULL_NAME' => $row->fld_user_name, 
         'AS_AD_SES_ADMIN_NAME'   => $row->fld_adm_name, 
         'AS_AD_SES_LOGIN_TIME'   => date('h:i:s A'), 
         'AS_AD_SES_LOGIN_DATE'   => date("d-m-Y"), 
         'AS_SES_ACCESS_LEVEL'   => $row->fld_access_level, 
         'AS_TAB_TITLE'     => 'Welcome to Project', 
         'logged_in'     => TRUE 
         ); 

       $this->session->set_userdata($sess_array); 
      } 
      $this->load->view('dashboard'); 
     }else{ 
      redirect(base_url()); 
     } 
+0

Я хочу реализовать такие функции, как запомнить меня в Codeigniter, для этого я хочу использовать & установить cookie на 2 недели, если пользователь проверит флажок «Запомнить меня» в форме входа. –

+0

set_userdata используется для переменной сеанса, в вашем случае для cookie вам нужно установить cookie – LoneRanger

+0

http://www.w3schools.com/php/func_http_setcookie.asp, учитывая, как установить cookie. – LoneRanger

0

Если verifylogin->login функция возвращает ложь, то и вы загружаете вид приборной панели. Вам нужно проверить, вернет ли он ложь или результат. И вам не нужен foreach для одного результата.

if($_COOKIE['AS_AD_SES_ADMIN_ID']!='' && $_COOKIE['stay_signedin']=='1') 
{ 
    $username = $_COOKIE['ADMIN_USERNAME']; 
    $password = $_COOKIE['ADMIN_PASS']; 

    $row = $this->verifylogin->login($username, $password); 

    if($row) 
    { 
     $sess_array = array(
       'AS_AD_SES_ADMIN_ID'   => $row->fld_id, 
       'AS_AD_SES_ADMIN_FULL_NAME' => $row->fld_user_name, 
       'AS_AD_SES_ADMIN_NAME'   => $row->fld_adm_name, 
       'AS_AD_SES_LOGIN_TIME'   => date('h:i:s A'), 
       'AS_AD_SES_LOGIN_DATE'   => date("d-m-Y"), 
       'AS_SES_ACCESS_LEVEL'   => $row->fld_access_level, 
       'AS_TAB_TITLE'     => 'Welcome to Project', 
       'logged_in'     => TRUE 
       ); 

     $this->session->set_userdata($sess_array); 
     $this->load->view('dashboard'); 
    }else{ 
     redirect(base_url()); 
    } 
}else{ 
    redirect(base_url()); 
} 


function login($username, $password) 
{ 
    $ip_address=$_SERVER['REMOTE_ADDR']; 

    $this -> db->select('fld_id, fld_user_name,fld_adm_name,fld_adm_pwd,fld_access_level'); 
    $this -> db -> from('tbl_admin'); 
    $this -> db -> where('fld_user_name',$username); 
    $query = $this -> db -> get(); 

    if($query -> num_rows() == 1) 
    { 
     $res = $query->row(); 
     $pass = $res->fld_adm_pwd; 
     $pass1 = $this->encrypt->decode($pass); 
     if($pass1 == $password) 
     { 
      $password = $pass; 

      $query = $this->db->query("SELECT fld_id,fld_user_name,fld_adm_name,fld_access_level,fld_adm_pwd,fld_stay_signed_in FROM tbl_admin where fld_user_name = '".$username."' and fld_adm_pwd = '".trim($password)."' and fld_isdeleted !=1 and fld_status = 'Active'"); 

      if($query->num_rows() == 1) 
      { 
       return $query->row(); 
      } 
     } 
    } 
    return false; 
} 
Смежные вопросы