簡體   English   中英

php保存會話(窗體)不起作用

[英]php save session (form) doesn't work

我正在制作一個帶有表單的網站,並希望在打開出現錯誤的新頁面后保存輸入的數據。 然后,在新頁面上,您會找到上一頁的鏈接,以便可以對其進行編輯。 問題是編輯...我想使用會話保存數據,但顯然不起作用。

我將部分地發布代碼,以免你們被炸毀。 如果您需要更多,請詢問;)

以HTML ocntact形式:

 <?php
session_start();
if (isset($_SESSION['your_form']) && !empty($_SESSION['your_form'])) {
    $form_data = $_SESSION['your_form'];
    unset($_SESSION['your_form']);
}
?>
<form id="contactForm" class="doorlopendetekst" name="htmlform" method="post" action="PHP/html_form_send.php">
    <table width="80%">
        <tr>
             <td valign="top" id="td">
              <label for="first_name">Voornaam</label>
             </td>
             <td valign="top">
              <input  type="text" id="roundedborder" name="first_name" placeholder="Voornaam" maxlength="50" size="30">
             </td>
        </tr>

在PHP文件中發送所有內容(完全在頂部,以避免出現“已發送錯誤”):

<?php
session_start();
//assign all posted values to a session
if (!empty($_POST)) {
    foreach($_POST as $key => $value) {
        $_SESSION['your_form'][$key] = $value;
    }
} 
?>
<html><body>
<?php 

我沒有任何錯誤。 它只是不保存數據。 誰能告訴我怎么了?

謝謝

您需要將value屬性分配給input field

例如:

 <input  type="text" value="<?php echo $form_data['first_name'];?>"
 id="roundedborder" name="first_name" placeholder="Voornaam" maxlength="50" size="30">

編輯1:(@Terry Harvey的建議)

 <input  type="text" value="
 <?php (isset($form_data['first_name'])) ? echo $form_data['first_name'] : echo "" ;?>
 "id="roundedborder" name="first_name" placeholder="Voornaam" maxlength="50" size="30">

看起來不錯,但您需要將以前的值放入表單的html部分:

<input .... value="<?php echo $form_data['name']; ?>" .../>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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