jQuery AJAX和PHP会话问题

时间:2011-02-10 20:38:33

标签: php jquery ajax

真的希望这是有道理的,有人可以指出我正确的方向。在注册页面(父页面)上,当您输入许可证代码时,jQuery ajax成功函数会从另一个页面加载内容,并附加一个URL以包含会话ID:

success: function(data) {
    if (data=="RegisterError") {
        $("#error").show();
        $("#processing").hide();
    } else {
        $("#contain").load("download-software.php?sessionid=xXXX #req");
        }
    }

页面“download-software”具有以下PHP引荐来源检查,以确保通过会话ID从注册页面请求内容,如果不是,则重定向您:

<?php
$code = $_GET['sessionid'];
if(strcmp( $code , 'xXXX'  ) != 0) {
    header("Location: http://www.someotherpage.com");
}
?>

工作正常。现在我需要做的是在加载到父页面的“download-software #req”内容中,有一个链接,当点击时替换已经加载到父页面内的“download-software #req”内容来自另一个页面的内容并执行相同类型的会话ID检查。

我无法让它发挥作用。我将以下代码放在“download-software #req”内容中 <a id="beta"&gt;测试版 $(“#beta”)。click(function(){               $(“#req”)。load(“NT7-SP1-Download.php #betaNotes”);           });`

我也尝试过使用.live功能。如何开始新会话并使其工作? * 答案 ** 我在父页面上使用了live函数,它工作正常。我觉得这太难了。

1 个答案:

答案 0 :(得分:2)

我会避免使用GET查询字符串参数并使用包含的PHP会话函数。

使用:

<?php

// initialize the session 
session_start();

// assignment call
$_SESSION['key'] = 'value';

?>

您可以在后续页面请求中从同一服务器上的会话中检索数据。

完成会话后,请使用:session_destroy()