【问题标题】:Getting submitted form value for confirmation page获取确认页面的提交表单值
【发布时间】:2015-04-14 11:02:39
【问题描述】:

简单来说,我有 3 个 php 文件——form.php、save.php 和 confirm.php

form.php 是一个通用的表单,有

<form id="form" name="form" method="post" action= 'save.php' ><form>

save.php 用于通过插入命令更新 SQL

$sql = "INSERT INTO database (name, age, sex, id) VALUES ('$name', '$age', '$sex', '$id')";

我也在使用标题相同的页面在保存后重定向

header('Location: confirm.php');

现在我期待的是当人们提交表单时,数据将保存到 SQL 并重定向到 Confirm.php,他们可以在其中看到他们提交的数据。

它在保存后重定向,但我无法弄清楚在 confirm.php 上获取提交数据的方法,我尝试使用 $_SESSION 但页面变得空白。如果我可以将提交的表单的$id 传递给带有 $_SESSION 或其他东西的confirm.php,那我会很棒,所以我可以从confirm.php 调用$id 并获取数据。请建议如何做到这一点。

【问题讨论】:

  • SQL 注入警报!!!您可以将值存储在会话中并在 confirm.php 上获取它,也可以使用 header('Location: confirm.php?x=y');
  • 在 Confirm.php 页面上使用 Select Query 从数据库中获取数据。

标签: php


【解决方案1】:

通过 $id = mysqli_insert_id(); 获取插入的 ID 并通过 header('Location: confirm.php?id='.$id);

并通过此 id 获取详细信息。

在confirm.php $_REQUEST['id'];

【讨论】:

    【解决方案2】:

    在新表格中,您必须尽早执行此操作。这将获取会话值。

    if(!isset($_SESSION))
       session_start();
    

    要获取表单中的 $id,您必须将其作为参数传递或像这样将其保存在会话中

    $_SESSION['id']= $id;
    

    【讨论】:

    • 我之前尝试过,但我不知道为什么页面每次都变空白。更新 SQL、session_start() 和从同一页面调用 header() 之间是否有冲突?
    • 它适用于其他所有人。我还是觉得你做得太晚了。会话捕获必须在发出页眉之前完成。
    【解决方案3】:

    我会建议你在 POST 之后使用 AJAX 提交刷新容器并检索提交的数据。

    如果您不想使用 JavaScript,最好的方法是存储新提交的 ID,并在您的 confirm.php 操作中检索它时检索它。

    【讨论】:

    • 感谢您的建议。你的建议的第二部分很好。 Mohit maru 给出了一些很好的解决方案。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    相关资源
    最近更新 更多