[英]PHP Session doesn't work in Firefox
我在Chrome,IE和Safari上测试了我的应用程序,它可以正常工作。 自从两天前以来,它在Mozzila Firefox上运行良好,但是我不知道这可能是什么问题。
这是我的js的一部分(我使用他们的API从Amazon获取一些数据,然后当有人选择产品时,产品详细信息应存储在会话中):
function redirectStep() {
window.location.href = Path + "createwidget/step1";
}
$(document).ready(function() {
$("#search").click(function() {
var keyword = $("#keyword").val();
var page = 1;
getContent(keyword, page);
});
$('#target').on('click', '.click', function() {
var href_value = $(this).data("href");
var img_value = $(this).data("img");
var price_value = $(this).data("price");
var title_value = $(this).data("t");
$.post(Path + "createwidget/poststep1", {
prodlink : href_value,
prodimg : img_value,
prodprice : price_value,
prodtitle : title_value
});
redirectStep();
});
});
这是我的控制器类(createwidget)的一部分:
public function poststep1() {
Session::set('index', $_POST);
$_SESSION['index']['widfee'] = 10;
$a = explode("$", $_SESSION['index']['prodprice']);
$_SESSION['index']['pricy'] = $a[1];
$_SESSION['index']['totalcost'] = $_SESSION['index']['widfee'] + $_SESSION['index']['pricy'];
}
public function step1() {
if (isset($_SESSION['index']['prodtitle'])) {
$this -> view -> render('createwidget/step1');
} else {
$this -> index();
}
}
我不知道我的做法是否是一种好的做法,但它可以在其他浏览器中使用,并且也可以在Firefox上使用。 我提到过session_start()存在于我的文件中,并且只要它在其他浏览器上都有效,我真的看不出问题出在哪里。
更新:
这是设置函数:
public static function set($key, $value) {
$_SESSION[$key] = $value;
}
我至少看到一个问题,您在知道$.post
是否完成之前就进行了重定向; 因此您可能要在设置会话变量之前进入步骤1。
尝试将重定向功能设置为帖子的success
回调:
$.post(Path + "createwidget/poststep1", {
prodlink : href_value,
prodimg : img_value,
prodprice : price_value,
prodtitle : title_value
},
redirectStep);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.