如何使用 PHP 会话将数据从一个文件的表单传输到另一个文件?

How to carry data from a form on one file to another using PHP sessions?

我正在尝试制作一个用作搜索引擎和 returns 结果的表单。但是,来自用户条目的数据要么无法保存到会话中,要么无法将会话传递到另一个文件。这是 "home" 搜索页面和 "Search-Engine" 结果页面的代码。

Home.php

    <html lang="en-US">
    <html>
    <head>
    </head>
    <body>
    <form action="Search-Engine.php" method="GET">
    <input type="text" id="query" placeholder="I'm looking for..." onkeydown = "if (event.keyCode == 13) document.getElementById('searchbtn').click()">
    <input type="submit" id="searchbtn" value="Search">
    </form>
    <?php session_register(); session_start(); ?>
    <?php $_GET['query'] = $_SESSION['Query']; ?>
    </body>
    </html>

搜索-Engine.php

<html lang="en-US">
<html>
<head>
</head>
<body>
<div class="results">
<?php session_start(); ?>
We could not find: <?php echo $_SESSION['Query']; ?>
</div>
</body>
</html>

我不知道在您的表单中使用 Sessions 的确切目的。但是您通过在页面中间启动会话并在表单中使用会话来以错误的方式进行操作。您可以在提交表单后在另一个页面的 Sessions 中添加值。

您可以通过以下方式更新您的文件:

Home.php

<html lang="en-US">
<html>
<head>
</head>
<body>
<form action="Search-Engine.php" method="GET">
<input type="text" name="query" id="query" placeholder="I'm looking for..." onkeydown = "if (event.keyCode == 13) document.getElementById('searchbtn').click()">
<input type="submit" id="searchbtn" value="Search">
</form>
</body>
</html>

搜索-Engine.php

<?php session_start(); 
$_SESSION['Query'] = $_GET['query']; ?>
<html lang="en-US">
<html>
<head>
</head>
<body>
<div class="results">
We could not find: <?php echo $_SESSION['Query']; ?>
</div>
</body>
</html>