php注册登录遍写入 遍验证,自动注册登录验证机制的php代码

在phpwind站点后台添加“广告管家”(CNZZ的一款广告投放的应用)的应用,整个“广告管家”通过iframe载入,载入的具体内容根据不同站点显示针对该站点的具体内容。

出于意用性方面的考虑,需要以下二点:

1、首次进入“广告管家”页面自动注册CNZZ账户

2、以后每次进入“广告管家”页面默认为首次注册的CNZZ账户

1405522316_1338.jpg

设计:

1、尝试载入用户帐号和密码信息,此信息保存在数据库或是文本缓存中

2、当存在用户名和密码的情况下向cnzz发送一个请求用来获取Token,将此Token值加入到iframe的地址中,如此就能载入针对该用户的页面

3、当不存在用户名和敏吗的情况下待用cnzz的注册接口,注册成功后返回token,也同样将此Token作为iframe地址的一部分用来载入页面

4、Token值有效期只有一次,即使被截取了也能保证安全性

复制代码 代码如下:

$urls = parse_url($db_bbsurl);

$domain = $urls['host'];

include_once (R_P .'require/admvclient.php');

$adm_oem= new Cnzz_Adm_Oem();

//判断config文件是否存在用户密码

pwCache::getData(D_P . "data/bbscache/adm_config.php");//用户名密码 配置文件

if (isset($adm_user) && isset($adm_pwd)) {

$request = array("adm_user"=>$adm_user,"adm_pwd"=>$adm_pwd,'cms'=>'pw');

$token = $adm_oem->get_appkey_once($request);

if ($token<0){

if($token==-1){

adminmsg('传递参数为空或传递参数非数字');

}else if($token==-2){

adminmsg('传递参数password错误');

}

}else{

$apikey = $token['adm_key'];

}

}else{

$Key = md5($domain.'KclGiq7H');

$request = array('cms'=>'pw','domain'=>$domain,'key'=>$Key);

$token = $adm_oem->reg_user_once($request);

if ($token<0){//异常

if($token==-1){

adminmsg('key有误');

} else if($token==-2){

adminmsg('域名长度有误(1~64)');

} elseif($token==-3){

adminmsg('域名输入有误(比如输入汉字)');

} elseif($token==-4){

adminmsg('域名插入数据库有误');

} elseif($token==-5){

adminmsg('IP用户调用页面超过阀值,阀值暂定为10');

}

} elseif (is_array($token) && isset($token)){

$adm_user = $token['adm_user'];

$adm_pwd = $token['adm_pwd'];

$apikey = $token['adm_key'];

pwCache::setData(D_P.'data/bbscache/adm_config.php',"<?php \r\n\$adm_user=".$adm_user.";\r\n\$adm_pwd=".$adm_pwd."\r\n?>");

}

}

?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Wicket:记住我的功能

在Web应用程序中&#xff0c;具有“记住我”功能非常普遍&#xff0c;该功能使用户每次访问我们的网站时都能自动登录。 可以使用Spring Security来实现这种功能&#xff0c;但我认为将基于请求的身份验证框架与基于组件的Web框架结合使用并不是最好的主意。 这两个世界不能很好…

Ubuntu 安装中文

系统环境&#xff1a; 1. 官网 http://pinyin.sogou.com/linux/ 下载安装包。 2. 先运行 apt-get update 。 3. 再运行 apt-get -f install 。 4. 再运行 可能有的UBuntu系统自带了。 5. 如果下载的搜狐输入法安装包的格式为 .deb 的&#xff0c; 运行 &#xff1a; dpk…

JSF组件库–质量不只是零缺陷

自从我上次研究三个主要JSF组件库的质量以来&#xff0c;已经有一段时间了。 2009年12月&#xff0c;我开始比较RichFaces&#xff0c;Primefaces和ICEfaces的整体软件质量 。 从那时起&#xff0c;事情发生了变化&#xff0c;从现在开始&#xff0c;我想重新评估和更新它。 我…

字符串匹配(KMP 算法 含代码)

主要是针对字符串的匹配算法进行解说 有关字符串的基本知识传统的串匹配法模式匹配的一种改进算法KMP算法网上一比較易懂的解说小样例1计算next 2计算nextval代码有关字符串的基本知识 串&#xff08;string或字符串&#xff09;是由零个或多个字符组成的有限序列&#xff0c;一…

serialVersionUID的作用以及如何用idea自动生成实体类的serialVersionUID

转载&#xff1a;http://blog.csdn.net/liuzongl2012/article/details/45168585 serialVersionUID的作用&#xff1a; 通过判断实体类的serialVersionUID来验证版本一致性的。在进行反序列化时&#xff0c;JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVer…

JBoss BRMS最佳实践– BPM流程初始化层的提示

我过去发布过一些有关迁移策略的文章&#xff0c;仔细研究了流程层&#xff0c;并提供了一些有关jBPM的最佳实践 &#xff0c;它们都涉及到BPM策略的非常具体的部分。 我想重新讨论最佳实践的主题&#xff0c;然后在智能集成企业级别上&#xff0c;我们讨论使用JBoss BRMS对您的…

