PHP http包括不保存会话

时间:2010-05-05 17:45:19

标签: php include session

基本上我讨厌一个卫星网站,它包含来自完全不同服务器的form.php。

<?php
    include("http://blah.com/form.php");
?>

其他会话上的form.php加载类和各种其他东西,并根据大量的MySQL数据动态生成表单。不重要。我的问题是,当表单被调用时,我也开始一个会话。然而,客户端实际上并未访问过远程服务器。会议什么逗留。每次刷新页面时,都会转储旧会话。

这样做的全部原因是我需要将验证错误发送回原始表单并显示它们。 (这是一系列的事情,如“名字是必填字段”)

主服务器上的代码看起来像这样......

<?php
    include("config.php"); // This is loading the config file with the session_start()
    Process($id) {
        // Do a bunch of form processing and store errors in $this->errors
        $_SESSION['errors'] = $this->errors;
    }

    ShowForm($id) {
        // This loads the form and everything.
        echo '<div id="errors">'.print_r($_SESSION['errors']).'</div>'; // This is what is returning nothing on the other page.
    }
?>

所以基本上这个脚本是从远程站点调用的,但是会话不会保存并在刷新时被转储...我认为它是因为从不在用户浏览器中加载实际的主服务器。

有没有人知道解决这个问题的方法/解决这个问题的方法?或者可能是另一种解决方案一切正常。

由于

1 个答案:

答案 0 :(得分:0)

这确实是一种糟糕的设计。

include("http://blah.com/form.php?var=1&error=First%20name%20is%20a%20required%20field");

你必须考虑XMLRPC或其他一些文明的数据交换方式