• 陕西洛南:产业融合铺就深山扶贫锦绣路 2019-08-19
  • 解决争端根本办法是建立机制 而不是利用社会舆论取得某种优势(原创首发) 2019-08-18
  • “中国网事·感动2018”一季度网络感动人物评选启动 2019-08-18
  • 省级机关作风评议窗口 2019-08-13
  • 魏尧直面问题 立行立改 打造本质环保型企业 2019-08-13
  • 秦存良的专栏作者中国国家地理网 2019-08-12
  • 中国资本市场开放出大招 跨境证券投资更便利 2019-08-12
  • 全国人大常委会执法检查组在江苏开展大气污染防治法执法检查 2019-08-12
  • 地理 —频道 春城壹网 七彩云南 一网天下 2019-08-06
  • 到户就不是计划经济,统一经营坚持集体的是计划经济。 2019-08-06
  • 不断变化包括不断转换套路。拳击不是你的强项就可来散打等你的强项嘛,实在不行就使拌子。 2019-07-28
  • 庆祝中国共产党成立95周年大会 2019-07-25
  • 九个字带您感知十九大报告的民生温度 2019-07-25
  • 警察打击号贩 夫妻抗法获刑 2019-07-14
  • 湖北日报传媒集团多媒体数字报 2019-07-13
    1. 欢迎访问北大青鸟鲁广校区~

    2. 加入收藏
    3. 设为主页
    4. 学校简介

    三分钟了解北大青鸟

    ×
    • 北大青鸟大数据课程
    • 北大青鸟网络工程师
    • 北大青鸟web设计专业
    • 北大青鸟PHP专业
    • 北大青鸟启蒙星课程

    PHP MYSQL身份验证的方法

    责任编辑:北大青鸟鲁广校区来源:北大青鸟鲁广校区前端技术教程发布时间:2012-12-29 10:34
    导读:近日在为学校制做校友录时,需要身份验证,在对比之后决定采用PHP+MYSQL进行身份验证。在身份验证的同时,记录浏览信息。

        近日在为学校制做校友录时,需要身份验证,在对比之后决定采用PHP+MYSQL进行身份验证。之前也曾考虑过用cookies或session。但是用cookies,在用户离线再上线后,只要cookies不过期,不用登录仍然可以保持在线,这对于网吧来说是个隐患。而且用户可以关闭cookies,这样身份验证就不成功。也考虑过用session,session在浏览过程中不断的将访问信息加入到session中,如果用户在网站内时间很长,浏览的页面很多,就用导致session越来越大,浏览速度降低,后只有重新登录,虽然这种情况不多见,但不是我们所希望的。
        我在做这个身份验证时的想法是,在身份验证的同时,记录浏览信息。用户ID在每个页面间传递,ID值是用MD5()函数加密得到的。验证函数是validate_id(),返回值为(0,1),成功为“1”。
        思路:
        判断被传入的ID值是否为匿名登录ID(a684dd572b1887661782981659331eed),32位,如果是返回0,并且将浏览信息加入数据库。如果否,则查询数据库,看数据库中的用户ID,用户IP与传入的ID,IP值是否相等并且近浏览时间距当前时间不到20分钟的记录。
     判断得到的记录数,如果为0,则认为离线,并用匿名ID登录浏览信息,返回0。记录不为0时,将用户ID,用户IP值,加入数据库,返回1。
    创建数据库:  
    create table logging{

    id int unsigned not null primary key auto_increment,

    user_id char(32) not null,//用户ID

    logging_ip varchar(20) not null,//记录用户IP地址

    page_name varchar(30) not null,//浏览网页名

    view_time timestamp not null,

    student_id varchar(20)

    );

    创建函数:
    /*-----begin function validate-id()---------------
    验证用户是否登录

    ------------------------------------------------*/
    function validate_id($link,$id,$ip,$page_name,$student_id=""){
    if($id==a684dd572b1887661782981659331eed or $id=){
    $query=insert into logging(user_id,logging_ip,page_name,student_id) values ("a684dd572b1887661782981659331eed",".$ip.",".$page_name.","anonym");;
    $result=mysql_db_query("web",$query,$link);
    return (0);
    }
    else {
    $year=strftime("%Y");
    $month=strftime("%m");
    $day=strftime("%d");
    $hour=strftime("%H");
    $min=strftime("%M");
    $sec=strftime("%S");
    echo $time_string=$year.$month.$day.$hour.$min.$sec;
    // echo ("<br>");
    // echo "$year-$month-$day $hour-$min-$sec<br>";
    file://---------begin ifs---------------------------
    if(($min-=20)<0){
    $min+=60;
    if(($hour-=1)==-1){
    $hour+=24;
    if(($day-=1)==0){
    switch ($month) {
    case 12 :$days=30;break;
    case 1 :$days=31;break;
    case 2 :if(($year/4==0)and($year/100!=0)or($year/400==0)){
    $days=29;}
    else {$days=28;}
    break;
    case 3 :$days=31;break;
    case 4 :$days=30;break;
    case 5 :$days=31;break;
    case 6 :$days=30;break;
    case 7 :$days=31;break;
    case 8 :$days=31;break;
    case 9 :$days=30;break;
    case 10 :$days=31;break;
    case 11 :$days=30;break;
    }
    $day+=$days;
    if(($month-=1)==0){
    $month+=12;
    $year-=1;
    }
    }
    }
    }
    file://----------------------------------end ifs
    setType($month,"integer");
    if($month<10){
    setType($month,"string");
    $month=0.$month;}
    setType($day,"integer");
    if($day<10){
    setType($day,"string");
    $day=0.$day;}
    setType($hour,"integer");
    if($hour<10){
    setType($min,"string");
    $hour=0.$hour;}
    setType($min,"integer");
    if($min<10){
    setType($min,"string");
    $min=0.$min;}

    echo <br>.$time_string=$year.$month.$day.$hour.$min.$sec;
    // echo "<br>$year-$month-$day $hour-$min-$sec<br>";
    // echo ("<br>");
    $query="select id from logging where user_id=$id and logging_ip=$ip and view_time>$time_string;";
    $result=mysql_db_query("web",$query,$link);
    $count=mysql_num_rows($result);
    if($count==0){
    // echo $query="insert into logging(user_id,logging_ip,page_name) values (a684dd572b1887661782981659331eed,$ip,$page_name);";
    $result=mysql_db_query("web",$query,$link);
    return (0);
    }
    else{
    $query="insert into logging(user_id,logging_ip,page_name) values($id,$ip,$page_name)";
    $result=mysql_db_query("web",$query,$link);
    return (1);

    }
    }//end if
    }
    file://----------------------------end function validate-id---------
      这个验证方法很简单,而且没有考虑到用户在登录后再登录的情况,大家可以自己加上。如果用cookies,可能用setcookies()建立用户ID,再从环境变量$HTTP_COOKIE或$HTTP_COOKIE_VARS中读取。都是一样的,不过应该保证用户没有cookies。

    本文标题:PHP MYSQL身份验证的方法,责任编辑:北大青鸟鲁广校区,来源:武汉宏鹏,于2012年12月29日10时34分发布于雄鹿vs火箭全场回放。武汉北大青鸟宏鹏鲁广校区,是北大青鸟武汉电脑学校,专业IT计算机培训,拥有软件/网络/安卓/Web前端/Java课程.北大青鸟地址:光谷广场鲁巷数码港.电话:027-87807717

    专业老师指导

    赵老师

    从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业。

    培训咨询客服

    刘老师

    IT培训专业客服,用自己的真诚解决了无数学子的困惑。

    本文地址:
    文章标题:
    • 北大青鸟Java软件开发
    • 北大青鸟UI设计课程_零基础可学
    • 北大青鸟动漫设计_武汉设计学校
    • 北大青鸟数字艺术_武汉电脑学校
    ×
    在线咨询更多问题

    如您有任何疑问
    在线咨询随时为您解答或拨打咨询热线:17740513250

    ×
    • 姓 名*
    • 手 机*
    • QQ号/微信号
    • 所报学科 *
    • 其他备注
    • 温馨提示:请保持手机畅通,咨询老师将为您提供专属的一对一报名服务。

  • 陕西洛南:产业融合铺就深山扶贫锦绣路 2019-08-19
  • 解决争端根本办法是建立机制 而不是利用社会舆论取得某种优势(原创首发) 2019-08-18
  • “中国网事·感动2018”一季度网络感动人物评选启动 2019-08-18
  • 省级机关作风评议窗口 2019-08-13
  • 魏尧直面问题 立行立改 打造本质环保型企业 2019-08-13
  • 秦存良的专栏作者中国国家地理网 2019-08-12
  • 中国资本市场开放出大招 跨境证券投资更便利 2019-08-12
  • 全国人大常委会执法检查组在江苏开展大气污染防治法执法检查 2019-08-12
  • 地理 —频道 春城壹网 七彩云南 一网天下 2019-08-06
  • 到户就不是计划经济,统一经营坚持集体的是计划经济。 2019-08-06
  • 不断变化包括不断转换套路。拳击不是你的强项就可来散打等你的强项嘛,实在不行就使拌子。 2019-07-28
  • 庆祝中国共产党成立95周年大会 2019-07-25
  • 九个字带您感知十九大报告的民生温度 2019-07-25
  • 警察打击号贩 夫妻抗法获刑 2019-07-14
  • 湖北日报传媒集团多媒体数字报 2019-07-13
  • 极速时时控制开奖 牛彩版彩图库 凯利指数大于返还率 pt电子怎么才能赢大钱 最新时时销量排行榜 江苏7位数19113 时时彩怎样下载开奖结果 最新时时源码出售 北京pk10开奖记录排期 快速时时走势图 今天河南快三跨度走势图 排列五走势图讲解视频 内蒙古时时开结果 浙江十一选五开奖信息 重庆时时真的假的 开奖最快