两次单击以获取语言

时间:2018-09-23 16:05:30

标签: php

当我单击“阿拉伯语”按钮时,页面文本语言不起作用,但是如果我重新加载同一页面,它将起作用并更改为阿拉伯语。
我的conflang.php

<?php
$allowed_lang = array('en', 'ar');
if(isset($_GET['lang']) === true && in_array($_GET['lang'], $allowed_lang) === true){
 setcookie('lang', $_GET['lang'], time() + 31556926, "/", null, null, true);
}else if(isset($_COOKIE['lang']) === false){
   setcookie('lang', 'en', time() + 31556926, "/", null, null, true);  
}

if(isset($_COOKIE['lang'])){
include 'lang/' . $_COOKIE['lang'] . '.php';
}else{
    include 'lang/en.php';
}
?>

和我的index.php

<?php  if (isset($_COOKIE['lang']) && $_COOKIE['lang'] === 'en') : ?>
<a href="?lang=ar">Arabic</a>
<?php endif ?>

<?php  if (isset($_COOKIE['lang']) && $_COOKIE['lang'] === 'ar') : ?>
<a href="?lang=en">English</a>
<?php endif ?>

<?php  if (!isset($_COOKIE['lang'])) : ?>
<a href="?lang=en">English</a>
<?php endif ?>

1 个答案:

答案 0 :(得分:0)

来自setcookie的文档

  

设置Cookie后,可以使用$ _COOKIE数组在下一页加载上访问它们。