[英]New & Improved PHP Session Redirect Problem
我正在處理一個多頁表單。 這是它的function的輪廓:
第一部分:收集表單輸入字段 -> 發送用戶到 transfer.php 使用 POST 方法
第二部分:轉移。php | 驗證沒有什么是空的 -> 將 $_POST 變量存儲到 $_SESSION -> 將用戶重定向到表單的下一部分。
第三部分:表格的第二部分 | 維護第一個表單中的 session -> 將新變量添加到 session -> 准備所有內容以通過電子郵件發送
我一直在閱讀使用標頭(位置:)等如何刪除 session 信息。 人們似乎找到的解決方案是驗證頁面上的表單,然后使用表單的操作字段指導用戶。
我遇到的問題:表單重定向的位置基於表單的輸入。 實際上有 8 個潛在的 forms 用戶可以根據他們在第一個表單中輸入的內容被轉發到。
我已經嘗試過 SID 技術,並且 SESSION 變量顯示為已注冊,但它們都顯示 &NULL。
問題:如何讓 session 變量顯示在下一頁上?
這是我到目前為止的代碼:
第 1 部分:表格
<form method="POST" action="transfer.php">
... all my form elements with proper names
</form>
第 2 部分:轉移。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 。 我知道在重定向期間的某處,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 }
只需使用session_start();
在頁面頂部。
不需要session_id($_GET['phpSESSID']);
除非您更改為不同的 session。
編輯:
同樣在transfer.php
中,您只想將所有帖子保存到 session 中,只需執行以下操作:
session_start();
$_SESSION = $_POST;
另外:刪除這一行: session_write_close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.