Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php集cookie重定向_Php_Redirect_Cookies - Fatal编程技术网

php集cookie重定向

php集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'

当我在地址栏上键入时,我需要一个域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').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');
关于域值,说明如下:

仍在实现不推荐版本的旧浏览器可能需要一个前导的
来匹配所有子域


你能详细解释一下吗?谢谢