在 HTML 表单操作之前运行 PHP 提交代码以设置 SESSION 变量

当用户提交 HTML 表单时,有没有办法在执行 HTML 表单的操作并离开页面之前运行将表单数据保存为会话变量所需的 PHP 代码?当我将表单操作设置为转到下一页 (session2.php) 时,它会在不运行与提交按钮关联的 PHP 的情况下执行此操作。如果我删除表单操作,那么我需要 PHP 提交脚本中的 JavaScript 将用户带到下一页。


有没有办法先运行 PHP,然后运行表单操作,还是最好保持原样?我确实有session_start(); 作为两个文件中的第 1 行。


会话1.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>

会话2.php


<?php

// Echo session variables that were set on previous page

echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";

echo "Favorite animal is " . $_SESSION["favanimal"] . ".";

?>


胡子哥哥
浏览 91回答 1
1回答

守候你守候我

有几种方法可以做到这一点:使用 PHP 的header('Location: /page-url');$_POST如果设置则渲染不同的内容<?phpif (isset($_POST['submit'])) {&nbsp;&nbsp;&nbsp; &nbsp; // Set Global Session Variables from Form's POST Values&nbsp; &nbsp; $_SESSION["favcolor"] = $_POST['favcolor'];&nbsp; &nbsp; $_SESSION["favanimal"] = $_POST['favanimal'];&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; // Render other page content&nbsp; &nbsp; include "session2.php";&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; // end the script to prevent loading this page contents&nbsp; &nbsp; die;}&nbsp; &nbsp; &nbsp; &nbsp;?><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>通过 AJAX 请求提交表单并根据响应进行重定向
打开App,查看更多内容
随时随地看视频慕课网APP