PHP Session在Firefox中不起作用

时间:2013-12-25 23:03:40

标签: php jquery session-variables

我在Chrome,IE和Safari上测试了我的应用,它可以正常工作。两天前,它在Mozzila Firefox上运行良好,但我无法确定可能出现的问题。

以下是我的js的一部分(我从亚马逊获取一些数据,使用他们的API,然后当有人选择产品时,产品详细信息应存储在会话中):

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()存在于我的文件中,只要它在其他浏览器上工作,我真的不知道这是什么问题。

更新:

这是set函数:

public static function set($key, $value) {
        $_SESSION[$key] = $value;
    }

1 个答案:

答案 0 :(得分:0)

我至少看到一个问题,你在知道$.post是否完成之前是否重定向;所以你可能会在设置会话变量之前进入第1步。

尝试将重定向功能设置为帖子的success回调:

$.post(Path + "createwidget/poststep1", {
            prodlink : href_value,
            prodimg : img_value,
            prodprice : price_value,
            prodtitle : title_value
        },
        redirectStep);