移动浏览器不支持会话变量?

时间:2012-08-23 08:35:21

标签: php javascript mobile cookies jquery-mobile

我有一个浏览器版本的网络应用程序,我有一些存储在cookie中的值。现在我正在制作移动版本,似乎我的cookie无效。 是否可以在移动设备上使用Cookie?

我正在尝试执行此代码,我的php给了我一个空值:

$(document).ready(function() {
    var session_lang= '<?php if(isset($_SESSION['SESS_LANGUAGE']))
                            echo $_SESSION['SESS_LANGUAGE'];?>';
            if (session_lang!='')
            {
                check_and_change(session_lang);   
            }
    });

有没有其他方法可以将数据存储在内部存储器中,以便它可以作为cookie工作? 移动设备是否支持会话变量?我正在查看firebug,我可以看到我可以创建会话变量但是当我想要读它时它是null。 可能是什么问题以及如何解决这个问题?

编辑: 我会给你几乎整个代码,这样你就可以看到我在做什么......顺便说一句。此代码在PC浏览器上正常运行。

Javascript文件:

$(document).ready(function() {

    function languageChange()
    {
         var lang = $('#websites1 option:selected').val();

        return lang;
    }


    $('#websites1').change(function(e) {                    

        var lang = languageChange();

        var dataString = 'lang=' + lang;

        $.ajax({

            type: "POST",
            url: "pass_value.php",
            data: dataString,
            dataType: 'json',
            cache: false,
            success: function(response) {

                    check_and_change(response.message);
                 }
        });

        return false;

    });

} );

    function check_and_change(lang)
     {
            switch (lang)
                         { //do something
                          }
    }

然后我在上面提到的第一部分是在我正在寻找的实际php网站上,它正在打开:

最后一件事是pass_value.php:

<?php 
session_start();

$_SESSION['SESS_LANGUAGE'] = $_POST['lang'];

print json_encode(array('message' => $_SESSION['SESS_LANGUAGE']));
die();
?>

我真的不知道为什么这段代码无法在手机上运行。

3 个答案:

答案 0 :(得分:6)

移动浏览器上的

Cookie definitely work。你说“我正在寻找萤火虫”,这让我觉得你并不是真的在手机上看它。

您有started the sessionturned on error reporting吗?

答案 1 :(得分:0)

我有类似的情况并发现,在我的平板电脑调用我在.ajax( )调用的URL参数中指定的脚本之前,它实际上是再次调用index.php脚本。

与我的手机相同。由于我在index.php中初始化了会话变量,因此它们不断重新设置为初始值(看起来它们在页面之间没有正确存储)。

我从未弄清楚为什么index.php被重新调用,但我在初始化语句周围添加了if !isset( )个检查并清除了它。

答案 2 :(得分:-1)

在Android上,启用&#34; Data Saver&#34;有效地破坏了我的会议我有一个登录脚本,当登录成功时将重定向到上一页。工作直到我打开Data Saver。关闭它使它再次工作。 Google确实声明Data Saver可能会影响安全页面,我猜这些页面包含我的脚本,而不是在HTTPS网站上。