ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:26.50KB ,
资源ID:11804735      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/11804735.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(浅谈用PHP开发WAP游戏.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

浅谈用PHP开发WAP游戏.doc

1、浅谈用PHP开发WAP游戏 WAP游戏,是游戏大家庭中的丑小鸭:近乎为0的美工,仅仅由一些文字符号组成的游戏界面,却可以完成几乎所有大型游戏的功能。目前比较有名的一些WAP游戏比如QQ的西游,新浪的江湖,还有稀饭的学院等。当然,这些都是些MMORPG,为自己网站做个广告,稀饭的游戏比较有特色,是业内公认的,从养成,MMO甚至竞速,这些游戏都是别的网站所没有的。WAP游戏是没有客服端的,仅仅是通过网页页面上的链接,输入框,等等进行游戏,所以实际上,所有的逻辑运行都是在服务器端,举个简单的例子说:比如在地图上移动这一动作,首先地图的所有数据都是保存在服务器上的,无论是数组还是DB,而要表示当前玩

2、家所在的位置在哪,也仅仅是把地名,本地的描述信息,图片,及NPC等有关信息生成一个页面发送给客户端,就这么简单。而玩家要从本地移动到其它地点,也仅仅需要点击一个用POST或GET传递地点ID的链接便可完成,在程序方面,当前程序能够接收到一个合法的地点ID时,便将本ID更新到玩家的记录中去,并生成对应本地的信息生成页面输出即可。挺简单的吧。 详细的,我想应该从三方面介绍一些做WAP游戏所需要注意的:安全,效率,延展。 安全性,应该是一个游戏产品所最需要注重的,试想一个再有想法再好玩的游戏,如果不安全,导致玩家的利益时刻都有可能被盗,或是整个游戏的平衡性被几个受捣乱的玩家通过漏洞弄得乱78糟,

3、这样的游戏,也不会受人欢迎的。我个人也在这些方面吃过些亏,所以把它放在最前面。安全性,一般看来,没有黑客就没有这个问题,对于用PHP这样的服务器端程序来说,安全性的问题基本只来源于我们开发的程序本身,而黑客其实就是那些有意捣乱的用户。简单写一些我所知道的问题和解决办法: 用户输入:这是最基本的,也是最可能被忽视的一点。‘1+(-10000)’,这是什么?这就是‘黑客’最常用的一种方法,它多出现在当你的程序需要用户输入一个数字时,比如,玩家可以把自己钱送给其他玩家,逻辑很简单,看看自己有没有这么多钱(if($my_money>$give_money)()),有的话,给自己扣钱,并给其他玩家加钱

4、完成。但你试试下面这段程序: 复制PHP内容到剪贴板 PHP代码: $a) {echo "xx";} ?> 结果如何?你很吃惊嘛?就这样,你的程序有BUG了,还没完,你再试下下面这条SQL: "update user_money set money=money-".$a." WHERE user_id=155" 结果又如何,你给两个人都加了钱,谁都不亏(听说那个收钱的是送钱的人的小号),你的游戏和你亏了。这样下去,你的游戏货币越来越不值钱,游戏也变得不受欢迎。 怎么解决?过滤!用适当的方法

5、过滤,让他的输入,是一个真实安全的数字,是你真正你需要的。(关于数字的过滤方法,我先卖个关子,因为后面还有和数字有关的更危险可能你觉得更不可思议的事) 类似的问题还有,用户在发言时输入了一个<,结果是你在输入这条发言时,就会有相当一部分显示不了这个页面,你的游戏也受到了怀疑。 数字:过滤数字,你首先想到的是什么方法或函数?intval?嗯,对于“1+(-10000)”这样的输入,这个没有问题,函数返回值是1,这个数字是安全的。注意!这个数字是安全的并不代表就都安全了,你再试试下面这个 复制PHP内容到剪贴板 PHP代码:

6、00); ?> 看到了嘛,又吓一跳吧,这都是血的教训啊。因为2200000000这个数已经超过了INT的取值范围(强行转化)。相类似的问题还有,在MYSQL5中(目前我不知道能不能设置),如果把字段设成UNSIGNED,那么0-1=42XXXXXXXX。 这里我提供两种解决办法: 1,用abs换掉intval,经初步测试,abs这个函数是可信的,它不会对数字造成什么不良影响。 2,使用高精度函数及相关,如: bcadd(),bccomp(),ctype_digi()/*注意,这些函数的参数一定得是字符串型!*/ 微观操作:同样用送钱的这个例子,你过滤了用户输入,用bccomp比较

