返回到php中的上一页后,会话数据未销毁

时间:2018-07-02 07:41:05

标签: php

我正在尝试使用会话将表单数据发送到php中的另一页。但是,当使用“返回”返回上一页以重新发送新的会话数据时,它将先前的会话数据保存在第二页的输入字段中。我打算每次发送新的会话数据,删除以前的会话数据。

session_destroy();
$_SESSION['showvals'] = array();

这些都不起作用。

这是我尝试过的。

第1页-sess1.php

<?php 
if (isset($_SESSION['showvals'])) {
 //session_destroy();
 $_SESSION['showvals'] = array();
}
session_start();
if(isset($_POST['Submit'])) {
    $_SESSION['showvals'] = $_POST['sesval'];
}   
 ?>

<strong>Test Form</strong>
<form action="sess2.php" method="post">
<input type="text" name="sesval"/>
<input type="submit" name="Submit" value="Submit" />
</form>

第2页-sess2.php

<?php session_start(); ?>
<strong>Show Form</strong>
<input type="text" name="showval" value="<?php echo $_SESSION['showvals']?>">
<input type="button" name="prevbutton" value="GO BACK" onclick="goback()">
<script type="text/javascript">
        function goback(){
        window.location="sess1.php";
    }
</script>

1 个答案:

答案 0 :(得分:0)

如果要检查和销毁会话,则需要先启动会话

if (isset($_SESSION['showvals'])) {
 //session_destroy();
 $_SESSION['showvals'] = array();
}
session_start();

在这里您要在检查后开始会话,因此它永远不会因为未设置而破坏它

//start the session
session_start();
//check
if (isset($_SESSION['showvals'])) {
 //destroy the session
session_destroy();
}