我正在尝试检查此页面上的表单,如果输入的所有内容都正确,我希望将$name
,$sport
,$beoefenaar
和$text
发送到页面{ {1}}。但是变量没有被发送到该页面。
http://localhost/051R4-verwerk.php
答案 0 :(得分:1)
问题是您没有包含第二个PHP文件。您正在重定向到第二个PHP文件。这意味着您正在指示浏览器使用新的HTTP请求加载新页面。 PHP无法在调用之间存储变量,因此当这个新请求进入时,所有先前的变量(和历史记录)都会丢失。每个页面与其他每个页面完全分开执行。
相反,完成您要完成的任务的最简单方法是使用会话。这允许您在脚本执行之间存储用户信息。 PHP将自动为您创建cookie并管理会话信息。您只需将数据导入会话,然后在第二个脚本中将其从会话中恢复。在您的第一个脚本中可能看起来像这样:
if($valid){
$_SESSION['name'] = $name;
$_SESSION['sport'] = $sport;
/// and more
header("location: http://localhost/051R4-verwerk.php");
}
然后在你的接收脚本中:
$name = isset( $_SESSION['name'] ) ? $_SESSION['name'] : '';
$sport = isset( $_SESSION['sport'] ) ? $_SESSION['sport'] : '';
仅当两个脚本由同一服务器托管且位于同一域时,此方法才有效。有很多关于使用会话的教程。实际上,您仍然需要在第二个脚本中再次验证数据,因为用户可以在会话中没有任何信息直接访问它。
您的第二个选项是包含第二个脚本而不是重定向到它,在这种情况下,您的变量实际上是可用的,但您还必须调整第一页的工作方式。也许是这样的:
if($valid){
include "051R4-verwerk.php";
exit;
}