php获取js变量:document.write(string);
$name=" <script type='text/javascript'> document.write(getName()); function getName(){ var str=window.location.search; var args=str.split('?'); var retval=''; if(args[0]==str){return '';}//参数为空; return args[1].split('=')[1]; } </script>"; //其实这样是得到了变量,但也其实是一个啰嗦,可以直接用$_GET['KEY']得到。
AS3.0获取php变量:
//------signClass------- //加载目标php文件函数: private function loaded(event:Event):void { if(this.data.strings) { var str:String=this.data.strings; var arr=this.data.strings.split("<br/>"); trace(arr[0].split("name=")[1]); trace(arr[1].split("pasd=")[1]); trace(arr[2].split("mail=")[1]); trace(arr[3].split("sign=")[1]); if(arr[3].split("sign=")[1]=="succeed") { this.isSign=true; info=Singleton.GetSingleton(UserInfo as Class); info.user_pswd=arr[1].split("pasd=")[1]; info.userEmail=arr[2].split("mail=")[1]; info.userName =arr[0].split("name=")[1]; this.father.SIGNED=this.father.STATES["succeed"]; }else if(arr[3].split("sign=")[1]=="faild"){ trace("运行到此处"); this.isSign=false; this.father.SIGNED=this.father.STATES["faild"]; }else { trace("unormal"); this.father.SIGNED=this.father.STATES["error"]; } } //trace(this.isSign); }
$sql="SELECT * FROM chinesechess WHERE user_email='{$_email}'and password='{$_paswd}' and isActivated='{$_activate}'"; $result = mysql_query($sql,$con); $source=mysql_fetch_array($result); if($source) { $sign="succeed"; $name=$source['nickname']; $pasd=$source['password']; $mail=$source['user_email']; }else { $sign="faild"; $name="null"; $pasd="null"; $mail="null@cn.com"; } echo 'strings=name='.$name.'<br/>'; echo 'pasd='.$pasd.'<br/>'; echo 'mail='.$mail.'<br/>'; echo 'sign='.$sign.'<br/>';
as3.0获取后台数据必须以后台输出的键值对的明文来获取。
php获取AS3.0变量:
/* *@function : public signClass 构造函数 *@parameter: * path String php文件路径 * obj Main Main类 * email String 邮件字符串 "NULL" * password String 密码字符串 "1234" */ public function signClass(path:String,obj:Sign_mc,email:String="NULL",password:String="1234") { this.father=obj; _var=new URLVariables(); request=new URLRequest(path); request.method=URLRequestMethod.POST; _var._email=email; _var._pasd=password; request.data=_var; this.dataFormat = URLLoaderDataFormat.VARIABLES; this.load(request); this.addEventListener(Event.COMPLETE,loaded); //trace(password); }
AS3.0客户端通过 URLVariables对象就值以URLRequest的method=URLRequestMethod.POST方法发送给php,php端直接使用$_POST['_email']获取到就OK。
phpMyAdmin中设置主键和A_I:在新建数据表里面其实就可以设置A_I,但是好像并没有找到设置主键的钥匙按钮,后来才发现是我的数据里面的[结构]那一栏不知道为什么总是打不开,偶然打开了一次,设置主键的按钮在这一栏中,真是害得我好苦。然后就是不知道怎么处理数据插入失败后再次插入成功的时候主键增长的时候回将失败的次数也计算在里面,最后我在php端直接将失败的的操作该屏蔽掉了才解决了这个问题,但我想应该有更好的办法吧。
二.服务器端:
游戏服务器其实是我借用别人的,只是在基础上根据自己需要修改了一些。
1.swf客户端连接到服务端:相信swf客户端连接到服务端好多人都很头疼,我在好几个flash群里面遇到过好多关于安全沙箱问题,以及socket连接。其实只要安全策略文件配置正确一般都没有问题,还有会提示打开843端口的情况,是本地默认关闭这个端口造成的。在 本地防火墙->高级设置->进站规则->新建规则 里面可以添加自己允许的端口号。
as3.0 socket连接到java服务端:
//ServerThread .java package com.feiruo.Chess; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class ServerThread extends Thread { Server father; boolean tag=true; String xmlString="<cross-domain-policy>"; ServerSocket ss; public ServerThread(Server server) { this.father=server; this.ss=father.ss; this.xmlString="<?xml version="1.0"?>" + "<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">" + "<cross-domain-policy>" + "<allow-access-from domain="*" to-ports="8082" />" + "</cross-domain-policy>