php集cookie重定向
当我在地址栏上键入时,我需要一个域example.com重定向到子域a.example.comphp集cookie重定向,php,redirect,cookies,Php,Redirect,Cookies,当我在地址栏上键入时,我需要一个域example.com重定向到子域a.example.com <script type="text/javascript"> $(function(){ var city = readCookie('city'); if(city==null && city==''){ window.location.href = 'http://' + city + '.example.com'; } $('#citygo'
<script type="text/javascript">
$(function(){
var city = readCookie('city');
if(city==null && city==''){
window.location.href = 'http://' + city + '.example.com';
}
$('#citygo').change(function(){
var city = $(this).val();
createCookie('city', city, 28);
window.location.href = 'http://' + city + '.example.com';
});
});
</script>
<body>
<select id="citygo">
<option value="0">Select City</option>
<option value="amsterdam">Amsterdam</option>
<option value="newyork">New York</option>
<option value="london">London</option>
<option value="cardiff">Cardiff</option>
</select>
</body>
$(函数(){
var city=readCookie(“城市”);
如果(城市==null&&city==''){
window.location.href='http://'+city+'.example.com';
}
$('#citygo')。更改(函数(){
var city=$(this.val();
createCookie(“城市”,城市,28);
window.location.href='http://'+city+'.example.com';
});
});
选择城市
阿姆斯特丹
纽约
伦敦
加的夫
服务器端的cookie未保存,因此域无法记住子域。我做错了什么?任何帮助都将不胜感激
<?php
$hour = time() + 50400;
setcookie(My_Site_Location, $_POST['citygo'], $hour);
$Loc=$_COOKIE["city"];
if(isset($_POST['city']))
$Loc=$_POST['city'];
if (empty($Loc)) {
header("Location: http://{$_COOKIE["city"]}.example.com");
} else {
header("Location: example.com/$Loc.php");
}
?>
我也遇到过同样的问题,但我用下面的PHP代码解决了我的问题 您没有在cookie上设置路径和过期时间。如果您有子目录,通常最好设置一个主cookie,即根路径“/” 要使用PHP读取cookie,请尝试以下操作
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
…并在数组中搜索您的“城市”cookie。
关于完全使用PHP设置和读取Cookie的更多文档,请查看
在将任何其他代码回显到页面之前,必须调用此函数。(标题前)
这将帮助您默认情况下setcookie()
将使用当前主机作为域;要覆盖此选项,必须显式指定它:
setcookie(My_Site_Location, $_POST['citygo'], $hour, '/', 'example.com');
关于域值,说明如下:
仍在实现不推荐版本的旧浏览器可能需要一个前导的
来匹配所有子域
你能详细解释一下吗?谢谢