1

我在我的控制器中使用它来检查是否已经设置了 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”不能为空

插入iduidcod)值(NULL,'35A5V0Mogc')

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

行号:330

cookie 已设置,如果我按回并再次调用,该功能将正常工作。

如何检查是否设置了 cookie 并使功能正常工作?

4

1 回答 1

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

在当前连接中使其也可用的最佳方法是执行以下操作:

setcookie('sg',$val, time()+3600*24*30*12*3,"/", "" );
$_COOKIE = $val;
于 2013-05-19T14:09:48.417 回答