2017-02-10 4 views
1

Я новичок в cakephp 3.0. Я успешно создал файл cookie, но я хочу уничтожить этот файл cookie через одну минуту. я сделал до сих пор: -Как уничтожить cookie после 1 минуты в cakephp?

public function register_cookie(){ 
    $data = "Hello world!"; 
    $this->Cookie->write('dataFetch', $data, true, time() + (60 * 1)); 
} 
public function getcookie() { 
     $cookiedata = $this->Cookie->read('dataFetch'); 
     echo $cookiedata; 
} 

, но когда я пришел через одну минуту в getCookie функции, которую он до сих пор печатает т.е. «Hello World» я хочу после того, как одна минута печенья истек. Заранее спасибо :)

+0

Код кажется мне правильным. Таким образом, это может быть логическая ошибка. Можете ли вы предоставить код, где вы называете эти функции. Это может быть из-за того, что вы пишете cookie снова, прежде чем получить его. –

+0

Я представил эти имена своих собственных – kunal

+0

Откуда вы назвали функции 'register_cookie' и' getcookie'? –

ответ

0

В CakePHP 3.x как документ говорит, что вы можете иметь этот Paramenters

CookieComponent::write(mixed $key, mixed $value = null)

Но в CakePHP 2.x его используют, чтобы принять эти параметры

CookieComponent::write(mixed $key, mixed $value = null, boolean $encrypt = true, mixed $expires = null)

Чтобы установить время окончания срока вы должны установить конфигурацию, как этот

$this->Cookie->config([ 
    'expires' => '+10 days', 
]); 

Таким образом, вы код будет как этот

public function register_cookie(){ 
    $this->Cookie->config([ 
     'expires' => '+1 minute', 
    ]); 
    $this->Cookie->configKey('dataFetch', 'encryption', false); 
    $data = "Hello world!"; 
    $this->Cookie->write('dataFetch', $data); 
} 
+0

, но когда я читаю данные cookie между одной минутой, это не печатает данные в функции getCookie – kunal

0

Во-первых, вы должны проверить правильность установки даты истечения срока действия файла cookie. Например, в Chrome (после того, как элемент проверки активирует панель консоли), перейдите в Application \ Storage \ Cookies \ Localhost и проверьте файл cookie.

В CakePHP вы можете удалить куки с

$this->Cookie->delete('bar'); 

Также вы можете уничтожить печенье, установив дату истечения в прошлое со временем() - 1

+0

Как это сделать в функции getcookie – kunal

+0

Это показывает мне это время истечения 2017-03-10 – kunal

+0

Вы правильно указали код. Если это показывает 2017-03-10, это означает, что оно истечет 10 марта. Проверьте правильность настроек часов. Это должно быть 10 февраля текущего времени + 60 секунд. –

Смежные вопросы