2011-11-05 61 views
1

我试图验证码:警告:setcookie()函数需要参数3长,

setcookie('email', $first_email, 'hash', $this->hash, 'logout', $this->log, time()+60*60*24*100); 

,但我得到:Warning: setcookie() expects parameter 3 to be long,

我想setcookie多变量。怎么做?也许是一个数组?

那么我将有这样的事情,那就是用值数据库

if(empty($_COOKIE['email']) || empty($_COOKIE['hash']) || empty($_COOKIE['logout'])) { 
    //something 
} 
else 
//db 

回答

3

相比,您不能分配在一个函数调用3周不同的cookie。您需要单独设置每个Cookie,如下所示:

setcookie('email', $first_email, time()+60*60*24*100); 
setcookie('hash', $this->hash, time()+60*60*24*100); 
setcookie('logout', $this->log, time()+60*60*24*100); 
1

您可以设置cookie数组。这是从手册http://php.net/manual/en/function.setcookie.php

<?php 
// set the cookies 
setcookie("cookie[three]", "cookiethree"); 
setcookie("cookie[two]", "cookietwo"); 
setcookie("cookie[one]", "cookieone"); 

// after the page reloads, print them out 
if (isset($_COOKIE['cookie'])) { 
    foreach ($_COOKIE['cookie'] as $name => $value) { 
     $name = htmlspecialchars($name); 
     $value = htmlspecialchars($value); 
     echo "$name : $value <br />\n"; 
    } 
} 
?>