![](/img/trans.png)
[英]Store multiple $_SESSION variable in php and echo them in another page
[英]PHP: store input variable in session and then echo it on a page is not working
好的,我將嘗試解釋這一點:
我有一個 php 頁面“index.php”,其中有一個表單發布到一個 form.php?form=1 處理數據,然后在瞬間重定向到一個名為“paso2.php”的“謝謝”頁面
我想要做的是將 email 變量存儲在 session 上,然后在 paso2.php 上回顯它
所以我在表格的最頂部做了這個。php:
<?php error_reporting(-1);
ini_set('display_errors', 1);
session_start();
// Validation here...
$_SESSION['email_address'] = $_POST['email'];
“電子郵件”是索引上 email 輸入的名稱。php
然后在 paso2.php 我在最上面做了這個:
<?php
error_reporting(-1);
ini_set('display_errors', 1);
session_start();?>
然后在 paso2.php 上的輸入中我回顯該值
<input type="text" name="email2" value="<?php echo htmlspecialchars($_SESSION['email_address']);?>" />
但它不起作用:我可以在該值中讀取的錯誤是:
值內
<br /> <b>Notice</b>: Undefined index: email_address in <b>/home/gulp1986/public_html/cupon0km.com/paso2.php</b> on line <b>59</b><br />
誰能告訴我發布這個值我做錯了什么?
首先,嘗試添加:
session_start();
echo session_id();
在你的“form.php”文件中。 假設您的 session 已啟動,您應該會看到相應的 session id。
此外,如果可能,將您的錯誤報告修改為: error_reporting(E_ALL);
幫助查看是否存在與創建 session 相關的錯誤。
如果您在 form.php 中創建一個隱藏字段。
<input type='hidden' name='email' value='223218' />
然后將此表格發布到 paso2.php。
<form id='form_223218' class='appnitro' method='post' action='paso2.php'>
session 變量不應為空。
Marc B 評論的后續行動。 您需要在每個session_start
之前使用 do this
<?php
$cookie_params = session_get_cookie_params();
session_set_cookie_params(
$cookie_params["lifetime"],
$cookie_params["path"],
'.cupon0km.com',
$cookie_params["secure"],
$cookie_params["httponly"]
);
session_start();
您還可以將上面的代碼放入一個文件中,並將其包含在需要 session 的每個頁面的頂部。
一些調試:
在表格.php 中:
注釋掉header('Location: ...')
重定向
在 form.php 和 paso2.php 的底部添加:
echo 'session name' . session_name() . '<br>';
echo 'session id' . session_id() . '<br>';
echo 'cookies <br>'; print_r($_COOKIES);
echo 'session <br>'; print_r($_SESSION);
嘗試將session_start()
放在其他所有內容之前。 session_start()
可能有點古怪。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.