• 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

  • 相关阅读:
    2251: [2010Beijing Wc]外星联络
    1500 后缀排序
    1492: [NOI2007]货币兑换Cash【CDQ分治】
    P3380 【模板】二逼平衡树(树套树)
    python opencv
    pycharm调试
    pycharm中选择python interpreter
    创建使用pycharm virtualenv
    reload函数
    python3编写发送四种http请求的脚本
  • 原文地址:https://www.cnblogs.com/lyweb/p/2998452.html
Copyright © 2020-2023  润新知