我有一个用C#编写的Minecraft软件,我想把心跳发送到我的网站。我有办法发送已经写好的节拍。
if (Server.Uri == null) return;
string uri = "http://GemsCraft.comli.com/Heartbeat.php";
// create a request
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
// turn request string into a byte stream
byte[] postBytes = Encoding.ASCII.GetBytes(string.Format("ServerName={0}&Url={1}&Players={2}&MaxPlayers={3}&Uptime={4}",
Uri.EscapeDataString(ConfigKey.ServerName.GetString()),
Server.Uri,
Server.Players.Length,
ConfigKey.MaxPlayers.GetInt(),
DateTime.UtcNow.Subtract(Server.StartTime).TotalMinutes));
request.ContentType = "application/x-www-form-urlencoded";
request.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
request.ContentLength = postBytes.Length;
request.Timeout = 5000;
Stream requestStream = request.GetRequestStream();
// send it
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Flush();
requestStream.Close();
/* try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Logger.LogToConsole(new StreamReader(response.GetResponseStream()).ReadToEnd());
Logger.LogToConsole(response.StatusCode + "n");
}
catch (Exception ex)
{
Logger.LogToConsole("" + ex);
}*/
}
现在,我希望能够在PHP中检索心跳,将其上传到SQL数据库,然后在将显示在网页上的表中显示每个用户的服务器
我该怎么做?
portforwardpodcast的答案不太适合您的目的,下面是您思考的过程
服务器访问以下页面:heartbeat.php?端口=25565&最大玩家数=25&玩家=2&name=奶酪_Pizza_Palace
然后,您的PHP脚本将执行以下操作。。。
- 遍历每个值,确保它们都是您希望的类型(整数/字符串)
- 连接到数据库
- 如果数据库中的服务器已经存在,则更新该服务器;如果不存在,则创建该服务器
- 返回一些值,以便服务器知道它已成功完成
并显示服务器
- 获取所有"活动"服务器
- 循环浏览它们并显示每一个
你需要弄清楚的事情:
- 如何确定正常运行时间
- 如何确定"活动"服务器
- 如何更新/创建MySQL条目
- 如何(正确)连接到数据库。我建议您使用PDO,因为您使用的是PHP。学习起来有点困难,但它比直接编写查询安全得多
- 如何循环遍历所有GET变量
狩猎得好!
我会创建一个简单的php页面,接受一个get变量。类似于CCD_ 1,其中编号为CCD_。然后你需要重新使用你的c#在网站上做一个简单的get请求。最后,您的php应该插入到一个mysql表中,其中包含一列id
、timestamp
、server_id
等。
首先,您需要从请求中提取数据。php中的$_REQUEST变量很好,因为它同时适用于GET和POST:
http://php.net/manual/en/reserved.variables.request.php
从var_dump开始或回显所需的字段。一旦你可以将所需的数据放入变量中,你就完成了第一部分。在下一部分中,您需要在MySQL中创建一个数据库和表。最好的工具是phpmyadmin。如果你有一个像godaddy(或其他一些)这样的主机,你可以从控制面板上找到它。如果没有,您可能需要自己安装上传phpmyadmin文件。这是一个非常简单的工具:
http://www.youtube.com/watch?v=xxQSFHADUIY
一旦数据库有了正确的列,就需要插入php文件中的数据。这个页面应该有帮助:
http://www.w3schools.com/php/php_mysql_insert.asp