dongtong7990 2013-11-21 10:32
浏览 51
已采纳

在SESSION中保存表单提交

I am working on a proces where a customer can fill in his dimensions and then can submit a form which data then will be saved in SESSION variables and will be displayed on the page, so the customer can watch his configuration.

I save my submit in $_SESSION['wz_submit_saving_1'] and use an If statement to check if the form is submitted so the config can be displayed.

<?php // Save submit
$wz_submit_saving_1 = $_POST['wz_submit_saving_1'];
$_SESSION['wz_submit_saving_1'] = $wz_submit_saving_1;

if(isset($_SESSION['wz_submit_saving_1'])) :

    // Save wz_saving_a in session
    $wz_saving_a = $_POST['wz_saving_a'];
    $_SESSION['wz_saving_a'] = $wz_saving_a;

    // Save wz_saving_b in session
    $wz_saving_b = $_POST['wz_saving_b'];
    $_SESSION['wz_saving_b'] = $wz_saving_b;

endif; ?>

My problem is that if I use if(isset($_SESSION['wz_submit_saving_1'])) for showing the config, it displays well after submit, but if I refresh the page the config is gone.

If I use if(isset($_SESSION['wz_saving_a'])) (the a dimension field) and refresh the page, the config is almost there. But I want to use the saved submit session variable for checking if the form is submitted. Can someone tell me what I am doing wrong?

<?php if(isset($_SESSION['wz_submit_saving_1'])) : ?>

<div id="wz_config_1" class="wz_config">

   <ul>
      <li>Dimensions</li>
      <li>A: <?php if(isset($_SESSION['wz_saving_a'])) : echo $_SESSION['wz_saving_a']; endif; ?></li>
      <li>B: <?php if(isset($_SESSION['wz_saving_b'])) : echo $_SESSION['wz_saving_b']; endif; ?></li>
   </ul>

</div><!--End wz_config_1-->

<?php endif; ?>   

The form:

<form method="POST">

   <label>A</label>
   <input name="wz_saving_a" type="text" />  

   <label>B</label>
   <input name="wz_saving_b" type="text" />

   <input name="wz_submit_saving_1" type="submit" class="add_button" value="Add"  />

</form>   
  • 写回答

2条回答 默认 最新

  • douying9296 2013-11-21 10:37
    关注

    Are you refreshing the same page without doing a POST?

    It may be due to the code here:

    $wz_submit_saving_1 = $_POST['wz_submit_saving_1'];
    $_SESSION['wz_submit_saving_1'] = $wz_submit_saving_1;
    

    Because you're just doing a GET on refresh, the session variable wz_submit_saving_1 is being overwritten by an empty wz_submit_saving_1 POST variable.

    EDIT:

    <?php // Save submit
    if(isset($_POST['wz_submit_saving_1'])) :
        $_SESSION['wz_submit_saving_1'] = $_POST['wz_submit_saving_1'];
    
        // Save wz_saving_a in session
        $wz_saving_a = $_POST['wz_saving_a'];
        $_SESSION['wz_saving_a'] = $wz_saving_a;
    
        // Save wz_saving_b in session
        $wz_saving_b = $_POST['wz_saving_b'];
        $_SESSION['wz_saving_b'] = $wz_saving_b;
    
    endif; ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路