찾다
백엔드 개발PHP 튜토리얼网易,佳人有约登录效果_PHP教程
网易,佳人有约登录效果_PHP教程Jul 20, 2016 am 11:05 AM
그리고열쇠기능마치다우리를해체하다효과보여주다로그인~의넷이즈투명한숨다

我们先把上面拆解出来的功能完成!
1。透明层(显示与隐藏)
关键是要同时设置下面这几个样式,才能使主流浏览器上都现实透明的效果。

filter= 'Alpha(Opacity=50)';
MozOpacity ='0.5';
opacity='0.5';


可能很多人都知道,类似这种在透明层上现实东西的效果,多源至于一个称为lightbox的效果。这里我也这样命名:

function Lightbox(id)
{
        this.box = this.createBox();
        this.id  = id||'lightbox_id';
}
Lightbox.prototype=
{
        createBox:function(){
                var box = document.getElementById(this.id)||document.createElement('div');
                box.id = box.id||this.id;
                with(box.style){
                        position='absolute';
                        left='0';
                        top='0';
                        width='100%';
                        height='100%';
                        zIndex='1000';
                        background='#ccc';
                        filter= 'Alpha(Opacity=50)';
                        MozOpacity ='0.5';
                        opacity='0.5';
                        display='none';
                }
                document.body.appendChild(box);
                return box;
        },
        show:function(){
                this.box.style.height= document.documentElement.scrollHeight+'px';
                this.box.style.display = '';
        },
        hide:function(){
                this.box.style.display = 'none';
        }
}


2。表单提交(ajax或iframe)
迅雷上的是用的iframe,我们这里先说iframe
iframe就简单多了,form的target属性设置为某个iframe的name就可以了。设置iframe的onload属性,那么当表单提交完成以后他就会执行相应处理。





如果用ajax的话,代码也很简单。可能大家用的js框架不一样。但绝大多数都大同小异,我相信大家一看就知道是什么意思。
类我就不在这列举了,我只写一下怎么用它。
这其实就是ajax in action这本书上的那个net类。

/*很多人可能会说,为什么没用encodeURIComponent避免乱码?这里不需要使用encodeURIComponent了,在类里面调用过了*/
/**
* 'login.php':登陆验证页[废话]
*  Login.checkLogin:ajax回调函数[废话]
*  loadXMLDoc的参数,表单里要传递的数据[废话]
*/

new Ajax('login.php',Login.checkLogin).loadXMLDoc({
        username:document.getElementById('username').value,
        password:document.getElementById('password').value,
        vcode:document.getElementById('vcode').value
});


3。select的显示与隐藏,以及cookie操作。
既然select不能被div挡住,那就把他干掉吧!

