Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity C#将变量发送到PHP服务器_C#_Php_Post_Unity3d - Fatal编程技术网

Unity C#将变量发送到PHP服务器

Unity C#将变量发送到PHP服务器,c#,php,post,unity3d,C#,Php,Post,Unity3d,导言 我正在努力找出哪里出了问题,我读了unity的答案,解释了如何在unity(C#)中发布数据,然后我读了网站,解释了如何使用php中的get/post/request来接收数据。此后,我编写了这段代码,以便从unity发布带有值的var1,并在我的php服务器代码上接收它,然后回显它以记录它,并检查是否发生了正确的情况 C#(统一) 服务器代码(使用Netbeans IDE的Php) 然而,当我在编辑器中运行unity代码时,当我打开网页时,仍然会在网页上得到一个失败的结果 统一编辑器

导言

我正在努力找出哪里出了问题,我读了unity的答案,解释了如何在unity(C#)中发布数据,然后我读了网站,解释了如何使用php中的get/post/request来接收数据。此后,我编写了这段代码,以便从unity发布带有值的
var1
,并在我的php服务器代码上接收它,然后回显它以记录它,并检查是否发生了正确的情况

C#(统一)

服务器代码(使用Netbeans IDE的Php)


然而,当我在编辑器中运行unity代码时,当我打开网页时,仍然会在网页上得到一个失败的结果

统一编辑器

网页

netbeanside(不确定是否重要)


感谢您阅读本文,我想这里有一个简单的解决方案,我已经查阅了无数关于php unity communication的其他问题,但是我仍然没有找到它,所以我希望这不是浪费时间重复另一个问题,而且因为它是简化的,所以它可以为其他人提供一个有用的示例。所以,请随意提问,并希望回答我的问题。这是我第一次正确地使用PHP(因此我的代码中仍然有一个hello world),我已经习惯于在unity中使用C#,并将我的一般编程知识描述为相当有限。谢谢。

这样做是为了确保PHP按其应有的方式处理事情:

<?php
if (isset($_REQUEST["var1"])) {
    echo "Received ". $_REQUEST["var1"]. " success!";
    exit();
} else {
    http_status_code(400);
    echo "Request Failed";
}

不太清楚PHP是如何工作的,但在ASP.NET中,您所做的一切毫无意义。除非在PHP中,您神奇地保存了发送的数据(我不认为会发生这种情况),否则当您导航到该页面时,它将是一个全新的请求,并且不会有POST数据,因此它将始终是一个故障为了用您的浏览器检查它,请将“?var1=hello”添加到地址我不明白为什么有“POST”的HTML代码方法,您必须使用开发工具或创建htmlform@CamiloTerevinto是的,我想知道,但我认为从其他的例子,它可能会工作,有一个函数,它被调用时,有一个新的职位收到?或者一个类似于PHP中unity的更新函数?好的,我已经按照描述更改了PHP代码,当我将其放入浏览器时,我看到“Received testvalue success!”但当我投入时,我什么也得不到,所以没有“请求失败”。但尽管如此,这不允许我在c#unity代码中输入一个变量,并通过echo在unity中输出它,当我在c#中更改web链接时,我也没有得到任何更改。希望你能理解这一点,不像我@apokryfos@g_l看到您的页面,我仍然看到
,这意味着您不能使用
http\u status\u code
,因为您已经开始发送响应正文。删除所有其他文本(甚至doctype),只保留此处的内容。谢谢,我会这么做,我假设它只是NetbeansYep的一部分,但如何在php脚本中访问此变量,并证明我已从unity脚本收到“hello”@apokryfosYou只能通过将数据传递回unity脚本并在那里进行验证,或者编写某种日志条目(基本上是执行
file\u put\u内容(“/tmp/dump.txt”,$\u请求[“var1”])来验证结果
问题在于,如果您从unity脚本而不是浏览器调用它,那么unity将成为任何消息的接收者。
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<?php
    if($_REQUEST["var1"]) 
    {
        echo "Recieved ". $_REQUEST["var1"]. " success!";
        exit();
    }
    else
    {
        echo "Request Failed";
    }
?>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        echo '<p>Hello World?</p>';
        echo $_REQUEST["var1"]. " Success?";
        ?>
    </body>
</html>
<?php
if (isset($_REQUEST["var1"])) {
    echo "Received ". $_REQUEST["var1"]. " success!";
    exit();
} else {
    http_status_code(400);
    echo "Request Failed";
}