我正在尝试更新会话中的下拉框和两个文本框值,然后在下一页中获取这些会话值。为此,我在第一页中编写了以下代码
<form action="/thanks" method="POST">
<select name="select_amount" id="select_amount" onchange="submit();">
<option>-----</option>
<option value="10">1st option</option>
<option value="15">2nd option</option>
<option value="20">3rd option</option>
<option value="25">4th option</option>
</select>
<input type="text" name="programname" /><br>
<input type="text" name="email" /><br>
<input type="submit" name="submit" class="button_add">
</form>
<?php
session_start();
if(isset($_POST['submit'])) {
$_SESSION['pro']=$_POST['programname'];
$_SESSION['e']=$_POST['email'];
$_SESSION['amount']=$_POST['select_amount'];
}?>
并在thanks.php
文件中我试图通过以下代码获取会话值
<?php
session_start();
if (isset($_SESSION['amount'])) {
echo $_SESSION['amount'];
}?>
我还在我的主题function
文件中添加了以下代码,但它无效。
if(!session_id()) {
session_start();
}
答案 0 :(得分:1)
session_start()
,这会导致抛出错误。 session_start()
应该是PHP文件中的第一件事(在起始标记之后)。
您正尝试在表单所在的同一页面上设置session
个变量。 PHP代码不在浏览器中执行,但在服务器上,$_POST
变量只有在您提交表单后才可用。
您可能要做的是以下内容:
<?php
session_start(); // start session before output
?>
<form action="/thanks" method="POST">
<select name="select_amount" id="select_amount" onchange="submit();">
<option>-----</option>
<option value="10">1st option</option>
<option value="15">2nd option</option>
<option value="20">3rd option</option>
<option value="25">4th option</option>
</select>
<input type="text" name="programname" /><br>
<input type="text" name="email" /><br>
<input type="submit" name="submit" class="button_add">
</form>
thanks.php
<?php
session_start();
// form is posted to this page
if(isset($_POST['submit'])) {
// form is posted to this page
$_SESSION['amount'] = $_POST['select_amount'];
$_SESSION['programname'] = $_POST['programname'];
$_SESSION['email'] = $_POST['email'];
echo $_SESSION['amount'];
}
}?>