【发布时间】:2012-08-23 08:35:21
【问题描述】:
我有一个浏览器版本的网络应用程序,并且我有一些值存储在 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? 移动设备是否支持会话变量?我在看萤火虫,我可以看到我可以创建会话变量,但是当我想读取它时它是空的。 可能是什么问题以及如何解决?
编辑: 我会给你几乎整个代码,这样你就可以看到我在做什么......顺便说一句。此代码在 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();
?>
我真的不知道为什么这个代码在手机上不起作用。
【问题讨论】:
-
所以不是保存到会话变量中,而是保存到网络存储中?
-
会话 ID 可以通过 cookie 或 GET 方法传递,据我所知 - 移动设备上的浏览器确实支持 cookie。你确定你的代码真的有效吗?你甚至开始了会议吗?
-
坏主意,因为很多移动设备都没有这种能力。
标签: php javascript mobile cookies jquery-mobile