$ _COOKIE [Ключ] пуст, несмотря на установку - PullRequest
0 голосов
/ 24 декабря 2011

У меня проблема с php cookie .Я использую recess framework для создания API отдыха.

У меня есть 2 файла

  1. User Controller : класс, содержащий методы, имеющие URL дляпользователь модели
  2. CommentController : аналогично пользовательскому контроллеру, но для комментариев

класс CommentController расширяет контроллер {

    /** !Route GET, test */
    function test()
    {
        setCookie("Who","userId");
        exit;
    }

    /** !Route GET, cookie */
    function checkCookie()
    {
        print_r($_COOKIE);
        exit;
    }
}

class UserController extends Controller 
{

    /** @var User */
    protected $user;

    /** !Route GET, test */
    function test()
    {
      print_r($_COOKIE);
        exit;
    }
}

Как видите,У меня есть два файла 1. Контроллер комментариев 2. Контроллер пользователей

Я вызываю test из CommentController, чтобы установить cookie и checkCookie с того же контроллера, чтобы проверить, был ли установлен cookie, и это нормально.set

Но после вызова этих двух функций, когда я вызываю test из usercontroller, чтобы проверить, был ли установлен cookie, cookie не установлен

Ответы [ 2 ]

3 голосов
/ 24 декабря 2011

_COOKIE заполняется только данными cookie, которые были отправлены на сервер клиентом во время запуска сценария.Он будет НЕ изменен, если вы вызовете setcookie () в течение сеанса выполнения того же сценария.Любые файлы cookie, которые вы изменяете / создаете во время текущего сеанса, будут отображаться в _COOKIE только по запросу NEXT , который отправляет клиент.

Как правило, PHP заполняет суперглобальные данные данными, которые онимеет под рукой, когда скрипт запускается, и затем он никогда не будет касаться их снова во время этого сеанса выполнения.Если вы сделаете что-нибудь, что повлияет на суперглобальное значение, это новое значение не будет отображаться в соответствующем суперглобальном значении до следующего запуска.

1 голос
/ 24 декабря 2011

Я думаю, что проблема связана с путем cookie. Вам лучше сделать куки доступными для всей системы.

Ex:

setcookie ("User", "999882", time() - 3600, "/public/", "test.com", 1);

Пожалуйста, попробуйте.

Прасад.

...