为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
胡子哥哥 2023-08-11 16:57:37
当用户提交 HTML 表单时,有没有办法在执行 HTML 表单的操作并离开页面之前运行将表单数据保存为会话变量所需的 PHP 代码?当我将表单操作设置为转到下一页 (session2.php) 时,它会在不运行与提交按钮关联的 PHP 的情况下执行此操作。如果我删除表单操作,那么我需要 PHP 提交脚本中的 JavaScript 将用户带到下一页。有没有办法先运行 PHP,然后运行表单操作,还是最好保持原样?我确实有session_start(); 作为两个文件中的第 1 行。会话1.php<?phpif (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 pageecho "Favorite color is " . $_SESSION["favcolor"] . ".<br>";echo "Favorite animal is " . $_SESSION["favanimal"] . ".";?>
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

有几种方法可以做到这一点:

  1. 使用 PHP 的header('Location: /page-url');

  2. $_POST如果设置则渲染不同的内容

<?php


if (isset($_POST['submit'])) {  


    // Set Global Session Variables from Form's POST Values

    $_SESSION["favcolor"] = $_POST['favcolor'];

    $_SESSION["favanimal"] = $_POST['favanimal'];

    

    // Render other page content

    include "session2.php";

    

    // end the script to prevent loading this page contents

    die;

}       

?>



<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 请求提交表单并根据响应进行重定向


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信