CodeIgniter v2.1.3을 사용하고 CI 장바구니 및 세션 사용에 문제가 있습니다. 장바구니에 요소를 삽입하면 모든 것이 잘됩니다. 그러나 페이지를 새로 고침하면 저장된 장바구니 항목이 모두 사라졌습니다. 세션 클래스를 사용할 때도 같은 문제가 발생했습니다.CodeIgniter 페이지 새로 고침시 장바구니 및 세션이 손실 됨
하지만 모든 것이 내 로컬 호스트에서 잘 작동합니다. 문제는 내 서버에서 발생합니다.
내 서버에 일부 웹 사이트가 있으며 세션에 문제가 없습니다. 그래서 그것은 CI에 의해 야기 된 것 같아요.
다음은 응용 프로그램/설정/config.php 파일에 세션 configuarations입니다 :$config['sess_cookie_name'] = 'blowup_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions1';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
은 내가 SESSION_ID를 인쇄 할 시도했지만 아무것도 반환하지 않습니다. 그래서 Session 클래스는 session_id를 생성하지 않았다. session_start()를 사용하여 수동으로 세션을 시작하면 session_id가 생성됩니다.
$ _SESSION을 사용하여 저장하려고했는데 아무런 문제없이 저장되었습니다.
CI_Session 및 Cart 라이브러리가 자동으로로드되지 않았습니까?
어떻게 해결할 수 있습니까? 아니면 어떤 세션 클래스가 현재 클래스를 대체 할 수 있습니까?
PS : 내 서버에 CentOS 5 실행, 5.0.96
아래는
업데이트 아파치 2.2.23와 MySQL PHP의 V 5.2.17가있다 내가 컨트롤러에서 사용하는 기능은을 추가 항목을 장바구니에 넣습니다. 데이터 ($ params)는 AJAX 요청을 통해 게시됩니다 (jquery AJAX 사용). 반환 된 데이터는 HTML 뷰입니다.
public function add_to_cart(){
$this->layout->set_template('ajax');
if ($this->is_post()){
$params = $this->get_all_post_data();
//Debug::dump($this->cart);die;
if (isset($params['id']) && (int)$params['id']>0){
$product = $this->_product_model->get_record_by_id((int)$params['id']);
if (!is_null($product)){
if (count($this->cart->contents())>0){
foreach ($this->cart->contents() as $item){
if ($item['id']==$product->id){
$data = array('rowid'=>$item['rowid'],'qty'=>++$item['qty']);
$this->cart->update($data);
}else{
$data = array('id'=>$product->id,'qty'=>1,'price'=>$product->price,'name'=>$product->id,'options'=>array('image'=>$product->thumb,'product_name'=>$product->title));
$this->cart->insert($data);
}
}
}else{
$data = array('id'=>$product->id,'qty'=>1,'price'=>$product->price,'name'=>$product->id,'options'=>array('image'=>$product->thumb,'product_name'=>$product->title));
$this->cart->insert($data);
}
$this->session->set_userdata(array('test'=>'Session test'));
$this->layout->load('cart/topmenu_cart', $this->data);
}
}
}
}
세션 쿠키 이름의 이름을 바꾸고 밑줄을 삭제 하시겠습니까? – tomexsans
@tomexsans : 나는 그것을했지만 행운이 없었습니다 –
어떻게 카트를 사용하고 있습니까? 여기에 코드를 게시하고 싶을 수도 있습니다. – tomexsans