我将会话数据存储在$ 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:我没有使用未设置。
请帮助,我缺少什么?
答案 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();
希望这个帮助