【问题标题】:Saving a variable in HTML so that the user only has to enter the information one time在 HTML 中保存一个变量,这样用户只需输入一次信息
【发布时间】:2015-06-02 17:29:10
【问题描述】:

因此,如果我在网站的登录页面上,我会在“姓名”和“MNo”字段中输入“Joe Bob”和“111”,使用以下代码:

<form action="userLogin.php" method="post">
Name: <input type="text" name="name"><br><br>
Member Number: <input type="text" name="MNo"><br><br>
<input type="submit" value = "Sign in!">
</form>

在下一页我可以从输入的字段中获取名称和成员 ID,如下所示:

$name = $_POST["name"];
$MNo = $_POST["MNo"];

现在在同一页面上,我想要一个 Joe Bob 可以单击的按钮,该按钮将显示他的用户历史记录:我需要他的 MNo 来搜索 MySQL 数据库,但是当我转到下一页时,使用

<form action = "rentalHistory.php" method = "get">
 <input type="submit" value="View my Rental History"> 
</form>

我不再被允许使用

$MNo = $_POST["MNo"];

错误提示“Notice: Undefined index: MNo”,这意味着它没有保存上一页中的 MNo 变量:我该怎么做?

如您所见,当我让用户输入他们的会员号时,它会起作用,但我不想每次都这样做。

如何做到让用户一开始输入会员号,登录后就可以在多个页面上进行MySQL查询?

【问题讨论】:

  • 既然你想在其他页面上使用这些值所以把它放在会话或cookie中然后使用它。

标签: php html mysql web-applications


【解决方案1】:

在 php 中有多种方法可以让数据跟随用户,我最推荐的是使用session_start(),然后将值分配给会话变量。

另一种方法,但我不推荐的方法是让用户通过具有隐藏属性&lt;input type="hidden name="MNo" value="value"&gt; 的表单继续到下一页。

【讨论】:

    【解决方案2】:

    当页面加载后$_POST 变量不可用时,这意味着您发布的表单中不包含带有名称的变量,或者您已经完成了GET 请求,该请求将将用户名作为查询字符串传递(如果表单中没有包含隐藏或其他名称输入,这仍然不起作用)。

    首先尝试$_GET['name'],如果这不起作用,您需要将名称为name 的隐藏输入添加到您的租赁历史查找表中,并将其值设为之前发布的$_POST['name'] 值。

    如果您需要经常访问它,您还可以将用户数据存储在会话中,请确保在适用时销毁会话!

    【讨论】:

    • 这样?
      变量变成: $_POST[ 当我尝试打印它时,它应该打印 1111
    【解决方案3】:
    <form action="rentalHistory.php" method="post">
       <input type="hidden" name="MNo" value="$_POST[MNo]">
       <input type="submit" value="View my Rental History">
    </form>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多