P.188
第一次访问:
1、输入用户名、密码,提交。
2、调用PHP处理代码。
3、获取输入的用户名、密码。
4、与服务器数据库中的用户名、密码比对。
5、session_start()。
6、判断当前是否有$_COOKIE[session_name()](session.name = PHPSESSID //默认值PHPSESSID);session_name()返回保存session_id的COOKIE键值,这个值可以从php.ini找到。
7、生成一个session_id,然后把生成的session_id作为COOKIE的值传递到客户端。
8、用户名和密码赋值给$_SESSION。
9、当PHP脚本执行结束时,$_SESSION变量会被自动保存到服务器数据库。
再次访问:
1、session_start()。
2、加载已经存储的$_SESSION变量。
3、因为已经存在session_id = $_COOKIE[session_name];所以会从客户端获取该session_id。
4、然后去session.save_path指定的文件夹里去找名字为'SESS_' . session_id()的文件, 读取文件的内容反序列化,然后放到$_SESSION中。
5、PHP代码判断$_SESSION存在用户名,则表示可以继续访问。