2013-04-12 53 views
2

我被困在这个问题上的最后两天, 我在我的主“login.php”文件中有以下代码 这是在所有浏览器中运行没有任何问题,但没有在“Safari”中。Safari浏览器不处理cookie - PHP

if(isset($_SESSION["del_log"]) && !empty($_SESSION["del_log"]) && isset($_SESSION["user_type"]) && !empty($deal_type)){ 

      $expire=time()+60*60*24*365; 
      setcookie("del_log",$_SESSION["del_log"], $expire, '/'); 
      setcookie("user_type", $_SESSION["user_type"], $expire, '/'); 

    echo "<script>window.location.href=\"http://www.sample.com/foldername/index.php\"</script>"; 
     } 

我在 “... /文件夹名/ index.php” 包含文件检查这些cookie为:本次发行前

if (isset($_COOKIE["del_log"]) && !empty($_COOKIE["del_log"])){ 
    $log=$_COOKIE["del_log"]; 
    $user_type=$_COOKIE["user_type"]; 
}else{ 
    echo "<script>window.location.href=\"http://www.sample.com/\"</script>"; 
} 
+0

它设置cookie的,不读或不设置呢? – Voitcus

+0

它不设置cookie ... –

回答

1

遭遇。会话的cookie路径(http://php.net/manual/en/function.session-set-cookie-params.php)必须有一个结尾斜杠才能工作。特定于Safari。

见我的另一个问题的回答是:https://stackoverflow.com/a/15131791/188331

+1

我自己在这个问题上花费了相当多的时间。这个答案是正确的,但我想添加的问题不仅仅是Safari专用的; iOS上的Chrome浏览器的行为方式相同。 – rick6

+0

iOS上的Chrome基本上是Safari。没有什么不同。只是一个不同的皮肤。 –

+0

@CalebPrenger你如何得出这个结论?非常错误。 – Raptor