表单提交后,PHP会话数据清除

时间:2013-09-12 12:04:33

标签: php

我将会话数据存储在$ relnum变量中,如下所示:

if (!isset($_SESSION)) {
    session_start();
    $_SESSION['releasen'] =$_POST['release_no'];
    $relnum=  $_SESSION['releasen']; 
}

并在表单文本字段中显示,如下所示;

<input name="relnu" id="relnu" type="text" value="<?php if ($rel==''){ echo $relnum;} else echo $rel; ?>" readonly="true"/>

我在mysql中提交上面的表格数据,如下所示;

if (isset($_POST['submitM']))  {
    $faultd=$_POST['faultdistribution'];
    $faultdes=$_POST['faultdescription'];
    $faultsev=$_POST['faultseverity'];
    $faultt=$_POST['faulttype'];
    $faultn=$_POST['faultcmnt'];
    $rel=$_POST['relnu'];
    $query = mysql_query("INSERT INTO `fault` (`fault-cmnt`,`fault-type`, `release_no`, `fault-discription`, `fault-severity`, `fault-distribution`) VALUES ('$faultn','$faultt', '$rel', '$faultd', '$faultsev', '$faultdes')")
        or die(mysql_error());
    echo "Data Added sucessfully";
}

数据已成功提交,但在此之后$ relnum变量不显示任何内容。我无法理解是什么原因,因为我正在将数据存储在会话中。

P.S:我没有使用未设置。

请帮助,我缺少什么?

5 个答案:

答案 0 :(得分:2)

您无需在表单中发布会话数据,否则您的代码似乎没问题。你可以通过以下面的形式发布它来轻松实现:

if (isset($_POST['submitM']))  {
    session_start();
    $faultd=$_POST['faultdistribution'];
    $faultdes=$_POST['faultdescription'];
    $faultsev=$_POST['faultseverity'];
    $faultt=$_POST['faulttype'];
    $faultn=$_POST['faultcmnt'];
    $rel=$_SESSION['releasen'];
    $query = mysql_query("INSERT INTO `fault` (`fault-cmnt`,`fault-type`, `release_no`, `fault-discription`, `fault-severity`, `fault-distribution`) VALUES ('$faultn','$faultt', '$rel', '$faultd', '$faultsev', '$faultdes')")
        or die(mysql_error());
    echo "Data Added sucessfully";
}

它会正常工作,请测试一下。

谢谢

答案 1 :(得分:1)

记住session_start()仅将变量临时存储在服务器端,检查每个页面上是否有session_start(),只检查该页面上的会话变量,如果它没有回显任何内容则检查您之前从哪里开始会话变量,它可以帮助您自己解决问题。

答案 2 :(得分:1)

您可以尝试以下代码:

if (isset($_POST['release_no']) && !empty($_POST['release_no'])) {
    session_start();
    $_SESSION['releasen'] =$_POST['release_no'];
    $relnum=  $_SESSION['releasen']; 
}

答案 3 :(得分:1)

会话变量为$_SESSION['releasen']。这是每次在代码顶部session_start();时可用的内容。如果你想使用$ relnum,你必须在每次页面加载时将$ relnum设置为$_SESSION['releasen']

答案 4 :(得分:0)

使用

session_unset();
session_destroy();

希望这个帮助