如何在php cookie值中读取jquery cookie值?

时间:2015-07-14 10:31:23

标签: javascript php

我不确定是否可以在php cookie值中读取jquery cookie值?

var current = $.cookie("count");

    show<?php echo $keys; ?><?php setcookie("bgx","document.write(current)");  echo $_COOKIE["bgx"]; ?>now.play(); 

    $.cookie('count', <?php echo $count; ?>);

2 个答案:

答案 0 :(得分:3)

这是一个简单的演示,演示如何使用JavaScript创建cookie并在重新加载页面时使用PHP读取它(因为JavaScript是在PHP之后执行的,因为它是客户端)。将此代码复制到新的PHP文档中,将其上传到您的服务器,然后尝试。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>
<body>

    <h1>Cookie demo</h1>

    <p>This demo shows how you can create a cookie with Javascript (using jQuery), and read it with PHP.</p>

    <?php

        /* THIS PORTION IS EXECUTED ON THE SERVER */

        // if the cookie "myCookie" is set
        if(isset($_COOKIE['myCookie'])){
            echo "<p><b>PHP found this value for <i>myCookie</i>: " .  $_COOKIE['myCookie'] . "</b></p>";
        }
        else{
            echo "<p><b>PHP did not find a value for <i>myCookie</i>. Give it a value below.<b></p>";
        }

    ?>

    <input type="text" id="myInput"/><button id="myButton">Change the cookie value using JS</button>

    <!-- make sure you load jQuery and the jQuery cookie plugin -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

    <script>

        /* THIS PORTION OF CODE IS ONLY EXECUTED WHEN THE USER SEES THE PAGE (CLIENT-SIDE) */

        $(function(){
            $('#myButton').click(function(){
                $.cookie('myCookie', $('#myInput').val());
                alert(
                    'The value of myCookie is now "'
                  + $.cookie('myCookie')
                  + '". Now, reload the page, PHP should read it correctly.'
                );
            });
        });

    </script>
</body>
</html>

答案 1 :(得分:2)

Cookie是存储在浏览器中并与网站相关联的一段数据。每当浏览器从网站请求某些内容时,它都会在请求标头中包含Cookie。

您可以使用客户端JavaScript读写Cookie。 (注意:可以将cookie标记为http_only,在这种情况下,它们无法与客户端JS一起阅读。)

您可以阅读(通过检查请求标头)并使用服务器端代码编写(使用响应标头)Cookie。

通常的时间规则适用:

show<?php echo $keys; ?><?php setcookie(

使用服务器端代码设置cookie需要您发出响应标头。在您开始输出响应正文后,PHP不允许您发出响应标头。

您试图致电setcookie为时已晚。您需要在开始输出任何内容之前调用它。

"document.write(current)"

我不确定你在这里想要达到的目标。

  • 将JavaScript代码存储在cookie中没有多大意义。
  • 您无法使用客户端代码生成服务器端代码,因此如果尝试将current的值写入Cookie,则为时已晚。
setcookie("bgx","document.write(current)"); 
echo $_COOKIE["bgx"];

$_COOKIE填充了请求中的数据。

其中没有数据显示您当前的回复要求客户存储。您无法获得新值直到下一个请求。

简而言之:要使用JavaScript读取Cookie集,您必须在设置之后发出新的HTTP请求