PHP 和会话中的变量

PHP and variable in session

我需要在 2 php 页之间传递一个变量。

第二个页面是在提交按钮后从表单中的操作调用的。

<body>
    <div>
        <form action="callSecondPage.php" method="POST">
            <div>
                <select name="taskOption">
                    <option>First</option>
                    <option>Second</option>
                    <option>Third</option>
                </select>
            </div>
            <?php
                $currentValue = (isset($_POST['taskOption'])) ? $_POST['taskOption'] : '';
                $_SESSION['taskOption'] = $currentValue;
            ?>
            <div>
                <button name="submit" class="btn">Submit</button>
            </div>
        </form>
    </div>
</body>

在第二页中,我只是尝试查找值并在控制台中打印它:

<?php   
  session_start();  
  $taskOption = $_SESSION['taskOption'];  
  echo '<script>';    
  echo 'console.log('. json_encode($taskOption, JSON_HEX_TAG) .')'; 
  echo '</script>';  ?>

我哪里错了?为什么第二页的值为空?

这没有意义,因为您从来没有将值存储在 session 中。您的其他代码:

$currentValue = (isset($_POST['taskOption'])) ? $_POST['taskOption'] : ''; 
$_SESSION['taskOption'] = $currentValue;` 

将始终在 Session 中设置一个空值,因为它试图查找的值直接发布到 callSecondPage.php,它永远不会通过此代码。

所以因为您将值直接发布到第二页,所以在 callSecondPage.php 中您可以简单地写

$taskOption= $_POST['taskOption'];
echo $taskOption;

立即从 POST 数据中获取。不需要 sessions.