var Select={
        show:function(){
                var selects=document.getElementsByTagName('select');
                for(var m=0;m        },
        hide:function(){
                var selects=document.getElementsByTagName('select');
                for(var m=0;m        }
}


还要准备一套cookie函数
网络最大的好处:对于某些问题,你只需知道该干什么就可以了,至于具体该怎么做已经有人帮你做好了。
下面我就随便在论坛里搜了一下,就找到了一个
http://www.phpchina.com/bbs/view ... a=page=1&sid=4jSn3r

var Cookie=
{
        check:function(){
                 //判断cookie是否开启
                 var cookieEnabled=(navigator.cookieEnabled)? true : false;
                 //如果浏览器不是ie4+或ns6+
                 if (typeof navigator.cookieEnabled=="undefined" && !cookieEnabled){
                  document.cookie="testcookie";
                  cookieEnabled=(document.cookie=="testcookie")? true : falsedocument.cookie="";
                 }
                
                 //如果没有开启
                 if(cookieEnabled){
                  return true;
                 }else{
                  return false;
                 }
        },
        add:function(name,value,expireHours){
                 var cookieString=name+"="+escape(value);
                 //判断是否设置过期时间
                 if(expireHours>0){
                  var date=new Date();
                  date.setTime(date.getTime+expireHours*3600*1000);
                  cookieString=cookieString+"; expire="+date.toGMTString();
                 }
                 document.cookie=cookieString;
        },
        get:function(name){
                 var strCookie=document.cookie;
                 var arrCookie=strCookie.split("; ");
                 for(var m=0;m                     var arr=arrCookie[m].split("=");
                     if(arr[0]==name){
                           return unescape(arr[1]);
                     }
                 }
                 return false;
        },
        del:function(name){
                 var date=new Date();
                 date.setTime(date.getTime()-10000);
                 document.cookie=name+"=; expire="+date.toGMTString();
        }

}


4。前面提到的回调函数以及后台的两个页面
最后再说一下前面提到的回调函数Login.checkLogin。登陆后你需要做什么,写在Login.loginSuccess里就行了,最后为了方便使用稍有改变。

/*这里没有检验是否支持cookie,在login弹出的时候检测了.不支持cookie的话,登陆窗口都弹不出来。*/
var Login=
{
        statu: 0,
         /*这就是里登陆成功的话,需要做的处理。通常是把整个页面登陆前后不同的地方处理一下。你可以重载一下*/
        loginSuccess:function(){
                document.getElementById('login_result').innerHTML=Cookie.get('username')+'已经登陆';
                alert('登陆成功了!');
        },
         /*这就是里登陆失败的话,需要做的处理。通常是把整个页面登陆前后不同的地方处理一下。你可以重载一下*/
        loginOutSuccess:function(){
                document.getElementById('login_result').innerHTML=Cookie.get('username')+'刚成功退出';
                alert('退出成功!');
        },
        checkLogin:function(){
                if(Login.statu==1&&Cookie.get('loginStatu')==1){
                        new LoginDialog('login_box').hide();
                        Login.loginSuccess();
                }else if(Login.statu==2&&Cookie.get('loginStatu')==0){
                        Login.statu=0;
                        Login.loginOutSuccess();
                }else if(Login.statu==1){
                        alert('请检查你的用户名,密码以及验证码!');
                }
        },
        getVcode:function(){
        document.getElementById('verify_code').src='vcode.php?cachetime='+new Date().getTime();
        },
        loginOut:function(){
                Login.statu=2;
                document.getElementById('login_submit_iframe').contentWindow.location='loginout.php';
        }
}


后台的代码我就不细说了,各自系统有各自的区别。我这里把测试用的代码贴出来,并说一下这些文件该做什么,你只要保证的你页面有这些作用就行了。


/**
* header里设置的字符编码格式要和你前台的一致,否则当出现双字节字符的时候就会出现乱码.
* 其他的都可以用setCookie的方式,写在cookie里传到前台。
* 其中标志登陆成功的 'loginStatu'必须设为1,其他的就看你的登陆是怎么处理的了
*/
header('content-type:text/html; charset=utf-8');
session_start();
$username = 'phpchina';
$password = 'phpchina';
if($username==$_POST['username']&&$password==$_POST['password']&&$_SESSION['vcode']==$_POST['vcode']){
        setcookie('username','phpchina');
        setcookie('loginStatu','1');
}?>

 

/*验证码程序就不用说了吧!我这里是测试用的,所以就随便截了个时间做验证码*/
session_start();
$_SESSION['vcode'] = substr(time(),-4);
$im = imagecreatetruecolor(40, 20);
$bg = imagecolorallocate($im, 225, 225, 225);
$textcolor = imagecolorallocate($im, 0, 0, 0);
imagefill($im,1,1,$bg);
imagestring($im, 5, 0, 0, $_SESSION['vcode'], $textcolor);
header("Content-type:image/jpeg");
imagejpeg($im);
?>

最后看看LoginDialog类理解全过程:

function LoginDialog(formid)
{
    this.dialog = document.getElementById(formid||'login_box');
    this.overDiv = this.overDiv ||new Lightbox();
}
LoginDialog.prototype =
{
    show:function(){
        if(!Cookie.check()){alert('你的浏览器不支持cookie,无法正常登陆');return}
        else if(Cookie.get('loginStatu')==1){alert('你已经登陆!');return}
        Login.statu=1;
        this.overDiv.show();
        Select.hide();
        Login.getVcode();
        this.dialog.style.display='';
    },
    hide:function(){
        Login.statu=0;
        this.overDiv.hide();
        Select.show()
        this.dialog.style.display='none';
    }
}


主要是看show()
hide()只是还原操作

//当不支持cookie的时候提示错误,并退出
if(!Cookie.check()){alert('你的浏览器不支持cookie,无法正常登陆');return}

//当支持cookie而cookie.loginstatu的值为1时,说明已经登陆。就不用重复登陆了。
else if(Cookie.get('loginStatu')==1){alert('你已经登陆!');return}

//设置Login.statu=1;表示当前正在做登陆操作
Login.statu=1;

//透明背景层显示
this.overDiv.show();

//隐藏select
Select.hide();

//刷新验证码
Login.getVcode();

//显示登陆窗口
this.dialog.style.display='';
在完成以上这些步骤以后,就是分为iframe还是ajax两种方式提交表单了。
而提交完表单后:
如果是iframe形式提交,iframe的onload事件会调用Login.checkLogin(),当check成功时,他会对应调用Login.loginSuccess()和Login.loginOutSuccess()
而ajax则是把Login.checkLogin做为回调函数来激活。
因此,登陆成功后具体做什么由 Login.loginSuccess()和Login.loginOutSuccess()决定。使用的时候,重载一下它们就可以了。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/445128.htmlTechArticle我们先把上面拆解出来的功能完成! 1。透明层(显示与隐藏) 关键是要同时设置下面这几个样式,才能使主流浏览器上都现实透明的效果...
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
网易邮箱和网易邮箱大师的区别是什么网易邮箱和网易邮箱大师的区别是什么Oct 18, 2022 am 11:09 AM

区别:1、网易邮箱是网易公司推出的一个网络邮箱,而网易邮箱大师是网易推出的全平台邮箱客户端;2、网易邮箱的上线时间为2003年9月,网易邮箱大师的上线时间为20014年7月15日;3、网易邮箱只支持自家网易系邮箱,而网易邮箱大师支持网易邮箱、QQ邮箱、Gmail、139邮箱、Hotmail、新浪邮箱等;4、网易邮箱手机客户端只有安卓版,而邮箱大师在全平台都是自己的手机客户端。

游戏版Sora?逆水寒手游发布AI影片生成工具,支持打字输入游戏版Sora?逆水寒手游发布AI影片生成工具,支持打字输入Feb 26, 2024 pm 08:55 PM

近日,逆水寒手游官方发布了全新的AI影片生成工具,玩家通过该工具“打打字就能出大片”。根据官方介绍,功能基于逆水寒游戏本体实现,由AI高度参与。不需要任何设备、演员、特效,只需要打字输入任意角色形象、动作、台词,就可以通过AI在游戏内实时生成相应内容,拍摄成片。同时,支持玩家对细节进行调整,包括角色的服装、妆造、发型、性格、声音等。该功能还支持上传图片/视频,通过AI进行动捕,在游戏内实时生成“游戏内没有”的动作与表情。官方表示,该功能和Sora有相同的愿景,即“让创作空间无穷无尽,让创作门槛接

腾讯光子H工作室在杭州招人 计划做3A开放世界RPG腾讯光子H工作室在杭州招人 计划做3A开放世界RPGFeb 05, 2024 pm 01:45 PM

近期,腾讯互娱招聘公布了一则招聘信息,表明光子H工作室正致力于研发一款内容丰富、3A级别的开放世界RPG项目。此次热招岗位涵盖了UE5工程师、后台、关卡设计、动作场景设计、角色建模、特效及发行等多个领域,而这些岗位的目标工作地点位于网易总部所在地的杭州。

探索金庸笔下江湖之谜:网易《射雕》最新游戏实录视频曝光探索金庸笔下江湖之谜:网易《射雕》最新游戏实录视频曝光Jan 14, 2024 pm 09:54 PM

网易《射雕》近日发布了“三端漫游”测试最新游戏实录视频,视频中展现了不少之前测试中没出现过的动画与场景,对于这究竟是一款怎样的游戏有了更多展示。一起来看看吧。以下为官方原文:三端漫游测试即将开启,项目组感受到了各位少侠对于《射雕》世界的强烈好奇。不开新服不滚服的「世界一服」、150年的原著故事,金庸群侠,南宋风雅,十二时辰同步现实……如此之多的元素组合起来,究竟是怎样一个江湖?为了迎接各位少侠的到来,项目组加班加点,迫不及待地呈现出最新的游戏内容精彩实录,期待各位少侠同享奇妙江湖!三部曲150年

网易否认大规模裁员传闻,称为正常业务调整和人员流动网易否认大规模裁员传闻,称为正常业务调整和人员流动Jan 20, 2024 am 09:12 AM

本站1月19日消息,据财联社报道,针对网传“网易1月开启大规模裁员”等消息,网易内部人士回应:消息不实,系公司正常业务调整和人员流动,公司层面仍在持续招聘优质人才。网易透露,为推动业务良性发展,近期进行了内部资源整合,以加强传媒业务的发展。未来,网易传媒将继续加大对内容赛道的投入,同时探索新技术如AIGC和元宇宙的应用,为内容创作提供更多的技术支持。据界面新闻“电厂”今日稍早报道,网易从12月开始进行了多个业务的裁员,重灾区是网易传媒,游戏部门也有所涉及。本站从报道中获悉,网易传媒的大规模裁员主

春节即将到来,谁将成为“鹅猪大战”的胜利者?春节即将到来,谁将成为“鹅猪大战”的胜利者?Jan 26, 2024 am 08:15 AM

一个月以来,派对游戏这片"战场"硝烟滚滚,腾讯、网易两家大厂打得不可开交。12月15日,"鹅厂新太子"《元梦之星》上线,腾讯宣布首期生态激励投入14亿元,更邀请超600名明星达人做宣传推广,首日买量素材投下了2.7万组,而网易作为守擂方不甘示弱,《蛋仔派对》单日素材投放更是超24万组。从这一个月攻防战的结果来看,《元梦之星》作为新游略有优势。点点数据显示,iOS端流水方面,12月15日至1月15日期间《元梦之星》总收入为1.38亿元,数据在新游中一骑绝尘,而《蛋仔派对》同期总收入约为1.1亿元。

2024年的二次元游戏市场:血战未结束,高手尚存2024年的二次元游戏市场:血战未结束,高手尚存Jan 19, 2024 pm 12:24 PM

哈喽大家好,我是X博士。随着时间来到2024,去年的二次元游戏市场大乱斗,终于也谢幕了。老X我看了下,去年有上线后扑街的,有没上线就扑街的,还有更早上线在去年扑街的。总之就是前赴后继,血流成河,惨绝人寰。但即便是尸横遍野,2024年又已经有十几款二游蓄势待发,在奔赴战场了。比如开年首款二游,又延续传统,上演了上线炸服事件,愣是维护了一整天。让人感慨,原来还有高手。而过几天(1月12号)登场的《白荆回廊》,更是用一线品质,让今年的二游大战迅速升温,直接进入白热化的拼刺刀阶段。那么,去年的二游们究竟

知情人士谈网易、暴雪复合:国服游戏短期内不会上线知情人士谈网易、暴雪复合:国服游戏短期内不会上线Jan 07, 2024 pm 12:10 PM

根据36氪的报道,据称暴雪正在与国内多家游戏厂商进行“国服回归”事宜的洽谈,最终决定与网易重新合作在确定合作之后,双方需要重新组建国服运营团队,并对服务器和相关系统进行测试。因此,游戏上线可能需要等待半年甚至更长时间据多位知情人士向澎湃新闻透露,目前有多个迹象表明暴雪和网易即将重启合作关系。新的国服合作方式尚未最终确定,国服在短期内不会重新上线,春节前恢复的可能性较小据消息人士透露,国服代理方已经确定,预计将在元旦前后进行服务器测试,随后可能需要半年时间才能正式上线本站附前情提要:在2008年8

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.