【问题标题】:Can I update session via Ajax and after PHP read this session?我可以通过 Ajax 更新会话并在 PHP 读取此会话之后吗?
【发布时间】:2014-10-09 02:50:57
【问题描述】:

在我的“estabelecimento.php”中,我通过 Ajax 将数据发送到“carrinho.php”,并将其存储在会话中。 刷新浏览器时,我需要访问在“carrinho.php”上创建的会话。

estabelecimento.php

<?php

    session_start();

    if(isset($_SESSION['prato'])){
        echo'have session';
    } else {
        echo'session not found';
    }
?>
<script>
$.ajax({
        url: "carrinho.php",
        type: 'post',
        data: {
            idPrato     : idPrato,
            quantidade  : quantidade,
            detalhes    : detalhes,
            acao        : acao
        }
    });
</script>

carrinho.php

<?php

    session_start();

    // add items to session
    if ($_REQUEST['acao'] == 'cadastrar'){
        if (empty($_SESSION['prato'])){
            $_SESSION['prato'][] = $_REQUEST['idPrato'];
        } else {
            if(!in_array($_REQUEST['idPrato'],$_SESSION['prato'])){
                $_SESSION['prato'][] .= $_REQUEST['idPrato'];
            }
        }
    }

    // remove item from session
    if ($_REQUEST['acao'] == 'remover'){
        $removePrato = array_search($_REQUEST['idPrato'], $_SESSION['prato']);
        unset($_SESSION['prato'][$removePrato]);
    }
?>

【问题讨论】:

  • $_SESSION 特定于用户会话,而不是特定 php 脚本的特定实例。 $_SESSION 的存在只是为了允许在用户会话中的页面之间共享数据。

标签: php jquery ajax session refresh


【解决方案1】:

estabelecimento.php 的开头&lt;?php 标记之后添加session_start();

【讨论】:

    【解决方案2】:

    要在 estabelecimento.php 页面上获取会话数据,您应该启动会话

    <?php
        session_start();
        if(isset($_SESSION['prato'])){
            echo'have session';
        } else {
            echo'session not found';
        }
    ?>
    

    session_start — 开始新会话或恢复现有会话

    【讨论】:

    • 在完整的代码中,我已经开始了会话,但在“carrinho.php”文件中有一个会话,在“estabelecimento.php”文件中有一个会话,名称相同。 “estabelecimento.php”中的输出:数组([0] =>)“carrinho.php”中的输出:数组([0] => 43 [1] => 63 [2] => 67)
    猜你喜欢
    • 2021-10-20
    • 2018-10-30
    • 2013-01-20
    • 2010-10-11
    • 2012-06-06
    • 2012-01-31
    • 2013-03-30
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多