cookie未正确保存/读取

时间:2013-11-09 16:55:47

标签: php cookies

我创建了一个PHP网站,它有三种不同的语言版本。这些语言可以通过$ _GET或$ _COOKIE设置,其中$ _GET是第一个被检查的语句,因此如果需要它可以覆盖cookie。如果我确定了我需要的语言,我会包含一个文件,其中包含我的所有翻译并设置cookie以供将来使用。代码看起来像这样:

<?php
if (isset($_GET['language'])) {

    // if language in $_SET is English, load english translation and set a cookie for the future.
    if ($_GET['language'] == 'EN') { 
        setcookie('language','EN', time()+31536000);
        include 'tekstenEngels.php';

    // if language in $_SET is French, load french translation and set a cookie for the future.
    } elseif ($_GET['language'] == 'FR') { 
        setcookie('language','FR', time()+31536000);
        include 'tekstenFrans.php';

    // lastly if language in $_SET is Dutch, load Dutch translation and set a cookie for the future
    } else { 
        setcookie('language','NL', time()+31536000);
        include 'tekstenNederlands.php';
    }

// the same but for cookies in case this isn't the first visit
} elseif (isset($_COOKIE['language'])) { 
    if ($_COOKIE['language'] == 'EN') {
        include 'tekstenEngels.php';
    } elseif ($_COOKIE['language'] == 'FR') {
        include 'tekstenFrans.php';
    } else {
        include 'tekstenNederlands.php';
    }
}
?>

这在我的locahost上工作正常,但在我的网络服务器上使用时似乎没有正确地写/读cookie。我有什么想法可能会丢失/做错了吗?

3 个答案:

答案 0 :(得分:0)

确保您的php.ini文件允许使用Cookie。 如果没有,你可能想探索session_set_cookie_params

答案 1 :(得分:0)

如果代码相同,但结果不同,则指向Web服务器的配置。创建以下文件,名为phpinfo.php

<?php
phpinfo();
?>

在本地主机和网络服务器上浏览,比较任何与cookie /会话相关的配置选项的结果。

答案 2 :(得分:0)

我作为嘉宾发布了这个问题。在清除我所有的cookie以加快查找我网站的cookie时,我已经“退出”了这个网站,所以我不能再更新我的问题了。

我有2个不同的页面使用几乎相同的PHP代码来检查语言:“主页”页面(index.php)和“更多信息”页面(info.php)。唯一的区别是重定向:在index.php页面上设置语言时,它将用户指向index.php页面,而info.php页面则指向用户返回info.php页面。

对于一些,仍然未知的原因,当更改index.php页面上的语言使得cookie保存正确,而在info.php页面上做同样的事情不起作用,我不得不刷新那里的页面工作,我真的不明白,因为它使用完全相同的代码。

然而,当更改info.php页面中的语言代码以重定向到index.php而不是info.php页面时,它突然全部起作用。

哇。我真的没有看到任何逻辑。

这个问题已得到解决,但我不知道如何...我猜它与服务器配置有关但我没有任何访问权限,所以我不能在那里做任何更改

这个问题可能会被关闭。