# 登录 本节中,我们将正式完成登录功能模块的实现。 1、是什么代码实现的用户登录呢? **cookie与session** 用户带上cookie信息,然后带上用户名和密码,访问我们的时候,如果用户名和密码被验证正确,我们就会利用session在服务器中记录一些信息。 比如,用户名和密码输入的是张三的,而且被验证正确,那么我们就会把张三的id使用session存在服务器的一个文件中。 2、我们怎么判断用户当前登录了,又是登录的哪个用户呢? 当用户再次带着cookie的数据来访问服务器时,服务器通过cookie 去找相应的session,如果能找到用户id,那么就认为用户登录了当前的用户id;否则,如果没有找到,那么就认为没有登录。 我们用一张图来简单说明下登录的原理: ![](https://box.kancloud.cn/2016-07-07_577da1fa94a4c.png) 上面我们仅仅展示了登录成功的情况:其中,张三属于第一次登录(cookie为空),李四属于第二次登录(cookie为456)。但无论是第一次登录,还是第二次登录,对于服务器而言,它的处理过程都是相同的。用户登录时,将用户名username存入cookie(无cookie就生成一个)对应的session中,用户请求数据时,再根据传入的cookie来取出对应的username,然后再根据username返回当前用户应该返回的数据。 在实际处理过程中,php会为我们处理好cookie与session,其处理过程是透明的,用户无感知。所以在下面的章节中,也不再阐述session是如何工作的。我们只需要知道,session这个东西,能够区别当前用户是谁,并能够读取和存储当前用户的数据就可以了。