简单地在lang php和cookie之间切换

时间:2015-07-06 20:40:44

标签: php cookies switch-statement overlay

首先,我想检查一下用户正在使用哪种语言(我已经完成了)。
之后如果语言与网站不同,则覆盖一条应弹出问题的消息

  

你想改变你的语言吗?点击这里

链接应该重定向到另一个域。

如果用户选择重定向到另一个域,请假设DE,cookie应该保留该设置至少一个月,并始终将该用户重定向到DE域,即使他进入主域。

以下是我现在所拥有的:

<?php
$cookie_name = "user";
$cookie_value = "";
setcookie($cookie_name, $cookie_value, time() + (86400*36) , "/"); // 86400 = 1 day
?>


<?php


$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
    case "pl":
        //echo "PAGE FR";


        $domain = '<a href="linkFirstDomain">click here</a>';

        break;


    case "en":
          $domain = '<a href="linkSecondDomain">click here</a>';
        break;        
    default:
                 $domain = '<a href="linkFirstDomain">click here</a>';
        break;
}

HTML

    <div class='overlay'>You are using ENG lang atm do you want switch to ?
<?php echo $domain; ?> </div>

1 个答案:

答案 0 :(得分:0)

首先,您必须保存用户选择 我会在目的地和当前页面之间的页面上执行此操作。例如,指向您的另一个域的链接为http://example.com/changelang.php?target=domain1 在那里你用所需的语言保存cookie

if(isset($_GET['target']) AND $_GET['target'] == 'domain1')
{
 setcookie($cookie_name, "domain1", time() + (86400*36) , "/"); // 86400 = 1 day

并重定向到此页面

 header('Location: http://de.domain1.com/');
 exit;
}

其次,你必须检查是否存在现有的cookie

<?php
if(isset($_COOKIE[$cookie_name]))
{
  //do switch here
  switch($_COOKIE[$cookie_name])
  {
    case 'de':
     //redirect to other page
     header('Location: http://de.domain1.com/');
     exit;
     break; //this is useless
  }
}