2013-11-21 58 views
0

我正在开发一个客户可以填写他的维度,然后可以提交一个表格,然后将数据保存在SESSION变量中并显示在页面上的过程,因此客户可以观看他的配置。保存表格在SESSION中提交

我保存我在$ _SESSION ['wz_submit_saving_1']中提交并使用If语句来检查表单是否已提交,以便可以显示配置。

<?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; ?> 

我的问题是,如果我使用if(isset($ _ SESSION [“wz_submit_saving_1”]))用于显示配置,它显示以及提交后,但如果我刷新页面的配置已经一去不复返了。

如果我使用if(isset($ _ SESSION ['wz_saving_a']))(a维字段)并刷新页面,配置几乎就在那里。但我想使用保存的提交会话变量来检查表单是否已提交。有人能告诉我我做错了什么吗?

<?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; ?> 

形式:

<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> 
+1

哪里是你的'在session_start()'? – naththedeveloper

+0

对不起,在我的页面顶部。 – Robbert

回答

1

你刷新同一页面没有做一个帖子?

这可能是由于这里的代码:

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

因为你只是在做一个刷新GET,会话变量wz_submit_saving_1是由空wz_submit_saving_1 POST变量覆盖。

编辑:

<?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; ?> 
+0

是的,我刷新没有做POST。所以你说我不能用提交会话变量来检查它? – Robbert

+0

如果您正在刷新到同一页面,那么'wz_submit_saving_1'变量将始终以空值结束(因为您没有在刷新时提供任何POST变量,只有GET)。 – russellc

+0

好的,我明白了。那么你的建议是什么?使用其他变量进行检查? – Robbert

0
<?php // Save submit 
if(isset($_POST['wz_submit_saving_1'])){ 
    $_SESSION['wz_submit_saving_1'] = $_POST['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; ?> 
+0

这不起作用,得到了同样的问题.. – Robbert