科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件一个完整、安全的用户登录系统

一个完整、安全的用户登录系统

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在使用PHP编程的时候,我有一个习惯,不太喜欢使用现成的库文件,例如PHPLib或者其它类似的库...

作者:QQ新人类 来源:yesky 2007年10月27日

关键字: Linux

  • 评论
  • 分享微博
  • 分享邮件
以下是该库中的两个函数--记号产生和记号认证函数。

  <?php

   $hidden_hash_var='your_secret_password_here';

   $LOGGED_IN=false;
   unset($LOGGED_IN);

   function user_isloggedin() {
    global $user_name,$id_hash,$hidden_hash_var,$LOGGED_IN;
    file://已经进行无序码的检测了吗

    file://如果是的话,返回该变量

    if ( isset($LOGGED_IN) ) {

     return $LOGGED_IN;

     }

    file://are both cookies present?

    if ($user_name && $id_hash) {

    /*

     由cookies中得来的用户名和系统超级密码产生一个认证用的无序码如果该无序码与cookie中的无序码一样,则cookies中的变量是可信的,用户已经登录

    */

     $hash=md5($user_name.$hidden_hash_var);

     if ($hash == $id_hash) {

      file://无序码符合,设置一个全局变量,这样我们在再次调用该函数的时候

      file://就无需再次进行md5()运算

      $LOGGED_IN=true;

      return true;

     } else {

      file://两个无序码不符合,没有登录

      $LOGGED_IN=false;

      return false;

     }

     } else {

       $LOGGED_IN=false;

       return false;

      }

     }

   function user_set_tokens($user_name_in) {

    /*

     一旦用户名和密码通过验证,就调用这个函数

    */

    global $hidden_hash_var,$user_name,$id_hash;

     if (!$user_name_in) {

      $feedback .= ' ERROR - User Name Missing When Setting Tokens ';

      return false;

      }

    $user_name=strtolower($user_name_in);

     file://使用用户名和超级密码创建一个无序码,作判断是否已经登录用

     $id_hash= md5($user_name.$hidden_hash_var);

     file://设置cookies的有效期为一个月,可设置为任何的值

     setcookie('user_name',$user_name,(time()+2592000),'/','',0);

     setcookie('id_hash',$id_hash,(time()+2592000),'/','',0);

    }

  ?>
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章