Session_start()在保存变量时抛出错误


session_start() throws an error while saving variables

我有以下表单:

<html>
<head>
</head>
<body>
<form method=post action="submit.php">
<!-- 

If the user goes to a different page or refreshes this page it and returns to this page within 2 hours the value that
was originally entered should populate in the respective textbox,radio groups which is not happening...
 -->
    <input type=text value="<?php echo $_SESSION['saveit'][0]; ?>" name="first" />
    <input type=radio value="A" name="acct" <?php echo ($_SESSION['saveit'][1] == A) ? "checked" : "" ?> /> A
    <input type=radio value="B" name="acct" <?php echo ($_SESSION['saveit'][1] == B) ? "checked" : "" ?> /> B
    <input type=radio value="A" name="birt" <?php echo ($_SESSION['saveit'][2] == A) ? "checked" : "" ?> /> A
    <input type=radio value="B" name="birt" <?php echo ($_SESSION['saveit'][2] == B) ? "checked" : "" ?> /> B
    <input type=submit value="submit" />
</form>
<?php
//echo to see what those values are
echo $_SESSION['saveit'][0];
echo "<BR>";
echo $_SESSION['saveit'][1];
echo "<BR>";
echo $_SESSION['saveit'][2];
echo "<BR>"
?>
</body>
</html>

下面的PHP页面:

<?php
session_start();
//Get the value from form
$first = trim(strip_tags(stripslashes($_POST['first'])));
$acct = trim(strip_tags(stripslashes($_POST['acct'])));
$birt = trim(strip_tags(stripslashes($_POST['birt'])));
$f = isset($first) ? $first : null;
$a = isset($acct) ? $acct : null;
$b = isset($birt) ? $birt : null;
$savearray = array($f,$a,$b);
$_SESSION['saveit'] = $savearray;
//save the value in each individual session (Not using it as I need to save multiple values in ONE session)
//$_SESSION['textbox1'] = isset($first) ? $first : null;
//$_SESSION['radiogroup1'] = isset($acct) ? $acct : null;
//$_SESSION['radiogroup2'] = isset($birt) ? $birt : null;
//set the cookie for each session with the value for 2 hours TTL
//CORRECT syntax to save the ONE session with multiple variable into cookie to be used for upto 2 hours MAX.
//setcookie("textbox1", $first, time()+(3600*2));
//echo test to see what the values are
echo $_SESSION['saveit'][0];
echo "<BR>";
echo $_SESSION['saveit'][1];
echo "<BR>";
echo $_SESSION['saveit'][2];
echo "<BR>";
echo "<a href='http://www.interfaithmedical.com/checksite/testFolder/form.php'>GO TO THE FORM PAGE</a>";
?>
  • 尝试使用setcookie()在会话中存储每个变量,只适用于2小时,我如何做到这一点?
  • 当我重新加载表单页面时,值不是使用会话自动输入的。我该如何解决这个问题?

在第一页上调用session_start()失败。它必须在所有使用会话变量的页面上调用,并且应该在其他页面之前调用。

实际上,您从未在页面上使用表单启动会话,因此您设置的任何值实际上都没有被设置。