2013-05-19 56 views
1

我在我的控制器中使用它來檢查cookie是否已設置。如果沒有,我就設置它。檢查cookie是否設置時出錯

function x(){ 
    if(!isset($_COOKIE['sg'])){ 
     $this->load->model('generate_model'); 
     $val=$this->generate_model->random(); 
     setcookie('sg',$val, time()+3600*24*30*12*3,"/", ""); 
    } 
    $this->load->model('model'); 
    $data['cod']=$cod; 
    $this->model->select($cod); 
    $this->load->view('templates/header'); 
    redirect('Home','refresh'); 
} 

如果沒有設置cookie,我得到兩個錯誤:

遇到

一個PHP錯誤

嚴重性:注意

消息:未定義指數:SG

檔案名稱:models/select_gift_model.php

行號:12

數據庫出錯

錯誤編號:1048

列 'UID' 不能爲空

INSERT INTO iduidcod)VALUES(NULL,「 35A5V0Mogc')

文件名:C:\ wamp \ www \ ci \ system \ database \ DB_driver.php

行號:330

cookie已設置,如果我按回並再次調用,該功能正常工作。

如何檢查cookie是否設置並使功能正常工作?

回答

1

在PHP的文檔:

Once the cookies have been set, they can be accessed on the next page load with the $_COOKIE or $HTTP_COOKIE_VARS arrays. Note, superglobals such as $_COOKIE became available in PHP 4.1.0. Cookie values also exist in $_REQUEST.

來源:http://php.net/manual/en/function.setcookie.php

的最佳途徑,使其同時有當前連接是做folling:

setcookie('sg',$val, time()+3600*24*30*12*3,"/", ""); 
$_COOKIE = $val; 
+0

謝謝你的回答。它現在正在工作。 – denis