【问题标题】:Getting information from PHP into HTML5 JavaScript Game从 PHP 获取信息到 HTML5 JavaScript 游戏
【发布时间】:2013-05-13 18:21:54
【问题描述】:

我一直在玩弄 JS/Node/Socket.IO 并制作了一个小型多人游戏,其中你都是点并且可以四处移动。我现在想更进一步,添加一个简单的登录系统,以便我可以在用户头顶显示来自用户登录的信息,以帮助识别不同的玩家。

现在我知道 PHP 是一种服务器端语言,而 JavaScript 主要是客户端语言,但我需要想出一种方法来做到这一点。我真正要问的是,有人知道如何将信息直接从 PHP 获取到 JavaScript 中吗?

稍后我可能想要添加等级并将玩家的关卡存储在数据库中,并在他们连接时检索它们(而不是使用本地存储)。

非常感谢!

乔尔

【问题讨论】:

  • 来自客户端的 AJAX 请求和 PHP 中的 json_encode() 是你的朋友。除此之外,您还必须更具体地说明您要做什么。

标签: php javascript html node.js socket.io


【解决方案1】:

您可以使用 PHP 编写 JavaScript。

例如

   $jsVars = array(
      "one" => "hello"
   ,  "two" => "yo"
   );

   echo '<script type="text/javascript">';
   echo "var phpVars = ".json_encode($jsVars);
   echo "</script>";

或者您可以利用 ajax 向 PHP 发出请求并通过 JSON 传递数据。

【讨论】:

  • 非常感谢George,这么简单的概念让我忘记了!但有一件事,这是一种有效的做事方式吗?假设我要使用 HTML5 技术构建一个 MMORPG,平均每天有 50,000 名玩家,这会是一个好方法吗?
  • @jskidd3 这实际上取决于您要传输的数据类型。我个人会使用 ajax,但如果这不是一个选项,这也可以。
  • @jskidd3 没问题,就像 Soriyyx 说的我绝对推荐 jQuery 来处理 ajax。 Ajax 作为长期解决方案更容易维护。你想看看用 PHP 构建一个 API,这样你就可以轻松地获取正确的数据。因此,对于用户信息,您将向 URL“yoursite.com/api/userinfo”发出请求,它将返回您的 javascript 所需的所有用户信息。这就是 Twitter 等网站允许人们获取推文的方式 .etc
【解决方案2】:

我通常这样做:

<script type="text/javascript">
    var name = '<?php echo $name; ?>';
</script>

当然是在 PHP 文件中。我认为这对于服务器来说比使用 php 创建整个 javascript 更容易。

【讨论】:

    【解决方案3】:

    如果您想在不加载页面的情况下提取数据。您可以使用 AJAX 调用一个 php 脚本来回显您需要的数据。您可以在成功登录 php 后将用户名存储在会话变量中,然后在需要时将其回显。

    一个基本的 vanilla JS 示例是;

    function getUsername(){
    
       var xmlhttp;
    
       if(window.XMLHttpRequest){
       xmlhttp=new XMLHttpRequest();
       }
    
       else{
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
       }
    
       xmlhttp.onreadystatechange=function(){
    
          if(xmlhttp.readyState==4 && xmlhttp.status==200){
          var username=xmlhttp.responseText;
          // code to add username above player here
          }
    
       }
    
       xmlhttp.open("GET","get_username.php",true);
       xmlhttp.send();
    
    }
    

    编辑:没关系。 :D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-29
      • 2022-08-06
      • 2015-11-11
      • 2012-05-02
      • 2015-07-12
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多