session mysql登录实现原理_cookie与session的用户登录案例

下面用实例来演示一下如何用cookie和session来实现用户登录:

一、cookie实现用户登录

网站根目录下面有个inc目录,是存放一些公共配置文件的

inc目录下的connect.php是数据库连接文件,代码如下:<?php

define('DB_HOST','localhost');

define('DB_USER','root');

define('DB_PASS','root');

define('DB_NAME','php');

define('DB_CHAR','utf8');

$dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASS);

if(mysqli_connect_errno($dbc)){

echo '连接失败'.mysqli_connect_error($dbc);

}

mysqli_select_db($dbc,DB_NAME);

mysqli_set_charset($dbc,DB_CHAR);

inc目录下的function.php是公共函数库,封装了一些常用方法<?php

//公共函数库

/*

*用户自定义跳转地址

*/

function redirect_user($page = 'index.php')

{

$url = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);

$url = rtrim($url,'/\\');

$url .= '/'.$page;

header('Location:'.$url);

exit();

}

/*

*验证用户登录

*/

function check_login($dbc,$email='',$password='')

{

$errors = [];

//验证邮箱

if(empty($email)){

$errors[]='邮箱地址不能为空';

}else{

$e = mysqli_real_escape_string($dbc,trim($email));

}

//验证密码

if(empty($password)){

$errors[] = '密码不能为空';

}else{

$p = mysqli_real_escape_string($dbc,trim($password));

}

//非空验证通过

if(empty($errors)){

$sql = "SELECT `user_id`,`user_name` FROM `user` WHERE `email`='$e' AND `password`=sha1('$p')";

$res = mysqli_query($dbc,$sql);

if(mysqli_num_rows($res)==1){

$row = mysqli_fetch_array($res,MYSQLI_ASSOC);

return[true,$row];

}else{

$errors[]='邮箱和密码不正确,请重新输入';

}

}

return[false,$errors];

}

inc目录下有个header.php,是网站的头部文件,代码如下:html>

<?php  echo isset($page_title) ? $page_title : '默认标题'; ?>

Toggle navigation

Brand

  • 首页 (current)
  • Link

Submit

  • <?php  if((isset($_COOKIE['user_id']))&&basename($_SERVER['PHP_SELF'])!='logout.php'){

    echo '退出';

    }else{

    echo '登录';

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值