php - 如何允许用户登录网站并将其用户名信息保存在 PHP/HTML 中?

标签 php html mysql session hidden

我正在尝试创建一个网站,用户可以在其中登录或创建新帐户(如果他们还不是用户)。我已经做到了,但我似乎无法弄清楚如何让 PHP 或 HTML 通过不同的页面保存用户名。用户登录,然后根据特定用户,我的网站将显示该用户过去完成的不同练习,并允许用户将来添加更多练习。我的网站使用 PHP、HTML 和 MySQL 来搜索数据库中的不同表并输出结果。

我尝试了许多不同的可能解决方案,例如像这样的 PHP session ,但它不起作用。每个 PHP 页面的开头都有这样的内容:

session_start();

然后再往下看,我有:

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

我还尝试过在 HTML 中隐藏输入值,但这似乎也不太正确。每个 HTML 页面都有这样的内容:

<input type="hidden" name="Username" value="Cbartowski">

我尝试了很多方法来尝试让我的网页保存用户名并在整个页面中使用该数据,但我没有任何运气。 PHP 中的 session 是正确的选择吗?或者在 HTML 中隐藏输入?或者完全是别的什么?

任何帮助将不胜感激!

最佳答案

首先,使用隐藏输入来存储用户名对您的网站来说是一个严重威胁。 通过查看源代码可以轻松查看该人的用户名。

使用 PHP session 是解决此问题的方法。

我所理解的是你正在初始化

$_SESSION["Username"] = $_POST["Username"];

在每个页面上。现在,假设您有两个 php 页面。 一个是form-request-handler.php,另一个是display-user-preferences.php

现在,当用户提交表单时,用户名将使用 form-request-handler.php 页面上的上述代码片段设置到 session 变量中。

现在,当用户点击 display-user-preferences.php 页面时,您再次设置 session 变量的值。但由于没有对此页面发出发布请求,因此 Null 被保存到 session 变量中,并且您无法从数据库中检索所需的信息。

因此,无论哪个 php 页面正在处理 post 请求,只需在那里初始化您的 session 变量并在其他页面上使用它即可。

除非您调用,否则 session 变量将可供您使用

session_destroy();

希望,这有帮助:)

关于php - 如何允许用户登录网站并将其用户名信息保存在 PHP/HTML 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824739/

相关文章:

php - require_once 似乎并没有影响所有功能?

php - Chrome 将 PHP 文件的内容加载到 CSS 文件中

javascript - 在javascript中为乘法时间表添加起点和终点

php - 如何让 PHP 查看日期时间值

没有 Eval 的 PHP 动态鸭子类型(duck typing)

php - 从 Doctrine2 获取值数组的正确方法

php - 在 Stripe 上测试订阅续订

html - flex-direction 列属性不起作用

MySQL/PHP : cannot perform two separate queries on same database?

mysql - VB.Net Silverlight 项目和 MySQL