跨站点脚本(XSS)和预防

如OWASP网站&#xff08;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS&#xff09;&#xff09;所述&#xff0c;跨站点脚本&#xff08;XSS&#xff09;攻击的变种几乎是无限的。 在这里&#xff0c;我建议使用基于Servlet筛选器的解决方案来清理HTTP请求。 攻…

NoSQL入门第一天——NoSQL入门与基本概述

一、课程大纲 二、入门概述 1.为什么用NoSQL 单机MySQL的年代&#xff1a; 一个网站的访问量一般都不大&#xff0c;用单个数据库完全可以轻松应付。      我们来看看数据存储的瓶颈是什么&#xff1f;        1.数据量的总大小 一个机器放不下时。&#xff08;现…

C语言结构体及函数传递数组參数演示样例

C语言结构体及函数传递数组參数演示样例 注&#xff1a;makeSphere()函数返回Sphere结构体&#xff0c;main函数中。调用makeSphere()函数&#xff0c;传递的第一个參数为数组&#xff0c;传递的数组作为指针。posted on 2017-07-30 18:42 mthoutai 阅读(...) 评论(...) 编辑 收…

AIX下RAC搭建 Oracle10G(六)dbca建库

AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G&#xff08;六&#xff09;dbca建库 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX203 AIX204 交换机 SAN光纤交换机 存储 SAN T3存储 大纲流程例如以下&#xff1a; 第一部分&#xff1…

JavaOne 2012:掌握Java部署

在吃完一次JavaClass 2012午餐会的意大利经典组合后&#xff0c;我前往希尔顿帝国宴会厅B观看了演示“掌握Java部署”。 来自Oracle的发言人是Mark Howe和Igor Nekrestyano Howe表示&#xff0c;部署团队的目标是帮助Java开发人员将其应用程序部署到所选平台。 他首先讨论了“功…

php 提高吞吐量,如何提高网站的吞吐量

吞吐量定义百科吞吐量是指对网络、设备、端口、虚电路或其他设施&#xff0c;单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。以上的定义比较宽泛&#xff0c;定义到网站或者接口的吞吐量是这样的&#xff1a;吞吐量是指系统在单位时间内处理请求的数量。这里有一…

使用您自己的规则在Eclipse中自定义PMD

PMD是非常好的Java代码扫描程序&#xff0c;可帮助您避免潜在的编程问题。 它可以轻松扩展以满足您的需求&#xff0c;并且本文将为您带来与JPA的Enumerated注释用法相关的自定义PMD规则的简单示例。 在继续阅读之前&#xff0c;您应该检查我以前的文章之一-JPA-Enumerated def…

yii2之DetailView小部件

DetailView小部件用于展示单条数据记录&#xff0c;可配置属性很少&#xff0c;使用也很简单&#xff0c;直接贴代码&#xff0c;一看就懂&#xff01; yii小部件数据小部件DetailView的使用示例&#xff1a; <? DetailView::widget([model > $user,//模型对象&#xff…

gitlab的安装和基本维护

基本介绍 GitLab是一个自托管的Git项目仓库&#xff0c;可以自己搭建个人代码管理的仓库&#xff0c;功能与github类似。 安装 操作系统&#xff1a;CentOS6.5 gitlab官网下载安装地址&#xff1a;https://about.gitlab.com/downloads/#centos6 1.安装依赖的包 yum install cur…

unity中怎么在InspectorI面板加LOGO

转载于:https://www.cnblogs.com/unitySPK/p/7278925.html

重写到边缘–充分利用它! 在GlassFish上!

现代应用程序开发的一个重要主题是重写。 自从Java Server Faces引入和Java EE 6中新的轻量级编程模型以来&#xff0c;您一直在努力使用漂亮&#xff0c;简单&#xff0c;可添加书签的URL。 PrettyFaces很久以来就一直存在&#xff0c;即使它在3.3.3版本中可以说是成熟的&…

php yii框架路由,yii框架路由配置

首先要在服务器配置(httpd.conf)中开启重写模块#开启重写模块&#xff0c;将其前面的#去掉LoadModule rewrite_module modules/mod_rewrite.so#Directory中允许覆盖开启## Possible values for the Options directive are "None", "All",# or any combinat…

前端面试总结二

一、响应式和自适应的区别&#xff1a; 联系(相同点)&#xff1a; 响应式设计(responsive design)和自适应设计(adaptive design)都是用来解决网页在不同分辨率的屏幕和设备上展示的一项技术(或者说一种方法)。 区别&#xff1a; 响应式设计&#xff1a;通过CSS Media Queries(…

【看番杂感】Clannad系列观后感(剧透慎入)

前言 之前看第一季时&#xff0c;弹幕里总有人在刷“写作cl&#xff0c;读作人生”。当时我想&#xff0c;盲目把一部催泪番上升到人生的高度&#xff0c;这未免有些武断&#xff0c;也是对作品本身的不尊重。当看完第二季的我蓦然回首&#xff0c;发现这才是最最贴切的评价&am…