基本上我讨厌一个卫星网站,它包含来自完全不同服务器的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.
}
?>
所以基本上这个脚本是从远程站点调用的,但是会话不会保存并在刷新时被转储...我认为它是因为从不在用户浏览器中加载实际的主服务器。
有没有人知道解决这个问题的方法/解决这个问题的方法?或者可能是另一种解决方案一切正常。
由于
答案 0 :(得分:0)
这确实是一种糟糕的设计。
include("http://blah.com/form.php?var=1&error=First%20name%20is%20a%20required%20field");
你必须考虑XMLRPC或其他一些文明的数据交换方式