PHP登录,存储会话变量

3

嗨,我正在尝试用PHP制作一个简单的登录系统,我的问题是:我不太理解会话(sessions)。

现在,当我登录用户时,我运行session_register("user"),但我不太明白我在做什么。那个会话变量是否包含任何可识别的信息,例如我是否可以通过$_SESSION["user"]获取它,还是我必须将用户名存储在单独的变量中?谢谢。

3个回答

12

让我带你快速了解一下。

在脚本的开头调用函数session_start();(这样它就会在每个页面调用时执行)。

这将自动使该页面上的会话处于活动/工作状态。

从那时起,您只需使用$_SESSION数组来设置值。

例如:

$_SESSION['hello'] = 'world';

下一次页面加载(其他请求),这将起作用/发生:
echo $_SESSION['hello'];  //Echo's 'world'

如果只需要删除一个变量,可以使用unset命令:

unset($_SESSION['hello']);

要销毁整个会话(以及其中的所有变量):

session_destroy();

这就是有关会话基础知识的全部内容。


2

会话可以存储任何你认为有用的信息,所以将信息放入会话中取决于你自己。想要尝试一些事情,请尝试以下操作并亲身体验:

<?php

    session_start();
    if(isset($_SESSION['foo']))
    {
        echo 'I found something in the session: ' . $_SESSION['foo'];
    }
    else
    {
        echo 'I found nothing, but I will store it now.';
        $_SESSION['foo'] = 'This was a triumph.';
    }

?>

第一次访问此网站时应存储信息,第二次存储将打印出信息。

因此,您基本上可以在会话中放置任何内容,例如用户名。

但请注意,只要用户关闭浏览器,会话即会结束。


0

$_SESSION['user'] 必须设置为您用户的名称/ID,以便下次尝试读取时,您可以识别该用户。例如:

登陆: $_SESSION ['user'] = some_user_id;

用户区域: $user = $_SESSION ['user']; // 根据 $user 变量从数据库中提取用户 // 做些什么


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接