zoukankan      html  css  js  c++  java
  • PHP用户登录和状态保持

    1、PHP实现登录一般使用SESSION来实现用户的登录,验证用户名和密码之后,将用户的信息保存至SESSION中。同时给客户端分配一个SESSION_ID,此SESSION_ID是存储在客户端的cookies中的,一般以PHPSESSID为cookie的key值,此项可在php.ini中进行设置。当你访问别的页面时,http会将当前的cookies作为header头的一部分,发送给服务器,服务器根据此SESSION_ID,如果有值,去取存储在SESSION中的信息。至此,实现了用户状态的保持。(此实现方式有多种,原理就是这样,许多网站不一定使用SESSION来存储用户信息,但是基本上还是需要cookies来使用户访问不同页面时,用户的状态一直能被服务器获得)
    实现伪代码如下:

    <?php
    session_start();
    //根据post过来的参数,校验用户的用户名和密码
    if(验证用户名密码正确) {
        $_SESSION['user_info'] = array()  //将用户的信息存入,或者存入你需要的东西
    } else {
        die('用户名密码错误之类的提示');
    }
    ?>
    



    2、当用户退出登录时,需要进行SESSION的删除,将保存在session中的信息删掉。

    <?php
    usset($_SESSION);//或者unset掉session全局变量中需要删掉的,例如上面的unset($_SESSION['user_info']);
    session_destroy();
    
    //如果想更彻底,可以设置客户端的cookie失效
    ?>
    


    当不关闭浏览器的情况下,再次刷新,会有COOKIE传过来,但是找不到数据

    3、md5加密直接加密用户输入的密码就ok了,md5加密不可逆转,保存在数据库中的就是已经进行加密后的md5值。但是md5使用范围太大,并且现如今的计算机硬件技术,使用字典方式去暴力破解也不是什么太难的事情,所以单一的md5加密很容易被人猜。一般的解决方案可以使用更加复杂的加密手段进行,例如密码的加盐、使用更为复杂算法进行加密等等

    转:http://www.zhihu.com/question/20747728

  • 相关阅读:
    ubuntu无法关机,卡死
    Ubuntu16.04安装8821CE 无线网卡无驱动
    百度Apollo学习(一)
    如何在Virtualbox中对Ubuntu系统根分区扩容
    Ubuntu下安装Google浏览器
    ubuntu下安装Firefox中国版解决Ubuntu与Windows下Firefox账号同步问题(已解决)
    ubuntu 下Visual Studio Code 安装
    百度Apollo搭建步骤(待更新)
    Ubuntu系统下常用的新建、删除、拷贝文件命令
    Ubuntu 16.04下docker ce的安装(待完善)
  • 原文地址:https://www.cnblogs.com/lyweb/p/2998452.html
Copyright © 2011-2022 走看看