2014-01-21 4 views
0

У меня возникла проблема с созданием файлов cookie в PHP.Как создать cookie

Сценарий это. Я создал систему голосования на своем сайте. И каждый пользователь, который будет голосовать, должен быть ограничен только 10 голосами. Если сайт обнаружил, что пользователь автоматически запустит свои файлы cookie. И, наконец, через 3 месяца все пользовательские данные (файлы cookie) для этого пользователя будут автоматически уничтожены.

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

Контроллер

public function vote_photo() { 
    $vote = $this->contest_m->vote_photo($pid, fn_get_user('id')); 
    $code = random_string('alnum', 42); 

    if(! empty($vote)){ 
    echo $vote['msg']; 
    $cookie = array(
     'name' => 'contest_cookies', 
     'value' => $code, 
     'expire' => '7776000', 
     'domain' => $this->input->server('HTTP_HOST'), 
     'path' => '/', 
     'prefix' => 'sg_' 
    );  
    $this->input->set_cookie($cookie);  
    } 
    $data = array(
    'machine_id' => $_SERVER['REMOTE_ADDR'], 
    'cookie' => $code , 
    'date' => '1', 
    'photo_id' => '1', 
    'contest_id' => '1' 
); 
    $this->contest_m->save_cookie_count_ip($data); 
    $this->input->set_cookie($cookie); 
} 
} 
+1

Итак, что случилось с этим ? Основная идея выглядит нормально. Однако вы вызываете 'set_cookie()' дважды. Второй будет терпеть неудачу, если '$ vote ['msg']' пуст, потому что в этом случае вы не устанавливаете '$ cookie'. – MrTweek

+0

Вы используете специальную библиотеку cookie, с которой мы не можем вам помочь. В лучшем случае мы можем указать вам на встроенную функцию cookie: http://php.net/setcookie –

+0

После редактирования форматирования мы можем увидеть дополнительные '}'. Я не знаю, исправляет ли это что-либо, но это точно помогает отформатировать ваш код. – DutGRIFF

ответ

2

Синтаксис:

SetCookie (имя, значение, истекает, путь, домен);

Пример:

В приведенном ниже примере, мы создадим печенье под названием «user» и присвоить значение «Ayushman-ashish» к нему. Мы также указать, что печенье истекает по прошествии одного часа:

<?php 
setcookie("user", "Ayushman-ashish", time()+3600*24*30*3); // this is for 3 months 
?> 
+0

спасибо, что я только что установил условие, и после 10 голосов куки будут превышать до 3 месяцев. - это тот же ip, что и в cookie, как я могу настроить cookie на 3 месяца? – user3217294

+0

Да, я установил истечение срока действия печенья через 3 месяца, после чего печенье будет истекло. то как в другом процессе ip может истек через 3 месяца? может ли я установить ip на истекший период через 3 месяца – user3217294

+0

да, сделать то же самое setcookie («IP», «127.0.0.1», time() + 3600 * 24 * 30 * 3); –

0

Я тоже новичок, но я нашел этот полезный набор и отправить примеры печенья ..

<?php 
$value = "Test Cookie value"; 

// send a simple cookie 
setcookie("TestCookie",$value); 
?> 



<?php 
$value = "Test Cookie value"; 

// send a cookie that expires in 24 hours 
setcookie("TestCookie",$value, time()+3600*24); 
?> 
Смежные вопросы