简体   繁体   中英

PHP check for existing cookie doesn't work in Wordpress

I have a PHP script which doesn't work when I insert it directly into header.php or any other file of my Wordpress site theme.

I successfully wrote a cookie. Then I check for this cookie with Java Script and PHP code. But only Java Script returns me "found".

<script language="javascript">
    <!--
    if (document.cookie.indexOf("users_res") >= 0) {
  alert("found");
}
else {
  alert("not found");
}
    //-->
    </script>
<?php
if (isset($HTTP_COOKIE_VARS["users_res"]))  {
    echo "found";
} else {
    echo "not found";
}
?>

When I put this PHP code into test.php and I upload it manually to my site - PHP script shows "found". But when I try to insert the code into header.php or any other PHP file of my WP theme - it shows "not found".

I tested this PHP code with 2 other sites with different themes and WP versions, but still doesn't work.

I think your problem is with $HTTP_COOKIE_VARS , replace it with $_COOKIE and it should work, (that is IF your part of the script that is calling $HTTP_COOKIE_VARS is within a function).

$HTTP_COOKIE_VARS contains the same initial information, but is not a superglobal. (Note that $HTTP_COOKIE_VARS and $_COOKIE are different variables and that PHP handles them as such)

http://php.net/manual/en/reserved.variables.cookies.php

Replace $HTTP_COOKIE_VARS with $_COOKIE . $HTTP_COOKIE_VARS is deprecated and not superglobal what might be the reason you can't access the cookie.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM