PHP无法读取javascript cookie

时间:2015-07-28 09:22:00

标签: javascript php cookies

我正在使用javascript设置cookie并尝试用PHP读取它,但是php无法读取它。我已经检查过cookie是用一个名为Cookies Manager的工具设置的。

码(JS):

<script>
document.cookie="encrIv=" + ivB64;
</script>

代码(PHP):

<?php
$encrIv = $_COOKIE['encrIv'];
echo $encriv;
?>

我得到了

  

注意:未定义的索引: C:\ Users \ joonas \ Desktop \ Webon cms \ root \ readCookie.php 中的 1 >

Cookie的屏幕截图:

Cookies Manager screenshot

3 个答案:

答案 0 :(得分:1)

将代码特别是回声部分从$ encriv更改为$ encrIv ,就像这个简单的例子一样

说这是你需要先访问的index.php。设置值为 encrIv cookie的文件

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
        document.cookie="encrIv=samplecookie";
    </script>
</head>
<body>
    <?php 

        $encrIv = isset($_COOKIE['encrIv'])?$_COOKIE['encrIv']:'';
        echo $encrIv;
    ?>
</body>
</html>

那么你的readCookie.php将在你加载index.php后访问。

 <?php 

            $encrIv = isset($_COOKIE['encrIv'])?$_COOKIE['encrIv']:'';
            echo $encrIv;
        ?>

那显然应该帮助你我的朋友

答案 1 :(得分:1)

<!DOCTYPE html>
<html>
  <head>
    <title>example</title>
    <script type="text/javascript">
       document.cookie = 'name=David' ;
    </script>
   </head>
   <body>
    <?php
       var_dump($_COOKIE['name']);
    ?>
   </body>
 </html>

用这个cookie设置。你纠正了错字吗? 你写道:

<?php
$encrIv = $_COOKIE['encrIv'];
echo $encriv;
?>

正确的方法是将回声改为

echo $encrIv;

或将您的变量更改为

$encriv = $_COOKIE['encrIv'];

编辑:

也许你的问题是未定义的路径。 像这样定义一个cookie:

document.cookie = 'sconName='+changedName+'; path=/'

答案 2 :(得分:1)

如果我在加载页面后刷新页面,那么您的代码可以正常使用。

你的javascript代码将在php代码之后运行(当php解释器处理了html + php代码并且浏览器解释了处理过的html代码时),这意味着当你尝试使用php访问它时它没有设置然而。但是当你重新加载页面时,cookie将存在,php可以访问它。