2014-01-21 56 views
0

我在使用PHP創建cookie方面存在問題。如何創建cookie

情況是這樣的。我在我的網站上創建了一個投票系統。而且每個投票的用戶只能被限制在10票。如果該網站檢測到該用戶,它將自動過期他/她的cookies。最後3個月後,該用戶的所有用戶數據(cookies)將自動銷燬。

我該怎麼做?請幫助我我正在項目中,我是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」的cookie和值「Ayushman-ashish」分配給它。我們還指定了餅乾應到期1小時後:

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

謝謝我只是設置了一個條件,並在10票後的Cookie將超過3個月 是一樣的cookie作爲一個cookie我怎樣才能將cookie設置爲3個月到期? – user3217294

+0

是的,我已經在3個月後設置了cookie過期,cookie將過期。那麼在另一個過程中ip如何在3個月內過期?我可以設置ip在3個月後過期 – user3217294

+0

是的,做同樣的事情 setcookie(「IP」,「127.0.0.1」,time()+ 3600 * 24 * 30 * 3); –

0

我也是個初學者,但我發現這是很有幫助的設置併發送cookie ..

<?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); 
?>