我有PHP和hir Cookies的问题。 我正在做一个带有cookie的数组。
$possition = 0
setcookie('array['.$possition.']', "test");
echo $_COOKIE['array['.$possition.']'];
使用此代码,我创建了一个名为' array [0]'的Cookie。并且有价值'测试' (我可以在Google Chrome Cookie管理中看到它。)
但是,当我使用' echo'出现此消息:
Notice: Undefined index: array[0] in C:\xampp\htdocs\recub.php on line 7
但这个cookie不是空的......
有人知道如何解决这个问题吗?我已经尝试了" isset"但是这并没有显示任何内容。
此致
更新:
Rizier123使用延迟...有我的完整代码:
的index.php
<?php
setcookie('array_position', '0');
?>
<html>
<head>
<style>
#lista{border: 1px solid red; height:300px; width: 300px; margin: 0 auto}
#result{border: 1px solid blue; height:300px; width: 300px; margin: 10 auto}
</style>
<script>
function add(e) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
xmlhttp.open("GET", "cali.php?q=" + e, true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="lista">
<ul>
<li id="test1" onclick="add('test1')">test1</li>
<li id="test2" onclick="add('test2')">test2</li>
<li id="test3" onclick="add('test3')">test3</li>
<li id="test4" onclick="add('test4')">test4</li>
</ul>
</div>
<div id="result">
<ul>
<li id="txtHint"></li>
</ul>
</div>
</body>
</html>
cali.php
<?php
// Get element ID.
$q = $_REQUEST["q"];
// Get the current array's position.
$position = $_COOKIE['array_position'];
setcookie('array['.$position.']', $q);
// Assign the Element ID on this Array. (1º Time must be array[0])
$num = $_COOKIE['array_position'];
// Loop for display all array values
for($i=0; $i<=$num; $i++){
echo $_COOKIE['array'][$i]."</br>";
}
// the current array's position + 1 for next time.
$num2 = $_COOKIE['array_position']+1;
setcookie ('array_position', $num2) ;
?>
(请记住,每次重新加载页面时都要删除cookie。) 这样,第一次单击某个项目时,将显示未定义的索引。如果您继续点击项目,则会显示上一个项目...
答案 0 :(得分:2)
你必须改变这个:
echo $_COOKIE['array['.$possition.']'];
到此:
echo $_COOKIE['array'][$possition];
有关setcookie()
的详情,请参阅手册:http://php.net/manual/en/function.setcookie.php
从那里引用(例3):
您还可以在Cookie名称中使用数组表示法设置数组Cookie。这样可以设置与数组元素一样多的cookie,但是当脚本收到cookie时,这些值都将放在一个带有cookie名称的数组中: