Cookie和Session最最最简单的使用方法

前言

这篇文章仅仅适用于对Cookie和Session一无所知的人,但凡是有一点基础的,请点击右上角的红叉叉,如果你是ubuntu用户,请点击左上角的那个。
正文


一、基础知识

(一)Session和Cookie是做什么的

首先我可以告诉大家,虽然它们的名字很奇怪,但是它们都是是用来存储网络信息的,就像电脑的硬盘储存文件一样。它们的区别就是Cookie储存在客户端,Session储存在服务器端。你可以像使用一般的文件一样使用它们,唯一的区别就是它们可以通过使用函数来进行操作。

(二)网络的无状态性

我们知道,我们通常访问网站使用的http协议是无状态协议,也就是说,服务器通过协议无法记录你是谁。举一个例子,你访问百度,当你打开www.baidu.com之后,你接下来会在搜索栏里面输入你想搜索的信息,然后按下搜索按键,最后搜索的内容就显示在了你的浏览器里。这个过程看上去是连贯的,但是实际上并不是,你获取baidu.com这个网页和你按下搜索按键事实上是两个动作,在没有session和cookie的情况下服务器并不会把做出这两个动作的你当作一个人来看待。

(三)如何在理论上实现用户系统

实现用户系统,需要做的就是确认用户的身份。好了问题来了,因为网络的无状态性,那么怎么可能有用户系统呢?如果说一个人在登录页面登录了,然后他打开了他自己的“个人中心”(注意到没有,这个是两个动作),接下来服务器就在用户中心就不认识他了,这样的话用户系统根本没有办法实现。所以说我们这个时候就要借助Cookie和Session的帮助。在只使用Session的情况下,我们可以在用户访问登录的时候,在服务器端创建一个对应于这个用户的唯一的Session文件,这个文件里面一般存放了访问的来源,这样可以根据这个来源确定用户唯一的身份,接下来需要做的就是在用户访问每一个这个网站的页面的时候检查Session和这个用户传过来的访问来源信息,如果说对应的话,就说明这个用户和登录的用户是同一人,也就可以确定用户是同一人。如果只使用Cookie的话,可能就会稍微复杂一点。当用户在登录成功的时候,我们可以命令客户端存储一个Cookie文件(这里使用的是命令这个词,实际上客户端是可以拒绝的),这个文件里面存放了用户的账户信息,接下来用户访问别的页面的时候,服务器端就可以命令客户端在访问的同时传送刚才的Cookie文件到服务器,这个时候我们需要做的就是检查Cookie文件中存储的用户和数据库中用户的信息,这样一对比,就知道访问的人是谁了。

二、代码怎么写

如果说用PHP来写这些内容的话是相当简单的
假设我们有这样一个数据表

dataBase  : Login
tableName : User
--------------------- 
  id | user | pwd
---------------------
// id    用户的id号
// user  用户名
// pwd   用户密码

下面是一个用户登录的处理文件

// login.php
Error Message : ' . mysqli_connect_error();
}
$result = mysqli_query($mysqli, 
        "SELECT id FROM User WHERE user='$user' AND pwd='$pwd'");
$data = mysqli_fetch_array($result);
if (count($data)) { // 找到了数据,也就是说这个用户存在
    setcookie('id', $data['id']); // 把用户的id放入cookie中
}
?>
检查登录

这样一个基本的Cookie就在客户端基本生成了,我们在用户访问当前网站的别的页面的时候只要要求客户端发送这个cookie过来就ok了,这样如果这个cookie文件被发送过来了,就说明用户是登录过的,如果没有发送过来说明用户没有登录,这个时候就让他登录就好。
接下来我们在链接的文件中写点东西并点开这个链接

如果说你按照我的做,并且输入正确的信息的话你就应该能够看到登录成功。

你可能感兴趣的:(Cookie和Session最最最简单的使用方法)