【发布时间】:2020-07-19 18:13:58
【问题描述】:
当用户提交 HTML 表单以运行 PHP 代码以在执行 HTML 表单的操作和离开页面之前将表单数据保存为会话变量时,有没有办法?当我将表单操作设置为转到下一页 (session2.php) 时,它不会运行与提交按钮关联的 PHP。如果我删除表单操作,那么我需要 PHP 提交脚本中的 JavaScript 将用户带到下一页。
有没有办法运行 PHP,然后运行表单操作,还是最好保持原样?我确实将 session_start(); 作为两个文件的第 1 行。
session1.php
<?php
if (isset($_POST['submit'])) {
// Set Global Session Variables from Form's POST Values
$_SESSION["favcolor"] = $_POST['favcolor'];
$_SESSION["favanimal"] = $_POST['favanimal'];
// Go To Next Page
$URL="session2.php";
echo "<script type='text/javascript'>document.location.href='{$URL}';</script>";
echo '<META HTTP-EQUIV="refresh" content="0;URL=' . $URL . '">';
}
?>
<form action="" method="post">
Enter Color: <input type="text" name="favcolor" /><br />
Enter Animal: <input type="text" name="favanimal" /><br />
<input type="submit" value="submit" name="submit" />
</form>
session2.php
<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>
【问题讨论】:
-
在 php 中进行重定向,而不是使用 javascript。查找 PRG(发布、重定向、获取)模式。