求几个好的Yy陪玩书画频道一日一书

2添加评论分享收藏感谢收起赞同 1添加评论分享收藏感谢收起写回答注册时间12-10-25UID7813YY号<dd title="90629威望2 臭虫0 人气107 虾贝0 虾币5 经验0 虾米377 在线时间21 小时积分484
名气大虾Lv.6, 积分 484, 距离下一级还需 166 积分
YY号<dd title="90629威望2 臭虫0 虾贝0 虾币5 经验0 积分484
发表于 16-3-21 06:49:11
查看: 2729|回复: 29
本帖最后由 子午随风 于 16-3-22 09:32 编辑
首先,雷迪森,杰特们。 我是永远爱你们的 子午随风
- 来自包养你工作室
啊呀,刚才忘记了。。。。打个广告 ,看这里,看这里 ,YY 30频道长期招收应用开发学员&&- 来自于包养你工作室的全心诚意。(对,这才是这篇帖子的核心) 恩,有兴趣就行! 开课时间待定啊!啊! 主讲小卢还在路上!
接下来就是繁杂的技术分享帖啦。。。 文章末尾包含我们工作室在N多小型项目上实践的php-mysql封装类
项目架构为分布式架构。使用BAE+BOS+MYSQL的解决方案搭建。代码逻辑层由BAE执行和计算。图片文件以及静态文件上传由BOS服务提供。BOS+CDN架构保证文件读取的效率和性能。数据库存储系统数据和文件列表索引保证文件地址的拼接和快速加载。http://test.openyy.com
右上角登陆-账号test 密码 test
经典用户:WE陪玩 http://www.90001we.cn
陪玩后台订单系统+陪玩前台官网系统 100元/月 最低三月起 十个月算一年
内部论坛模块 永久授权
统计分析模块 永久授权
基础系统 和 扩展模块定制– 后台订单系统 以分布式架构+后端集群式服务器保证系统 高流畅性和99.95%的可用性。
15分钟开通,支持绑定自有域名和分配2级域名。
YY知名第三方工作室 – 包养你工作室 荣誉出品。 复制代码登录界面:
16-3-21 06:42 上传
管理员角色界面示例:
16-3-21 06:43 上传
16-3-21 06:43 上传
16-3-21 06:43 上传
16-3-21 06:43 上传
16-3-21 06:43 上传
充值提现功能截图:
16-3-21 06:44 上传
16-3-21 06:44 上传
16-3-21 06:44 上传
用户余额功能完美集成了权限验证方案,由跟路由配置文件和管理员、客服、陪练、客户 权限限制。只允许前三者访问和查询。
—系统路由的引用解决了小型项目的MVC架构。因为项目过小而且非开源项目。故为了实现团队协同和代码管理。以url为路由基础自构了简单路由。登陆注册页面因权限控制问题需要游客访问,故使用了特殊的路由标记处理。然后以 管理员、客服、陪练、客户 四种角色为基础实现功能跳转和权限控制。所有请求经路由进入系统前台或者后端,故权限以页面数据中转控制更为安全。下图第一行示例有数组注明当前页面的可允许角色列表。
16-3-21 06:39 上传
自页面处理请求完成入库简化了项目代码和架构。
16-3-21 06:39 上传
同样继续延续了封装的MySQL处理类。简化sql语句使用和释放资源操作
文章末尾附带我们工作室自用的工具类封装
数据库字段接受过滤使用的是最原始的关键词替换,小型项目,简单暴力有效。function lib_replace_end_tag($str)
{
if (empty($str))
$str = htmlspecialchars($str);
$str = str_replace( ‘/’, “”, $str);
$str = str_replace(“\\”, “”, $str);
$str = str_replace(“&”, “”, $str);
$str = str_replace(“&”, “”, $str);
$str = str_replace(“&SCRIPT&”, “”, $str);
$str = str_replace(“&/SCRIPT&”, “”, $str);
$str = str_replace(“&script&”, “”, $str);
$str = str_replace(“&/script&”, “”, $str);
$str=str_replace(“select”,”select”,$str);
$str=str_replace(“join”,”join”,$str);
$str=str_replace(“union”,”union”,$str);
$str=str_replace(“where”,”where”,$str);
$str=str_replace(“insert”,”insert”,$str);
$str=str_replace(“delete”,”delete”,$str);
$str=str_replace(“update”,”update”,$str);
$str=str_replace(“like”,”like”,$str);
$str=str_replace(“drop”,”drop”,$str);
$str=str_replace(“create”,”create”,$str);
$str=str_replace(“modify”,”modify”,$str);
$str=str_replace(“rename”,”rename”,$str);
$str=str_replace(“alter”,”alter”,$str);
$str=str_replace(“cas”,”cast”,$str);
$str=str_replace(“&”,”&”,$str);
$str=str_replace(“&”,”&”,$str);
$str=str_replace(“&“,”&“,$str);
$str=str_replace(” “,chr(32),$str);
$str=str_replace(” “,chr(9),$str);
$str=str_replace(” “,chr(9),$str);
$str=str_replace(“&”,chr(34),$str);
$str=str_replace(“‘”,chr(39),$str);
$str=str_replace(“
”,chr(13),$str);
$str=str_replace(“””,”‘”,$str);
$str=str_replace(“css”,”‘”,$str);
$str=str_replace(“CSS”,”‘”,$str);
}复制代码由于系统商业保密,技术端解决方案则是用本地数组区分页面权限功能,解决多角色切换或者多角色页面权限限制。在数组中的设置一实时与数据后端刷新的方法验证当前用户是否具备当前页面的访问。解决因session丢失或者cookies破解带来的权限验证问题。比较棘手的就是在分布式架构下这种验证为了保证用户连贯性采用实时数据对比 无形中增加了数据库的压力,但在小型项目中无需缓存的介入。 MySQL的性能还是比人强的 = = ~/*
+———————————————————————–
| 文件概要:MYSQL数据库连接类
| 文件名称:mysql.class.php
| 创建时间:
+———————————————————————–
*/
class mysql {
private $ //服务器名
private $ //数据库用户名
private $ //数据库密码
private $ //数据库名
private $ //MYSQL连接标识符
private $charset = “utf8”; //数据库编码,默认为UTF8
/*=====================================================
* 方法:__construct
* 功能:构造函数
* 参数:$server,$user,$password,$database,$charset
* 说明:实例化时自动连接数据库.
====================================================*/
function __construct($server, $user, $password, $database, $charset) {
$this-&server = $
$this-&user = $
$this-&password = $
$this-&database = $
$this-&charset = $
$this-&connect();
}
/*====================================================
* 方法:connect
* 功能:连接数据库
* 参数:无
* 说明:连接MYSQL服务器,连接数据库,设置字符编码
===================================================*/
function connect() {
$this-&link = mysql_connect($this-&server, $this-&user, $this-&password) or die($this-&error(“数据服务器连接出错,请刷新重试!”));
mysql_select_db($this-&database, $this-&link) or die($this-&error(“数据库连接出错,请刷新重试!”));
mysql_query(“set names ‘$this-&charset'”);
}
/*===================================================
* 方法:query
* 功能:执行SQL
* 参数:$sql
* 说明:对传过来的SQL语句执行,并返回结果$result资源标识符
==================================================*/
function query($sql) {
$result = mysql_query($sql, $this-&link);
if (!$result) {
$this-&error($sql . “语句执行失败!”);
} else {
return $
}
}
/*===================================================
* 方法:fetcharray
* 功能:从结果集中取一行做为数组
* 参数:$result资源标识符
* 说明:需要提供SQL语句执行返回的资源标识符
==================================================*/
function fetcharray($result) {
return mysql_fetch_array($result);
}
/*===================================================
* 方法:fetchall
* 功能:从结果集中取出所有记录做为二维数组$arr
* 参数:$result资源标识符
* 说明:循环取所有记录保存为$arr
==================================================*/
function fetchall($result) {
$arr = array ();
while ($row = mysql_fetch_array($result)) {
$arr[] = $
}
mysql_free_result($result);
return $
}
/*===================================================
* 方法:numrows
* 功能:统计结果集中记录数
* 参数:$result资源标识符
* 说明:统计行数
==================================================*/
function numrows($result) {
return mysql_num_rows($result);
}
/*===================================================
* 方法:numfields
* 功能:统计结果集中字段数
* 参数:$result资源标识符
* 说明:统计字段数
==================================================*/
function numfields($result) {
return mysql_num_fields($result);
}
/*===================================================
* 方法:affectedrows
* 功能:取得前一次MySQL操作所影响的记录行数
* 参数:无
* 说明:取得前一次MySQL操作所影响的记录行数
==================================================*/
function affectedrows() {
return mysql_affected_rows($this-&link);
}
/*===================================================
* 方法:version
* 功能:取得MYSQL版本
* 参数:无
* 说明:取得当前数据库服务器MYSQL的版本
==================================================*/
function version() {
return mysql_get_server_info();
}
/*===================================================
* 方法:insertid
* 功能:取得上一步INSERT操作产生的ID
* 参数:无
* 说明:取得上一步INSERT操作产生的自增字段ID
==================================================*/
function insertid() {
return mysql_insert_id($this-&link);
}
/*===================================================
* 方法:checksql
* 功能:检查SQL语句
* 参数:SQL语句
* 说明:过滤sql注入
==================================================*/
function checksql($db_string, $querytype = ‘select’) {
$clean = ”;
$old_pos = 0;
$pos = – 1;
//如果是普通查询语句,直接过滤一些特殊语法
if ($querytype == ‘select’) {
$notallow1 = “[^0-9a-z@\._-]{1,}(union|sleep|benchmark|load_file|outfile)[^0-9a-z@\.-]{1,}”;
//$notallow2 = “–|/\*”;
if (eregi ( $notallow1, $db_string )) {
exit ( “&font size=’5′ color=’red’&Safe Alert: Request Error step 1 !&/font&” );
}
}
//完整的SQL检查
while ( true ) {
$pos = strpos ( $db_string, ‘\”, $pos + 1 );
if ($pos === false) {
}
$clean .= substr ( $db_string, $old_pos, $pos – $old_pos );
while ( true ) {
$pos1 = strpos ( $db_string, ‘\”, $pos + 1 );
$pos2 = strpos ( $db_string, ‘\\’, $pos + 1 );
if ($pos1 === false) {
} elseif ($pos2 == false || $pos2 & $pos1) {
$pos = $pos1;
}
$pos = $pos2 + 1;
}
$clean .= ‘$s$’;
$old_pos = $pos + 1;
}
$clean .= substr ( $db_string, $old_pos );
$clean = trim ( strtolower ( preg_replace ( array (‘~\s+~s’ ), array (‘ ‘ ), $clean ) ) );
//老版本的Mysql并不支持union,常用的程序里也不使用union,但是一些黑客使用它,所以检查它
if (strpos ( $clean, ‘union’ ) !== false && preg_match ( ‘~(^|[^a-z])union($|[^[a-z])~s’, $clean ) != 0) {
$fail =
}
//发布版本的程序可能比较少包括–,#这样的注释,但是黑客经常使用它们
elseif (strpos ( $clean, ‘/*’ ) & 2 || strpos ( $clean, ‘–‘ ) !== false || strpos ( $clean, ‘#’ ) !== false) {
$fail =
}
//这些函数不会被使用,但是黑客会用它来操作文件,down掉数据库
elseif (strpos ( $clean, ‘sleep’ ) !== false && preg_match ( ‘~(^|[^a-z])sleep($|[^[a-z])~s’, $clean ) != 0) {
$fail =
} elseif (strpos ( $clean, ‘benchmark’ ) !== false && preg_match ( ‘~(^|[^a-z])benchmark($|[^[a-z])~s’, $clean ) != 0) {
$fail =
} elseif (strpos ( $clean, ‘load_file’ ) !== false && preg_match ( ‘~(^|[^a-z])load_file($|[^[a-z])~s’, $clean ) != 0) {
$fail =
} elseif (strpos ( $clean, ‘into outfile’ ) !== false && preg_match ( ‘~(^|[^a-z])into\s+outfile($|[^[a-z])~s’, $clean ) != 0) {
$fail =
}
//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息
elseif (preg_match ( ‘~\([^)]*?select~s’, $clean ) != 0) {
$fail =
}
if (! empty ( $fail )) {
exit ( “&font size=’5′ color=’red’&Safe Alert: Request Error step 2!&/font&” );
} else {
return $db_
}
}
/*===================================================
* 方法:close
* 功能:关闭连接
* 参数:无
* 说明:关闭非永久数据库连接
==================================================*/
function close() {
mysql_close($this-&link);
}
/*===================================================
* 方法:error
* 功能:提示错误
* 参数:$err_msg
* 说明:对给出的错误提示内容给予ECHO
==================================================*/
function error($err_msg = “”) {
if ($err_msg == “”) {
echo “Errno:” . mysql_errno . “&/br&”;
echo “Error:” . mysql_error . “&/br&”;
} else {
echo $err_
}
}
/*===================================================
* 方法:__destruct
* 功能:析构函数
* 参数:无
* 说明:释放类,关闭连接
==================================================*/
function __destruct() {
if(is_resource($this-&link)){
$this-&close();
}
}
}复制代码
(21.4 KB, 下载次数: 36)
16-3-21 06:40 上传
点击文件名下载附件
楼主棒棒的!
注册时间12-8-29UID3655YY号<dd title="9106威望32 臭虫426 人气12095 虾贝25 虾币577 经验35 虾米13606 在线时间11399 小时积分78020
不畏将来 不念过往
秉持心气 何惧远
YY号<dd title="9106威望32 臭虫426 虾贝25 虾币577 经验35 积分78020
发表于 16-3-21 07:01:39
虽然看不懂,但是感觉好厉害的样子
给你99分,还有一分怕你骄傲
注册时间13-7-24UID28949威望3 臭虫0 人气15924 虾贝2 虾币1400 经验3 虾米15023 在线时间20312 小时积分99152
人生,走着走着就懂了
修仙狂虾Lv.24, 积分 99152, 距离下一级还需 10848 积分
威望3 臭虫0 虾贝2 虾币1400 经验3 积分99152
发表于 16-3-21 07:24:10
看得我眼花缭乱 厉害啊
注册时间13-4-9UID18158威望3 臭虫0 人气8000 虾贝1 虾币337 经验5 虾米323 在线时间528 小时积分18279
特邀灌水员
终极大虾Lv.16, 积分 18279, 距离下一级还需 1721 积分
威望3 臭虫0 虾贝1 虾币337 经验5 积分18279
发表于 16-3-21 07:33:57
看不懂。。。。。。但是支持
注册时间13-3-26UID16369YY号<dd title="3威望0 臭虫0 人气565 虾贝0 虾币45 经验0 虾米1835 在线时间105 小时积分1746
YY号<dd title="3威望0 臭虫0 虾贝0 虾币45 经验0 积分1746
发表于 16-3-21 07:47:04
讲的好深奥,装作看不懂的样子→_→
注册时间13-7-28UID44320YY号<dd title="74060威望14 臭虫0 人气5719 虾贝10 虾币1278 经验31 虾米5694 在线时间1116 小时积分24534
头像被屏蔽
YY号<dd title="74060威望14 臭虫0 虾贝10 虾币1278 经验31 积分24534
发表于 16-3-21 09:28:12
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
注册时间14-9-5UID512751YY号威望0 臭虫0 人气1333 虾贝1 虾币246 经验12 虾米3612 在线时间70 小时积分4172
资深大虾Lv.10, 积分 4172, 距离下一级还需 828 积分
YY号威望0 臭虫0 虾贝1 虾币246 经验12 积分4172
发表于 16-3-21 09:40:05
我也要编程…………
注册时间13-7-28UID46737YY号<dd title="444883威望0 臭虫0 人气3197 虾贝1 虾币1067 经验3 虾米4529 在线时间216 小时积分10663
我是一个人物,也是一个废物
超凡大虾Lv.15, 积分 10663, 距离下一级还需 4337 积分
YY号<dd title="444883威望0 臭虫0 虾贝1 虾币1067 经验3 积分10663
发表于 16-3-21 11:15:19
这都是啥啊,看不懂
注册时间13-9-2UID155453YY号威望0 臭虫0 人气3868 虾贝1 虾币1270 经验48 虾米4050 在线时间1723 小时积分25523
低头靠勇气,抬头靠实力.°
独虾求败Lv.18, 积分 25523, 距离下一级还需 4477 积分
YY号威望0 臭虫0 虾贝1 虾币1270 经验48 积分25523
发表于 16-3-21 11:30:41
我去了 看的我眼睛都疼了~
一人一条小毛巾,搖出你的自信心.°
注册时间12-10-25UID7813YY号<dd title="90629威望2 臭虫0 人气107 虾贝0 虾币5 经验0 虾米377 在线时间21 小时积分484
名气大虾Lv.6, 积分 484, 距离下一级还需 166 积分
YY号<dd title="90629威望2 臭虫0 虾贝0 虾币5 经验0 积分484
发表于 16-3-21 11:45:23
荏苒。 发表于 16-3-21 09:28
和楼上的所有人一样,瞬间就蒙了,话说这是什么,挺想知道~
O(∩_∩)O哈哈哈~ 一篇技术分享啦
【稀有】杰出贡献
新版论坛光荣测试人员
【产品】陪玩咖专属勋章
小伙伴App版块签到获得
【星座】双鱼座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】水瓶座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】射手座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】天蝎座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】摩羯座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】天平座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】处女座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】狮子座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】巨蟹座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】双子座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】金牛座勋章
个性化十二星座勋章,用户可用虾米购买
【星座】白羊座勋章
个性化十二星座勋章,用户可用虾米购买
【兑换】职业游虾初级
在线时间超过500小时的虾友
【兑换】职业游虾中级
在线时间超过1000小时的虾友
【兑换】职业游虾终极
在线时间超过10000小时的虾友
虾哥论坛永久荣誉勋章2
永久荣誉勋章【就10枚 不再发放】
【兑换】白富美/高富帅
虾米大于2000的虾友
【兑换】人气王
虾哥论坛人气大于500
【兑换】腰缠万贯
通过虾米购买价格5000虾米富豪象征
【兑换】30频道VIP(永久)
领取后请联系920650上马甲
【兑换】30频道会员
30频道会员勋章(永久)
【内测】新版测试虾
新版测试虾专属勋章
【大池塘】虾哥论坛初级写手
帖子大于100
【大池塘】虾哥论坛中级写手
帖子大于200歪歪陪玩吧-百度贴吧
签到排名:今日本吧第个签到,
本吧因你更精彩,明天继续来努力!
本吧排名:
本吧签到人数:1
可签7级以上的吧50个
本月漏签0次!
成为超级会员,赠送8张补签卡
连续签到:天&&累计签到:天
超级会员单次开通12个月以上,赠送连续签到卡3张
每天在线值班4小时,能稳定每天收到陪玩,做事用心,自信,负责,有底薪高抽成 能接受加陌生人好友,
你做的事情能不能不让我恶心你?本来事情过去就过去了,你要闹是吧?我从来不在这个网咯上搞事情,
我的歪歪号5472799
尊敬的管理员同志很感谢您在百忙之中来读我的XX吧吧主申请信
谊。因为没有吧主使得众位吧友在交流中无法达到沟通顺畅的目的,很多发广告帖的人和对这个贴吧里有
本人李涵,这个骗子到处骗人,在商铺租号还说自己是号主,你说你长着马桶盖的脸,你说你有我们家号
尊敬的管理员同志很感谢您在百忙之中来读我的XX吧吧主申请信
尊敬的管理员同志很感谢您在百忙之中来读我的XX吧吧主申请信
发贴红色标题
签到六倍经验
兑换本吧会员
赠送补签卡1张,获得
助攻总额: 43W
发表后自动分享本贴
使用签名档&}

我要回帖

更多关于 Yy信用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信