【问题标题】:Ways of Optimizing "Header" of Website by Sending POST Request Only Once只发送一次POST请求优化网站“头部”的方法
【发布时间】:2023-03-08 15:15:01
【问题描述】:

目前我有一个包含多个网页的网站,其中包含相同的标题以及用户名、用户个人资料图片等信息。

现在我想在他们成功登录后显示用户名和用户个人资料图片。因此,我必须使用 PHP 从服务器检索用户信息。考虑到我有多个网页,我想知道是否有一种方法,而不是每次用户进入新页面时都检索信息,我可以只从服务器获取一次信息并将其存储在浏览器中的某个位置,然后之后使用它?我正在考虑使用以下方式:

  1. 通过URL中的参数传递用户数据,但肯定是不安全的。
  2. 使用 LocalStorage 或 SessionStorage,但在某些旧版浏览器中不兼容。
  3. 将其存储在Cookie中,但如果它包含大量数据,例如用户的个人资料图片,则效率不高。

【问题讨论】:

  • 一旦用户登录,您可以在$_SESSION 中存储姓名、图像名称等...要更新这些详细信息,您可以在成功编辑时进行更改,这就是会话的目的。
  • 不要将信息与用户一起存储(通过 cookie 等),因为用户可以更改该信息并伪装成任何其他用户

标签: javascript php ajax cookies


【解决方案1】:

正如 Viral 在 cmets 中所述,您可以使用 PHP 的 $_SESSION,它将跨网页保存数据,前提是您使用 session_start() 在每个网页上启动会话。

一个示例实现如下;

<?php
session_start();

if(!isset($_SESSION['userdata']){
    //Get user data and store it within the session eg. $_SESSION['usedata'] = array('name' => 'Scott');

    //This will allow you to get the user data if it has not already been retrieved.
}

// Use the data however you would need to

我建议使用会话,因为几乎所有支持 cookie 的浏览器都支持会话。

【讨论】:

    猜你喜欢
    • 2015-06-22
    • 2015-09-20
    • 1970-01-01
    • 2022-08-09
    • 2020-05-11
    • 1970-01-01
    • 2016-01-05
    • 2018-02-09
    • 1970-01-01
    相关资源
    最近更新 更多