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'];
    }
}?>