如何将表单数据转到下一页

时间:2017-06-02 18:02:25

标签: php

我正在尝试检查此页面上的表单,如果输入的所有内容都正确,我希望将$name$sport$beoefenaar$text发送到页面{ {1}}。但是变量没有被发送到该页面。

http://localhost/051R4-verwerk.php

1 个答案:

答案 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;
}