Я работаю над многоязычным сайтом, поэтому я попробовал следующий подход:
echo $_COOKIE["lg"];
if (!isset($_COOKIE["lg"]))
setcookie("lg", "ro");
echo $_COOKIE["lg"];
Идея в том, что если у клиента нет lg
cookie (поэтому они впервые посещают этот сайт), затем установите cookie lg = ro
для этого пользователя.
Все работает нормально, за исключением того, что если я захожу на эту страницу в первый раз, первое и второе echo
ничего не возвращают. Только если я обновляю страницу, устанавливается файл cookie, а затем оба echo
печатают строку «ro», которую я ожидаю.
Как установить этот файл cookie, чтобы увидеть его значение из второго эха
при первом посещении/загрузке страницы пользователем? Должно быть без необходимости обновлять страницу или создавать перенаправление.
Вы не можете в соответствии с Руководством по PHP :
После того, как куки установлены, к ним можно получить доступ на следующей странице. загрузить с массивами $ _COOKIE или $ HTTP_COOKIE_VARS.
Это потому, что куки отправляются в заголовки ответа в браузер, и браузер должен затем отправить их обратно со следующим запросом. Вот почему они доступны только при загрузке второй страницы.
Но вы можете обойти это, также установив Вы не можете в соответствии с Руководством по PHP : После того, как куки установлены, к ним можно получить доступ на следующей странице. загрузить с массивами $ _COOKIE или $ HTTP_COOKIE_VARS. Это потому, что куки отправляются в заголовки ответа в браузер, и браузер должен затем отправить их обратно со следующим запросом. Вот почему они доступны только при загрузке второй страницы. Но вы можете обойти это, также установив [111] при вызове Вы не можете в соответствии с Руководством по PHP : После того, как куки установлены, к ним можно получить доступ на следующей странице. загрузить с массивами $ _COOKIE или $ HTTP_COOKIE_VARS. Это потому, что куки отправляются в заголовки ответа в браузер, и браузер должен затем отправить их обратно со следующим запросом. Вот почему они доступны только при загрузке второй страницы. Но вы можете обойти это, также установив Вы не можете в соответствии с Руководством по PHP : После того, как куки установлены, к ним можно получить доступ на следующей странице. загрузить с массивами $ _COOKIE или $ HTTP_COOKIE_VARS. Это потому, что куки отправляются в заголовки ответа в браузер, и браузер должен затем отправить их обратно со следующим запросом. Вот почему они доступны только при загрузке второй страницы. Но вы можете обойти это, также установив [111] при вызове Вы не можете в соответствии с Руководством по PHP : После того, как куки установлены, к ним можно получить доступ на следующей странице. загрузить с массивами $ _COOKIE или $ HTTP_COOKIE_VARS. Это потому, что куки отправляются в заголовки ответа в браузер, и браузер должен затем отправить их обратно со следующим запросом. Вот почему они доступны только при загрузке второй страницы. Но вы можете обойти это, также установив Вы не можете в соответствии с Руководством по PHP : После того, как куки установлены, к ним можно получить доступ на следующей странице. загрузить с массивами $ _COOKIE или $ HTTP_COOKIE_VARS. Это потому, что куки отправляются в заголовки ответа в браузер, и браузер должен затем отправить их обратно со следующим запросом. Вот почему они доступны только при загрузке второй страницы. Но вы можете обойти это, также установив [111] при вызове Вы не можете в соответствии с Руководством по PHP : После того, как куки установлены, к ним можно получить доступ на следующей странице. загрузить с массивами $ _COOKIE или $ HTTP_COOKIE_VARS. Это потому, что куки отправляются в заголовки ответа в браузер, и браузер должен затем отправить их обратно со следующим запросом. Вот почему они доступны только при загрузке второй страницы. Но вы можете обойти это, также установив Вы не можете в соответствии с Руководством по PHP : После того, как куки установлены, к ним можно получить доступ на следующей странице. загрузить с массивами $ _COOKIE или $ HTTP_COOKIE_VARS. Это потому, что куки отправляются в заголовки ответа в браузер, и браузер должен затем отправить их обратно со следующим запросом. Вот почему они доступны только при загрузке второй страницы. Но вы можете обойти это, также установив [111] при вызове
при вызове Ответ
Обойти
setcookie()
:
COOKIEif(!isset(
Ответ
Обойти
при вызове Ответ
Обойти
setcookie()
: setcookie()
: Ответ
Обойти
при вызове Ответ
Обойти
setcookie()
: setcookie()
: Ответ
Обойти
при вызове Ответ
Обойти
setcookie()
: setcookie()
: setcookie()
:
Файлы cookie отправляются только во время запроса и, следовательно, не могут быть извлечены сразу после его назначения (доступно только после перезагрузки).
После того, как куки установлены, к ним можно получить доступ при загрузке следующей страницы с массивами $ _COOKIE или $ HTTP_COOKIE_VARS.
Если выход существует до вызова этой функции, setcookie () завершится с ошибкой и вернет FALSE. Если setcookie () успешно запустит , он вернет TRUE. Это не не указывает, принял ли пользователь cookie .
Файлы cookie не будут видны до следующей загрузки страницы , для которой файл cookie должен быть виден. Чтобы проверить, был ли cookie успешно установлен, проверьте его на следующей странице загрузки, прежде чем истечет срок действия cookie. Время истечения устанавливается через параметр истечения. Хороший способ отладить существование файлов cookie - просто вызвать print_r ($ _ COOKIE) ;.