2011-02-10 137 views
0

真的希望这是有道理的,有人可以指引我正确的方向。在注册页面(父页面),当你输入许可证代码从另一个页面jQuery的阿贾克斯成功函数加载内容与附加的URL包括会话ID:jQuery AJAX和PHP会话问题

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

页“下载软件”有以下PHP引用检查,以确保正在从注册页面通过会话ID请求的内容,并重定向你,如果它不是:

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

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

我不能得到它的工作。我将以下代码放置在“下载软件#req”内容上,其内容为: <a id="beta"> beta notes $(“#beta”)。click(function(){“req”)。load(“NT7 -SP1-Download.php #betaNotes“); });`

我也试过使用.live函数。我如何开始新的会议并完成这项工作? *answer** 我在父页面上使用了直播功能,它工作正常。我想这太难了。

+0

您可能希望使用Amazon S3进行此操作。您可以生成仅在成功授权时才有效的N分钟网址,并将其传递给用户。 – coreyward 2011-02-10 21:21:48

回答

2

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

使用:

<?php 

// initialize the session 
session_start(); 

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

?> 

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

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