簡體   English   中英

新的和改進的 PHP Session 重定向問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM