我是PHP的新手,我正在尝试做一些可能不好的事情并且可能是不可能的.我基本上只是在一起黑客攻击测试我的知识,看看PHP能做些什么.
我有一个网页,其中包含收集数据的表单.这是一个PHP脚本,它执行一堆处理 - 但实际上并没有显示任何重要的东西.我想要的是,一旦处理完成,脚本就会告诉浏览器打开另一个页面,显示结果.
我知道我可以使用标题('Location:page.php'); 但我无法弄清楚如何提供POST数据.我怎样才能做到这一点?或者,是否有另一种方法告诉浏览器打开另一个页面?
编辑:我从回复中得到的是,使用各种黑客可以做到这一点,但我最好将处理和显示代码放在一个文件中.我很高兴; 这个实验比什么都重要.
您可以将该数据存储在会话中,例如在处理帖子的第一个文件中
session_start(); $_SESSION['formdata'] = $_POST; //or whatever
然后你可以在下一页上阅读它
session_start(); print_r($_SESSION['formdata']);
或者你可以通过GET传递它:(但根据评论,这是一个坏主意)
header('Location: page.php?' . http_build_query($_POST));
如果这样做,请确保在page.php上执行其他处理/验证,因为恶意用户可能会更改变量.您也可能不需要将整个帖子传输到下一页
编辑
我应该明确指出,我认为第二种选择可能更糟糕,因为您可以通过get发送的数据大小受限,并且可能不太安全,因为用户可以更明显地操纵数据.
处理完成后是否真的需要调用另一个页面?我可能会做以下事情:
Display.php的:
if ($_POST) { require_once(process.php); process($_POST); display_results; }
with process.php包含处理post请求所需的代码.
或者,您可以使用类似cURL库的内容将处理结果传递给您自己指定的页面.不知道这是不是你真正想要的.