[网络]Unity和PHP的Http数据交互

发表于2018-11-20
评论0 4.9k浏览
大家可以经常需要做一些简单的数据统计,可能是使用Socket写的服务端交互,也可能是使用http的交互。为了更契合本篇文章的主题,下面就来看下Unity是如何与PHP的Http数据交互。

PHP注册代码
<?php
include 'Common.php';//引用包含Check方法的php文件,这个是自己写的,一种检测非法手段,可以百度下,也可以不写
$name=Check($_POST["name"]);//PHP获取form内容的方法,$name=$_POST["name"];
$pass=Check($_POST["pass"]);
$con=mysql_connect("127.0.0.1","root","");//连接mysql
if(!$con)
        die("Could not connect:".mysql_error());//如果连接失败则结束
mysql_select_db("CreateData",$con);//选择数据库
mysql_query("set names utf8");//设置utf8,否则中文会乱码噢
$com= mysql_query("select pass from Login where name='$name'");//查询是否有此名称
if(mysql_num_rows($com)!=0)
{
        die("-1");//username already exist;//如果有则结束函数,并打印-1
}
mysql_query("insert into Login(name,pass,lasttime) values('$name','$pass',now())");//插入用户名
$com=mysql_query("select uid from Login where name='$name'");
$com=mysql_fetch_array($com);
$com=$com["uid"];
echo "$com";//打印uid
mysql_close($con);//关闭数据库
?>  
以上便是php代码,每次访问都需要开关一次数据库,可以借助数据库连接池来解决此问题。

Unity访问代码
        public void SendUserCor(string url, string name, string password)
        {
            StartCoroutine(SendUser(url, name, password));
        }
        IEnumerator SendUser(string url,string name,string password)
        {
//这个官方有对应案例
            WWWForm from = new WWWForm();//建立表单
            from.AddField("name", name);//添加数据
            from.AddField("pass", password);
            WWW www = new WWW(url, from);//建立WWW
            yield return www;
            if (www.error != null)
            {
                Debug.Log(www.error);
            }
            else
            {
                Debug.Log(www.text);//获得返回的数据
                //-1 用户名已存在
                //>0 为uid编号
            }
        }
以上便是unity和PHP的数据交互,以及PHP与mysql的交互,看完以后是不是很简单。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引