我经历了20多个不同的帖子,我似乎无法将这个问题和答案拼凑在一起,以解决我想要完成的各个方面。
我有一个用户可以填写的表格。我希望在提交表单后,所做的选择将在整个网站的其余部分用作变量。
我的代码:
<form action="page1" method="POST">
<input type="text" name="var_1">
<input type="text" name="var_2">
<input type="submit" value="Submit" class="submit" name="submit">
</form>
<?php
session_start();
if (isset($_POST['submit'])) {
$_SESSION['var_1'] = $_POST['var_1'];
$_SESSION['var_2'] = $_POST['var_2'];
}
?>
下一页:
<?php
session_start();
$var_1 = $_SESSION['var_1'];
$var_2 = $_SESSION['var_2'];
?>
<?php echo $var_1';?>
<?php echo $var_2';?>
这导致空白回声和页面顶部每个变量的重复错误:
Notice: Undefined index: var_1 in page1.php on line #
显然我的会议没有成为第二页,但我不知道为什么或我做错了什么。这是关于添加多个会话,发布会话,获取会话的帖子拼凑而成的。
答案 0 :(得分:2)
从您的action
中删除<form>
,并在PHP代码中将重定向提供给page1
,因为下面的PHP代码无法运行并被重定向到下一页。结果其中的会话将不会被设置
<form action="" method="POST">
<input type="text" name="var_1">
<input type="text" name="var_2">
<input type="submit" value="Submit" class="submit" name="submit">
</form>
<?php
session_start();
if (isset($_POST['submit'])) {
$_SESSION['var_1'] = $_POST['var_1'];
$_SESSION['var_2'] = $_POST['var_2'];
//redirect
header("Location: page1.php");
}
?>
或者在下一页中设置session
而不使用下面的代码
<form action="page1" method="POST">
<input type="text" name="var_1">
<input type="text" name="var_2">
<input type="submit" value="Submit" class="submit" name="submit">
</form>
page1.php中
<?php
session_start();
$_SESSION['var_1'] = $_POST['var_1'];
$_SESSION['var_2'] = $_POST['var_2'];
$var_1 = $_SESSION['var_1'];
$var_2 = $_SESSION['var_2'];
?>
<?php echo $var_1;?>
<?php echo $var_2;?>