7、了用户要送的和他所有的,成功,可以送钱了。别忙,还有一个你可能不太相信但又确实存在的问题。有一句古话:我们不可能两次跨过同一条河。它说的是时间是变化的,所以事物也是变化的。你有没有想如,如果在你验证过了他是不是有这么多钱可送到你用UPDATE语句为他改钱的这一瞬间,另一个人把他的钱取走了?不可能吧?可能,非常可能。至少在我做游戏的这段时间,这种问题不止一次的出现过,要知道,比秒小的,有毫秒,比毫秒小的有微秒,比微秒小的有皮秒....所以一切都可能发生。所以我个人一般在PHP程序验证之后,还会在UPDATE语句之中,再做一次验证,即在WHERE语句中多加一句 AND MONEY>$a,这样的一个

8、条件,基本不会对SQL执行效率产生什么影响,还能保证安全性,加上是很有意义的而语句是否执行成功,才是能否给对方加钱的真正条件。相关的还有一点要说明,在做这样操作时,一定要把对玩家有损失的操作放在前面执行,类似给他加钱这样的能让他HAPPY的操作放在后面,因为在没有引入事务的数据库处理机制之前,程序中止也是可能且可怕的。对于可能出现多人抢同一资源的问题,也应该有很好的先后判断,这点不细说了,但同样重要。 日志:这个东西很重要,要知道,如果程序出了问题,找到是哪里出的问题,问题影响了多少人的多少数据,如何恢复,就全靠它了。日志一般分两种,一种是游戏中需要用户的,比如救济品每人只能领一次,就是通过

9、它来控制(其实是不应该算是程序日志范畴,只提一下)。另一种就是真正的日志,比如谁在什么时候给了谁多少钱他输入的是什么数字,操作前送出方有多少钱,操作后又有多少。如果有了这样的日志记录,我想对钱这类重要数据流向,就很清晰了。在程序没有正常的运行很长时间,经过时间的考验之前,这类日志数据是相当必要的。 总得来说,游戏产品和其他类型产品相比,对精确性的要求更高,所以程序每一步执行都要求是精确且在出错时是可恢复的。另外记住:用户,是绝不能相信的!!! 效率 这点我觉得不用多说什么,作为一个程序开发人员,程序的执行效率是我们的本职工作之一。 个人认为,一个程序的执行效率,很大程度取决于程序的设计

10、针对某一问题提出想法,并用最合理、高效、低成本的方式解决和实现它,这是我对设计的理解。)所以在进行某系统的开发之前,一定要先把遇到或可能遇到的问题分析清楚,想明白解决方案,并准备好备用的或是在出现问题时的应急方案。(这也是我们头对我们的要求:)具体说基本就是对数据结构和程序逻辑的分析,可能的话,写出一份策划案或是重点问题清单,在实际开发时,只要敲键盘就好了。这样做也能很好的提高程序开发效率。而在程序执行效率上,我不多说了,前人有很多很好的例子,说明我们可以学到,我也就不显丑了(没这个自信)。举一个例子吧,我个人最早是看到DZ论坛的数据结构上这么用的:统计一个论坛下面有多少个主题,可以在本论坛

11、的记录里增加一个用于统计的字段比如stat_threadnum,每次有人发贴删贴时更新这个字段,这样虽然有了一定冗余,但就不用每次都COUNT去了,这是个好办法。别的就不多说了。 延展 其实这个问题,就已经不完全是一个程序开发人员的工作能力上的问题,而是所谓‘职业操守’的问题了。除了不能相信的用户,还有一类人是不能相信的:策划。(这并没有褒贬之意)为什么?因为作为一个策划,他的职责就是求变。所以他们总会想出新的东西来,这也就意味着,你的程序产品,要不断进行修改,再修改,这是必然的。所以把程序写‘活’,也是你必须学会的。(我个人认为,面向对象,其实就是为了解决这一问题。)举一个例子,见过一段

12、这样的程序,它的作用是用玩家的几种道具在一定条件下换取另一种道具。程序的实现方式是用SWITCH。结果是,当每次要添加新的兑换方法(比如加入用两个梨换一个苹果),那就要不断添加新CASE语句。使得这一功能足足用了好几百行来实现。虽然可能换一个数组来写,可能(只是可能)效率上不如SWITCH,但延展性就要好得多(文件也小)。所以能够预测到策划下一步可能会怎么做也算是一个好的开发人员的能力之一。(在下一次改动之时,让自己更轻松一些不也是件好事嘛?) 关于注释和文档。游戏程序的逻辑,相对要更复杂一些,所以,足够且清楚的注释,是当其他同事接手你的工作时,你给它最好的礼物:)当然,如果你能把程序写的清楚些,命名得更准确些,程序本身就是很好的注释。而文档,作为注释的扩展,更是必要的东西。我把它们也算作在程序的延展性之中了。 后记:写完之后,觉得没写出什么东西,还是太浅薄,回头想起什么再补充吧。 那啥一下:感谢朱SIR的培养,他的思维逻辑真清楚,且从不放弃一点小的细节,这是很有帮助的。感谢NESTA的帮助,且为我们的应用层产品提供了坚实的系统层后盾。感谢NATHAN不留余力的帮助,我跟他学到了很多

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服