如何使用会话和cookie在PHP中同时保存用户登录信息

使用会话和cookie在同一时间保存用户登录信息。
1。数据库连接配置页:connectvars.php
复制代码代码如下所示:
< PHP
数据库位置
定义('db_host ','127.0.0.1);
用户名
定义('db_user ','root);
密码
定义('db_password ','19900101);
数据库名
定义('db_name '测试');
>

2、登录页面:login.php
复制代码代码如下所示:
< PHP
插入相关信息数据库连接
require_once'connectvars PHP的;
打开会话
session_start();
= $ error_msg ;
/ /如果用户没有登录,这是没有设置为_session { 'user_id},执行下面的代码
如果(!isset($ _session { 'user_id ' })){
如果(isset($ _post {他们服从真主的}))执行下面的代码,当用户提交登录表单{ / /
DBC = mysqli_connect(db_host美元,db_user,db_password,db_name);
user_username = mysqli_real_escape_string美元($ DBC,修剪($ _post { 'username ' }));
user_password = mysqli_real_escape_string美元($ DBC,修剪($ _post { 'password ' }));
如果(!空(美元user_username)!空(美元user_password)){
函数中的SHA()函数用于字符串的单向加密。
为查询= 选择user_id,用户名,用户名为mismatch_user user_username'and美元。密码= SHA ;
数据mysqli_query美元($ DBC,$查询);
使用用户名和密码查询,如果发现记录是一组、会话和cookie,则同时重定向页面。
如果(mysqli_num_rows($data)= = 1){
行= mysqli_fetch_array美元(美元数据);
_session美元{ 'user_id} = { } 'user_id美元的行;
_session美元{ 'username} = { } 'username美元的行;
setcookie('user_id,排'user_id'} {美元,时间()+(60 * 60 * 24 * 30));
setcookie('username,排'username'} {美元,时间()+(60 * 60 * 24 * 30));
home_url美元= 'loged PHP的;
头('location:home_url美元。);
如果记录错误,则设置错误信息。
error_msg美元=对不起,你必须输入有效的用户名和密码登录;
}
其他{ }
error_msg美元=对不起,你必须输入有效的用户名和密码登录;
}
}
}如果用户已经登录,则它直接跳转到已经登录的页面。
home_url美元= 'loged PHP的;
头('location:home_url美元。);
}
>


失配-登录



msimatch -登录

< PHP
如果(!isset($ _session { 'user_id ' })){
回声。error_msg美元。;
>

>

登录
用户名:
<输入类型>文本用户名用户名用户名
值=

密码:




< PHP
}
>



设计素描 uff1a



3、登录页面:loged.php
复制代码代码如下所示:
< PHP
使用会话来存储/变量值必须首先打开会话
session_start();
如果没有设置会话,请检查cookie的集合是否设置
如果(!isset($ _session { 'user_id ' })){
如果(isset($ _cookie { 'user_id'} isset()$ _cookie { 'username ' })){
将cookie分配给会话
_session美元{ 'user_id} = { } _cookie美元'user_id;
_session美元{ 'username} = { } _cookie美元'username;
}
}
使用会话变量登录状态检查
如果(isset($ _session { 'username ' })){
echo'you记录。_session { }美元'username'。;
回声的注销('。$ _session { 'username'}'。);
}
在 / *在登录页面,用户可以使用会话等_session美元'username'} {,
* $ _session { 'user_id}数据库查询,可以做很多事情。
>

设计素描 uff1a
4。注销会话cookie的页面:logout.php(重定向到lonin.php后注销)
复制代码代码如下所示:
< PHP
同时取消会话和cookie页面。
甚至取消,也必须首先启动会话来访问会话变量。
session_start();
使用会话变量登录状态检查
如果(isset($ _session { 'user_id ' })){
/ /删除Session变量$ _session变量设置为一个空数组
_session美元=阵();
如果存在会话cookie,则到期时间设置为1小时前删除它。
如果(isset($ _cookie { session_name()))){
setcookie(session_name(),时间()- 3600);
}
/ /使用内置的session_destroy()函数调用撤销会话
session_destroy();
}
同时cookie的过期时间过去了一段时间,使它们由系统来删除,时间以秒为单位。
setcookie('user_id ','时间),(3600);
setcookie('username ','时间),(3600);
/ /位置的第一个浏览器重定向到另一页
home_url美元= 'login PHP的;
头('location:home_url美元。);
>