我正在使用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的屏幕截图:
答案 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可以访问它。