浅谈用PHP开发WAP游戏

浅谈用PHP开发WAP游戏

ID:47689646

大小:33.50 KB

页数:4页

时间:2019-10-23

浅谈用PHP开发WAP游戏_第1页
浅谈用PHP开发WAP游戏_第2页
浅谈用PHP开发WAP游戏_第3页
浅谈用PHP开发WAP游戏_第4页
资源描述:

《浅谈用PHP开发WAP游戏》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、动这一动作,首先地图的所有数据都是保存在服务器上的,无论是数组还是DB,而要表示当前玩家所在的位置在哪,也仅仅是把地名,本地的描述信息,图片,及NPC等有关信息生成一个页面发送给客户端,就这么简单。而玩家要从本地移动到其它地点,也仅仅需要点击一个用POST或GET传递地点ID的链接便可完成,在程序方面,当前程序能够接收到一个合法的地点ID时,便将本ID更新到玩家的记录中去,并生成对应本地的信息生成页面输出即可。挺简单的吧。详细的,我想应该从三方而介绍一些做WAP游戏所需要注意的:安全,效率,延展。安全性,

3、应该是一个游戏产品所最需要注重的,试想一个再有想法再好玩的游戏,如果不安全,导致玩家的利益时刻都有可能被盗,或是整个游戏的平衡性被几个受捣乱的玩家通过漏洞弄得乱78糟,这样的游戏,也不会受人欢迎的。我个人也在这些方面吃过些亏,所以把它放在最前面。安全性,一般看來,没有黑客就没有这个问题,対于用PHP这样的服务器端程序来说,安全性的问题基本只来源于我们开发的程序本身,而黑客其实就是那些有意捣乱的用户。简单写一些我所知道的问题和解决办法:用户输入:这是最基本的,也是最可能被忽视的一点。41+(-10000/,

4、这是什么?这就是,黑客'最常用的一种方法,它多出现在当你的程序需要用户输入一个数字时,比如,玩家可以把自己钱送给其他玩家,逻辑很简单,看看自己有没有这么多钱(if($my_money>$give_money)()),有的话,给自己扣钱,并给其他玩家加钱。完成。但你试试下血这段程序:复制PHP内容到剪贴板PHP代码:$a){echo"xx";)?>结果如何?你很吃惊嘛?就这样,你的程序有BUG了,还没完,你再试下下面这条SQL:"updateuser_moneysetmone

5、y=money-H.$a.MWHEREuser_id=155"结果又如何,你给两个人都加了钱,谁都不亏(听说那个收钱的是送钱的人的小号),你的游戏和你亏了。这样下去,你的游戏货币越来越不值钱,游戏也变得不受欢迎。怎么解决?过滤!用适当的方法过滤,让他的输入,是一个真实安全的数字,是你真正你需要的。(关于数字的过滤方法,我先卖个关子,因为后面还有和数字有关的更危险可能你觉得更不可思议的事)类似的问题还有,用户在发言时输入了一个<,结果是你在输入这条发言时,就会有相当一部分显示不了这个页面,你的游戏也受到了怀

6、疑。数字:过滤数字,你首先想到的是什么方法或函数?intval?嗯,对于“1+(・10000广这样的输入,这个没有问题,函数返回值是1,这个数字是安全的。注意!这个数字是安全的并不代表就都安全了,你再试试下面这个复制PHP内容到剪贴板PHP代码:看到了嘛,又吓一跳吧,这都是血的教训啊。因为2200000000这个数己经超过了INT的取值范围(强行转化)。相类似的问题还有,在MYSQL5>

7、'(目前我不知道能不能设置),如果把字段设成UNSIGNE

8、D,那么0-l=42XXXXXXXXo这里我提供两种解决办法:1,用abs换掉intval,经初步测试,abs这个函数是可信的,它不会对数字造成什么不良影响。2,使用高精度函数及相关,如:bcadd(),bccompO,ctype_digi()/*注意,这些函数的参数一定得是字符串型!*/微观操作:同样用送钱的这个例子,你过滤了用户输入,用bccomp比较了用户要送的和他所有的,成功,可以送钱了。别忙,还有一个你可能不太相信但又确实存在的问题。有一句古话:我们不可能两次跨过同一条河。它说的是时间是变化的,

9、所以事物也是变化的。你有没有想如,如杲在你验证过了他是不是有这么多钱可送到你用UPDATE语句为他改钱的这-瞬间,另一个人把他的钱取走了?不可能吧?可能,非常可能。至少在我做游戏的这段时间,这种问题不止一次的出现过,要知道,比秒小的,有毫秒,比毫秒小的有微秒,比微秒小的有皮秒….所以一切都可能发生。所以我个人一般在PHP程序验证之后,还会在UPDATE语句之中,再做一次验证,即在WHERE语句中多加一句ANDMONEY>$a,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。