Php 如何在WordPress中更新和获取会话值?
我试图更新会话中的一个下拉框和两个文本框值,然后在下一页中获取这些会话值。为此,我在第一页中编写了以下代码Php 如何在WordPress中更新和获取会话值?,php,wordpress,session,Php,Wordpress,Session,我试图更新会话中的一个下拉框和两个文本框值,然后在下一页中获取这些会话值。为此,我在第一页中编写了以下代码 <form action="/thanks" method="POST"> <select name="select_amount" id="select_amount" onchange="submit();"> <option>-----</option> <option value="10">1st optio
<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'];
}?>
我还在我的主题函数文件中添加了以下代码,但它不起作用
if(!session_id()) {
session_start();
}
在将输出发送到浏览器后调用session_start,这将导致抛出错误。session_start应该是PHP文件中起始标记之后的第一件事
您正在尝试在表单所在的同一页上设置会话变量。PHP代码不是在浏览器中执行的,而是在服务器上执行的。因此,只有在提交表单后,$\u 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>
谢谢
<?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'];
}
}?>
问题是?要使用基于cookie的会话,必须在向浏览器输出任何内容之前调用session_start。
<?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'];
}
}?>