将变量保存在HTML中,以便用户只需输入一次信息

时间:2015-03-29 19:19:18

标签: php html mysql web-applications

因此,如果我在我网站的登录页面上,我会在“名称”和“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"];

错误说“注意:未定义的索引:MNo”,这意味着它没有保存上一页的MNo变量:我该怎么做?

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

如何创建以便用户在开头输入成员编号,然后在登录后可以在多个页面上用于MySQL查询?

3 个答案:

答案 0 :(得分:1)

在php中有多种方法让用户跟随用户,最重要的是我建议使用session_start()然后为会话变量赋值。

另一种方式,但我不建议让用户通过隐藏属性<input type="hidden name="MNo" value="value">的表单继续浏览下一页。

答案 1 :(得分:1)

<form action="rentalHistory.php" method="post">
   <input type="hidden" name="MNo" value="$_POST[MNo]">
   <input type="submit" value="View my Rental History">
</form>

答案 2 :(得分:0)

如果页面加载后$_POST变量不可用,则表示您发布的表单不包含其中包含名称的变量,或者您已完成{{1}请求将用户的名称作为查询字符串传递(如果表单中未包含任何名称输入,隐藏或其他方式,则仍然无效)。

首先尝试GET,如果这不起作用,您需要在租借历史记录查找表单中添加一个名为$_GET['name']的隐藏输入,并将其值设为先前发布的{{ 1}}值。

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