cookie session 保存用户登录信息

session是保存在服务器端的,通过php.ini文件中的session.save_path保存session

cookie是保存在客户端的(ie浏览器中)

设置了session和cookie后用户信息就会保存在上面,登陆后,都会有一个标示,带着这个标示就可以访问每个页面,不用一个一个的发送请求

1、db.class.php
//封装数据库类
<?php
class db{
 private $host;
 private $user;
 private $pass;
 private $db_name;
 
 public function __construct($host,$user,$pass,$db_name){
  //初始化对象的属性
  $this->host=$host;
  $this->user=$user;
  $this->pass=$pass;
  $this->db_name=$db_name;
  $this->connect();
  
  }
 
 public function connect(){
  
  mysql_connect($this->host,$this->user,$this->pass);
  mysql_select_db($this->db_name);
  mysql_query("set names utf8");
  }
 }
?>
2、a.php
<?php
//var_dump($_POST);
//没有选复选框时,array(2) { ["username"]=> string(5) "admin" ["password"]=>

string(5) "admin" }
//选了复选框后多了个remember=>1,array(3) { ["username"]=> string(5) "admin" ["password"]=>

string(5) "admin" ["remember"]=> string(1) "1" }


session_start();//开启session
//初始化act参数
$_GET['act']=isset($_GET['act'])?$_GET['act']:'login';//因为get获得地址栏中信息。isset()判断变量是否存在,$_GET['act']:'login'默认act的值是login
//验证用户名和密码
if($_GET['act']=='signin'){
 $username=$_POST['username'];//获得它的信息,获得他的用户名
 $password=$_POST['password'];
 //连接数据库进行查询
 include 'db.class.php';
 $db=new db('localhost','root','123','ecshop_test');
 $sql="select * from admin_user where username='$username' and

password='$password'";
 $res=mysql_query($sql);
 $row=mysql_fetch_array($res);//以数关联或索引组形式返回一条结果
 if($row){
  //现在用户名和密码正确,登录
  if($_POST['remember']==1){//保留这次登录的信息.
   setcookie('admin_id',$row['id'],time()+24*60*60);
   setcookie('admin_pass',$row['password'],time()+24*60*60);
   }
   $_SESSION['is_login']=true;//设置session,
   header('Location:index.php');
  }else{
   echo '用户名密码错误';
   header('Location:a.php');
   }
 
 }



?>
<form action="a.php?act=signin" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password" ><br>
<input type="checkbox" value="1" name="remember" id="remember" /><label for="remember">请保

存我这次的登录信息</label><br>
<input type="submit" value="进入管理中心" class="button" />

</form>


3、index.php
<?php

session_start();
include 'db.class.php';
$db=new db('localhost','root','123','ecshop_test');
//验证用户名密码,看看你身上有没有那个记号
if(!isset($_SESSION['is_login'])){
 //判断是否有cookie,设置cookie是通过setcookie函数,获得cookie通过$_COOKIE[]
 if(isset($_COOKIE['admin_id'])){
  //去数据库查询用户名和密码
  $sql="select password from admin_user where id='{$_COOKIE['admin_id']}'";
  $res=mysql_query($sql);
  $pass=mysql_fetch_array($res);
  if($pass[0] !=$_COOKIE['admin_pass']){//$_COOKIE['admin_pass']是a.php中设置

的cookie
   //既没有session也没有正确的cookie
   header('Location:a.php');
   }
  }
 }else{
  echo 'welcome';
  }

?>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值