【问题标题】:displaying form information php显示表单信息php
【发布时间】:2014-04-18 12:27:16
【问题描述】:

我想在我的注册表单上显示用户提交的信息,所以我正在使用

echo $_POST["name_of_field"],但由于某种原因信息没有显示出来。

我有 registerNewStudent2.php、registerNewStudent3.php、registerNewStudent4.php。

我想在 registerNewStudent4.php 中显示 registerNewStudent2.php 表单。

但是根据我在 $_POST 中读取的值,仅保留下一个请求。那么我该怎么做呢? 这是我的代码:

registerNewStudent2.php

<form name="myForm" action="registerNewStudent3.php" onsubmit="return validate()" method="POST">
    <tr>
      <td>Nome</td>
      <td><input type="text" style="width:270px; color:gray" STYLE="color:gray" name="name"></td>
    </tr>

    <tr>
      <td>BI</td>
      <td><input type="text" style="width:270px; color:gray" name="BI";></td>
    </tr>

    <tr>
      <td>Curso</td>
      <td><input type="text" style="width:270px; color:gray" name="course"></td>
    </tr>
<input type="submit" value="Next">
</form>

registerNewStudent4.php

<?php
echo $_POST["name"];
echo $_POST["BI"];
echo $_POST["course"];
?>

【问题讨论】:

标签: php forms


【解决方案1】:

将您的数据保存在 registerNewStudent2.php 中的会话中,如下所示:

$_SESSION['name'] = $_POST['name'];

然后你可以像这样在 registerNewStudent4.php 中访问这些数据

echo $_SESSION['name'];

编辑:在您要使用会话的每个页面中,您必须先在页面顶部写上session_start()

【讨论】:

    【解决方案2】:

    我发现最简单的方法是使用 PHP 在 HTML 中添加一个隐藏字段,如下所示:

    <input type="hidden" name="name" value="<?php echo $_POST["name"]; ?>">
    

    这样,当表单提交时,隐藏变量也会被发布。

    编辑:

    或者,您可以将它们存储为$_SESSION 变量,在用户离开您的网站之前可以访问这些变量。示例:$_SESSION["name"]=$_POST["name"];

    【讨论】:

    • 容易吗?是的!安全的?不!通过这样做,如果您在第一次提交期间更改任何内容或验证它,用户可以在以后修改它。
    • 我已编辑答案以包含有关 $_SESSION 变量的信息。如果信息不需要安全(并且 OP 没有声明它是必要的),那么这是一种简单(且易于理解)的处理方式。
    • 更简单的是,至少在某些情况下,“正确”。在此示例中,仅当信息不需要安全时。但我肯定会争辩说,这种方法本质上并不是“错误的”。
    • 启发我,什么场合可以使不安全的方法正确使用?即使信息不需要安全,也不意味着它不能被滥用!特别是如果他将它用于 3 页提交,其中第 3 页会将这些信息发送到数据库,那么用户很容易导致一些问题,例如 SQL 注入等。
    • Prix,我相信我们的开局很糟糕:我并不想以任何方式冒犯、攻击或以其他方式固执己见。我试图给出一个全面且易于理解的答案。 OP 没有说明安全所需的信息——尽管上下文可能已经表明了这一点——但哭泣的“SQL 注入”已经过分了。如果使用准备好的语句,那么使用此方法传递信息的频率并不重要。我的理解是,中间页面基本上仅用于显示信息,这是有效的。验证应始终在数据库输入之前进行。
    猜你喜欢
    • 1970-01-01
    • 2018-03-18
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    相关资源
    最近更新 更多