Php 通过服务器端和客户端设置cookie之间的差异
我的问题是在第一次加载页面时,Php 通过服务器端和客户端设置cookie之间的差异,php,javascript,jquery,zend-framework,Php,Javascript,Jquery,Zend Framework,我的问题是在第一次加载页面时,警报返回空值,因为cookie未设置,如果我再次刷新,我将得到一个警报“测试”,但如果我单击锚定标记,将发生表单提交,并且cookie值被重写为“这是来自post”,因此,很明显,在操作返回到页面后,我会收到一个“this is from post”警报,但我仍然收到一个“test”警报,cookie值没有被重写 在我的mozilla cookie控制台中,有两个名为foo的cookie,其值分别为“test”和“this from post”“有两个名为foo的c
警报
返回空值,因为cookie未设置,如果我再次刷新,我将得到一个警报
“测试”,但如果我单击锚定标记,将发生表单提交,并且cookie值被重写为“这是来自post”,因此,很明显,在操作返回到页面后,我会收到一个“this is from post”警报,但我仍然收到一个“test”警报,cookie值没有被重写
在我的mozilla cookie控制台中,有两个名为foo的cookie,其值分别为“test”和“this from post”“有两个名为foo的cookie”
如果名称相同,则域必须不同。使用同一域设置两个cookie。请注意,example.net
不同于www.example.net
或.example.net
“有两个名为foo的cookie”
如果名称相同,则域必须不同。使用同一域设置两个cookie。请注意,
example.net
与www.example.net
或不同。example.net
它位于同一个域192.168.50.148由于单个域不能设置两个同名cookie,因此必须存在差异…它位于同一个域192.168.50.148由于单个域不能设置两个同名cookie,一定有区别…
function setCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
$(document).ready(function(){
alert(getCookie('foo'));
setCookie('foo','test'); //just setting a cookie on page load
$('#bing').click(function(){
$('#frm1').submit();
});
});
HTML side(foo.phtml)
<a href="javascript:void(0);" id="bing">Go</a>
<form id="frm1" method="POST" action="/somecontroller/someaction">
<input type="hidden" name="foo_post" value="this is from post" />
</form>
public function someactionAction(){
$_COOKIE['foo'] = $this->_request->getPost('foo_post');
$this->_redirect('/somecontroller/foo');
}