首页 > 解决方案 > $_SESSION 变量设置后不可用

问题描述

单击一个按钮执行此 Ajax 请求

    $.ajax({
        type: "GET",
        url: "json-responses.php?fct=validationCode&userMail=" + userMail,
        success: sendValidationCode()       
    });

如果成功,则调用 sendValidationCode() 函数,该函数执行另一个 Ajax 请求

function sendValidationCode()
    {
        $.ajax({
            type: "GET",
            url: "json-responses.php?fct=sendValidationCode&userMail=" + userMail,
            success: function()
            {
                location.replace("reset-forgotten-pw?user=" + userMail);
            }
        });
    }

这是 json-responses.php 文件中的代码:

if ($_GET['fct'] == 'validationCode')
{
    $_SESSION['v_Code'] = random_str(6, '0123456789');

    $result = createValidationCode($connectionObject, $_GET['userMail'], do_crypt($_SESSION['v_Code']));
    echo $result;
}

if ($_GET['fct']  == 'sendValidationCode')
    {
        $volTo = $_GET['userMail'];
        $volAckString = $image . "<h1>Password assistance</h1><p>To verify your identity, please use the following code:</p>".$_SESSION['v_Code'].;

        unset($_SESSION['v_Code']);
    }

我假设在 $_SESSION['V_Code'] 变量将被设置并在第二个文件调用'sendValidationCode'文件时可用之前调用'validationCode'部分。但是,用户收到的邮件不包含任何验证码。现在,如果我重新启动进程(意味着会话在 'validationCode' 部分保持打开状态,我会得到一个新的 $_SESSION 变量,并且在 'sendValidationCode' 部分中,“旧” $_SESSION['v_Code'] 会发送给用户。(除了未设置....没有任何效果。)

标签: php

解决方案


推荐阅读