Предупреждение: setcookie () ожидает, что параметр 3 будет длинным, - PullRequest
1 голос
/ 05 ноября 2011

я пытаюсь этот код:

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

Ответы [ 2 ]

3 голосов
/ 05 ноября 2011

Вы не можете назначить 3 разных куки в одном вызове функции. Вам нужно установить каждый 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 голос
/ 05 ноября 2011

Вы можете установить массив 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";
    }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...