PHP-设置cookie和重定向
我正在尝试设置cookie并重定向。使用Debian GNU/Linux 6.0(64位)和PHP 5.3.3-7+squeeze19以及Suhosin补丁(cli)(构建时间:2014年2月17日10:10:23)和Apache/2.2.16(Debian) 出于某种原因,这是可行的:PHP-设置cookie和重定向,php,cookies,Php,Cookies,我正在尝试设置cookie并重定向。使用Debian GNU/Linux 6.0(64位)和PHP 5.3.3-7+squeeze19以及Suhosin补丁(cli)(构建时间:2014年2月17日10:10:23)和Apache/2.2.16(Debian) 出于某种原因,这是可行的: <?php $cookie_name = $_GET['a']; $cookie_value = $_GET['b']; setcookie($_GET['a'], $_GET['
<?php
$cookie_name = $_GET['a'];
$cookie_value = $_GET['b'];
setcookie($_GET['a'], $_GET['b'], time() + (86400 * 30), "/"); // 86400 = 1 day
?>
出于某种原因,每当我重定向时,即使使用下面的javascript,cookie也不会添加
<?php
$cookie_name = $_GET['a'];
$cookie_value = $_GET['b'];
setcookie($_GET['a'], $_GET['b'], time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="1;url=http://www.example.com">
<script type="text/javascript">
window.location.href = "http://www.example.com"
</script>
<title>Page Redirection</title>
</head>
<body>
If you are not redirected, follow <a href='http://www.example.com'>this link</a>!
</body>
</html>
window.location.href=”http://www.example.com"
页面重定向
如果没有重定向,请跟随!
为什么第一个示例有效,而其他示例无效?使用include而不是redirect
这也为浏览器保存了一个往返HTTP请求
<?php
$cookie_name = $_GET['a'];
$cookie_value = $_GET['b'];
setcookie($_GET['a'], $_GET['b'], time() + (86400 * 30), "/"); // 86400 = 1 day
include('/home/user/public_html/index.html');
exit;
?>
它的工作原理与预期的一样:
我也有这种奇怪的感觉,但是有了js重定向。在xp上使用chrome浏览器进行测试 我解决这个问题的方法是使用document.cookie对注入的js进行cookie设置=
?>
<script type="text/javascript">
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
setCookie("foo","<?php echo $bar; ?>",30);
window.location = "<?php echo $destination_page; ?>.php";
</script>
<?php
?>
函数setCookie(cname、cvalue、exdays){
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.toutString();
document.cookie=cname+“=”+cvalue+”;“+expires;
}
setCookie(“foo”,30);
window.location=“.php”;
尝试将头代码放在setcookie()之前;IIRC头必须先于任何函数调用。yi:这个问题在现代浏览器中不再存在。不起作用,但可能是因为/home/user/public_html/index.html中存在头('Location:),您必须重定向到(包括)一个没有重定向的页面。cookie应该使用重定向头。你有没有一个我可以尝试的链接,它有`header('Location:);`header('Location:example.com/index?c=d'))该位置上没有.html,它将重定向到一个索引目录或一个没有扩展名的文件名索引。我用设置cookies和重定向创建了我的页面,浏览器有cookies。重定向重定向是否重定向到其他域或子域?不知道是否与
<?php
$cookie_name = $_GET['a'];
$cookie_value = $_GET['b'];
setcookie($_GET['a'], $_GET['b'], time() + (86400 * 30), "/"); // 86400 = 1 day
include('/home/user/public_html/index.html');
exit;
?>
setcookie('test', 'test', time() + (86400 * 30), "/");
header("Location: http://www.intel.com");
?>
<script type="text/javascript">
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
setCookie("foo","<?php echo $bar; ?>",30);
window.location = "<?php echo $destination_page; ?>.php";
</script>
<?php