-7

我在 PHP 中创建了一个有效的登录和注册页面,但遇到了问题。我不知道如何获取登录到他们计算机的人的 ID。我如何在哪里跟踪谁在哪台计算机上登录并向他们显示信息?

例如,在 Facebook 上,它总是知道你是谁,并显示你一个人应该看到的内容,但这是如何完成的呢?它如何跟踪这一点?如果这很难理解,我很抱歉,但我无法真正解释。

4

5 回答 5

2

$_SESSION

会话是一种存储跨多个页面使用的信息(以变量的形式)的方式。

<?php 
 // this line starts the session and must be present in any page where you need to set or retrieve a session variable
 session_start(); 
 
 // this sets variables in the session 
 $_SESSION['userid']='123'; //obv it will be dynamic
 
 // this retrieves the value set earlier
 echo $_SESSION['userid'];
 ?> 

因此,您可以检查每个页面是否userid存在database您可以获取其记录。

于 2013-10-20T08:09:28.293 回答
1

所有三个内联注释都是针对不同场景的有效答案。

  1. 如果您想永久记住登录用户 - 使用数据库
  2. 如果您希望您的浏览器在定义的时间段内记住登录用户 - 使用Cookie
  3. 如果您希望浏览器在浏览器关闭之前记住登录用户 - 使用Sessions
于 2013-10-20T08:09:40.670 回答
0

您应该查看会话变量。PHP 会话变量用于存储有关用户会话的信息或更改用户会话的设置。会话变量保存有关单个用户的信息,并且可用于一个应用程序中的所有页面。

当他们登录时,您为他们的用户名(或您想要的任何变量)设置会话变量,然后当他们更改页面时,您查找会话变量,获取他们的用户名并显示相关数据。当他们注销时,您会破坏会话变量。如果他们加载页面并且会话变量不存在,则他们没有登录。

这是一个简短的教程: http ://www.tizag.com/phpT/phpsessions.php

于 2013-10-20T08:08:37.807 回答
0

注册站点时会分配一个唯一的用户 ID,因此当用户登录时会请求此用户 ID,并将用户会话分配给此 ID,这样可以轻松检索与当前用户相关的所有数据。看看用户会话..

于 2013-10-20T08:08:51.433 回答
0

HTTP 是一种无状态协议,这意味着它没有同一用户先前调用的任何历史记录。因此,为了在 HTTP 请求中引入上下文信息,UI/浏览器会发送一些信息来唯一标识每个用户。

所以服务器组件(Java/PHP)通过这些额外的信息来识别用户。当然,它是通过 DB 的帮助找到的。

于 2013-10-20T08:09:19.483 回答