【问题标题】:PHP URL attribute with JS带有 JS 的 PHP URL 属性
【发布时间】:2013-02-17 07:42:20
【问题描述】:

我正在制作一个 HTML5 游戏,每个级别都有一个新的 HTML 页面。每个级别的结果都存储在一个 JS 变量中。

如何使用 URL 将该信息传递到下一页?

我在想类似的东西

www.example.com/level5.php?lvl1=10&lvl2=15&lvl3=13

等等。

如何将 JS 变量值放入这种类型的地址中?

我不需要用JS访问这些信息,但我只需要添加信息。

谢谢!

【问题讨论】:

  • 你试过追加吗?
  • 嗯,所以如果我想作弊,我就通过&lvl1=9999999999999。瞬间高分! :)

标签: php javascript html url


【解决方案1】:

您可以使用 jQuery 更改链接的“href”属性值:

$("#lvl2link").attr("href","www.example.com/level2.php?lvl1=" + score);

不用jQuery也能达到同样的效果。

这是一个 JSFiddle:http://jsfiddle.net/ZPv93/1/

【讨论】:

  • 那么我该如何使用window.location这个方法呢?
【解决方案2】:

没有 jQuery:

var lvl1 = "10";
var lvl2 = "15";
window.location.href = "www.example.com/level5.php?lvl1="+lvl1+"&lvl2="+lvl2;

然后使用 GET 在 PHP 中从这个 URL 创建变量:

$lvl1 = $_GET['lvl1'];
$lvl2 = $_GET['lvl2'];

【讨论】:

  • 这应该可以,但我需要根据地址中当前的内容创建变量,我该怎么做?抱歉,我对 javascript 有点陌生
  • 您是希望将变量值放入 url,还是从 url 中获取变量值?
【解决方案3】:

您可以使用以下 sn-p 访问 Javascript 中的 $_GET-Variables:

(function(){ // Import GET Vars
   document.$_GET = [];
   var urlHalves = String(document.location).split('?');
   if(urlHalves[1]){
      var urlVars = urlHalves[1].split('&');
      for(var i=0; i<=(urlVars.length); i++){
         if(urlVars[i]){
            var urlVarPair = urlVars[i].split('=');
            document.$_GET[urlVarPair[0]] = urlVarPair[1];
         }
      }
   }
})();

要访问它们,请使用:

document.$_GET['lvl1']

信用: http://failchad.blogspot.ch/2009/01/accessing-get-variables-in-javascript.html

要添加信息,请使用来自@tommyf 的 sn-p

【讨论】:

    【解决方案4】:

    session variable 包含所有结果怎么样?只要会话处于活动状态(这通常意味着只要浏览器处于打开状态),分数就会在每个级别结束时更新。如果会话中没有分数,则应加载第一级。为了保存进度,您可以提供用户下次需要输入的“进度键”。

    作为替代方案,如果您更喜欢只使用 javascript,您可以查看HTML5 LocalStorage。如果您考虑到浏览器已经具有 HTML5 兼容性,那么您的情况可能是一个不错的选择。

    GET 参数的问题在于,无论您选择将高分存储在 url 中的名称如何,人们都会进行调查并很快能够更改他们的高分以解锁任何伴随高分带来的奖励,甚至获得垃圾邮件列表的顶部(即:排名第一:购买此 blablabla $xx blabla.com(9999999999 点))。 LocalStorage 更难作弊(但很容易),而会话变量更难作弊。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2023-03-15
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多