【发布时间】:2011-06-13 18:03:02
【问题描述】:
我正在处理一个多页表单。以下是其功能的概述:
第一部分: 收集表单输入字段 -> 使用 POST 方法将用户发送到 transfer.php
第二部分: transfer.php |验证没有什么是空的 -> 将 $_POST 变量存储到 $_SESSION -> 将用户重定向到表单的下一部分。
第三部分:表格第二部分 |从第一个表单维护会话 -> 将新变量添加到会话中 -> 准备所有内容以通过电子邮件发送
我一直在阅读如何使用标头(位置:)等删除会话信息。人们似乎找到的解决方案是验证页面上的表单,然后使用表单的操作字段指导用户。
我遇到的问题: 表单重定向的位置基于表单的输入。根据用户在第一个表单中输入的内容,实际上有 8 种潜在表单可供用户转发。
我已经尝试过 SID 技术和 SESSION 变量显示为 注册了,但都显示 &NULL。
问题:如何让会话变量显示在下一页上?
这是我目前的代码:
第 1 部分:表格
<form method="POST" action="transfer.php">
... all my form elements with proper names
</form>
第 2 部分:transfer.php
<?php
session_start();
$_SESSION = $_POST;
// project_type would store an url for the corresponding 2nd part of the form
$redirect = $_SESSION['project_type'];
$redirect .= "?phpSESSID=".session_id();
header("Location: $redirect");
exit();
?>
第 3 部分:下一种形式
<?php
// initialize a session
session_start();
echo "<p>Session ID: " . session_id() . "</p>";
echo "<p>Vardump Set Off Page: ";
var_dump($_SESSION);
echo "</p>";
?>
<form method="...... the rest of the form etc
我知道该帖子正在正确地传输.php。 我知道 $_POST 的内容已正确复制到 $_SESSION 。 我知道在重定向期间的某个地方,会话变量被设置为 &NULL
这是用户被重定向到表单的第二部分后 var_dump 的样子。
array(18) { ["project_type"]=> &NULL ["project_timeframe"]=> &NULL ["company_name"]=> &NULL ["company_address"]=> &NULL ["company_city"]=> &NULL ["company_state"]=> &NULL ["company_zipcode"]=> &NULL ["company_phone"]=> &NULL ["company_website"]=> &NULL ["contact_name"]=> &NULL ["contact_title"]=> &NULL ["contact_email"]=> &NULL ["contact_phone"]=> &NULL ["contact_primary_phone_type"]=> &NULL ["contact_phone_alt"]=> &NULL ["contact_alternate_phone_type"]=> &NULL ["contact_preferences"]=> &NULL ["contact_preferences_additional"]=> &NULL }
【问题讨论】:
标签: php forms session post redirect