Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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
Php 关于eval的邪恶:如何清理_Php_Javascript_Eval - Fatal编程技术网

Php 关于eval的邪恶:如何清理

Php 关于eval的邪恶:如何清理,php,javascript,eval,Php,Javascript,Eval,我正在建立一个网站,最终将成为游戏的前端。我希望能够动态地构建一个用户能够购买的“权力”列表。为了构建这些列表,我使用了一个基于PHP的SQL查询,然后将其传递给Javascript以进行动态选择(某些权限具有必备权限) 我知道有一种更简单的方法来做我正在做的事情,但我现在并不特别关心(我会稍后再做,但我试图让这个功能化,然后再清理)(再次,我知道这是非最佳的) 我使用eval解析要显示的div,我想知道如何不显示 我一开始就很难把我的部门名字写对 这是我的密码: Javascript(单独文件

我正在建立一个网站,最终将成为游戏的前端。我希望能够动态地构建一个用户能够购买的“权力”列表。为了构建这些列表,我使用了一个基于PHP的SQL查询,然后将其传递给Javascript以进行动态选择(某些权限具有必备权限)

  • 我知道有一种更简单的方法来做我正在做的事情,但我现在并不特别关心(我会稍后再做,但我试图让这个功能化,然后再清理)(再次,我知道这是非最佳的)
  • 我使用eval解析要显示的div,我想知道如何不显示
  • 我一开始就很难把我的部门名字写对
  • 这是我的密码: Javascript(单独文件)


    但是我不能让JS/PHP正确地写引号。请帮帮忙(这是全部还是全部?)

    我找到了一个解析,它不是
    JSON.parse()
    。 我改变了
    PowerArray=eval(通过)进入
    PowerArray=window[通过]


    因为
    passed
    包含变量名,而不是变量本身,所以我无法直接使用它。但是,因为它是一个专门保存全局定义变量名称的字符串,所以我可以将它传递到
    窗口[]
    构造并使其工作。

    json_encode-json.parse,json.stringify-json_decode将数据编码为json似乎是一个可能的解决方案。了解更多关于JSON的信息:。使用JSON.parse()会返回各种严重错误,但我对它的了解还不够,无法解决这些错误。根据初学者的知识,我的变量似乎没有格式化为JSON对象。
    function upgradeList(passed)
    {
        var PowerArray = [];
        var DetailPowerID = [];
        var EscapedPowerID = [];
        PowerArray.push([]);
        PowerArray = eval(passed);
        var OutputThing="";
        for (i=0;i<PowerArray.length;i++)
        {
            DetailPowerID[i] = 'detail' + PowerArray[i][0];
            EscapedPowerID[i] = "'" + DetailPowerID[i] + "'";
        }
        for (i=0;i<PowerArray.length;i++)
        {
            OutputThing = OutputThing + "<br><a href='#' onClick='showUpgradeDetails(" + DetailPowerID[i] + ")'>" + PowerArray[i][2] + "</a><div class='hidden' id='" +
            DetailPowerID[i] + "'>" + PowerArray[i][3] + "</div>";  }
            document.getElementById("secondUpgrade").innerHTML=OutputThing;
            document.getElementById("secondUpgrade").style.display='block';
        }
    }
    
    echo "<script name='UpgradeList'>";
    settype($UpgradesListSize[$i],"int");
    for ($i=0;$i<count($AbleToUpgrade);$i++)
    {
        echo "var UpgradeList" . $AbleToUpgrade[$i][0] . " = new Array();";
        for ($j=0;$j<=$UpgradesListSize[$i];$j++)
        {
            echo "UpgradeList" . $AbleToUpgrade[$i][0] . ".push(Array('"
                . $UpgradeList[$i][$j][0] . "', '"
                . $UpgradeList[$i][$j][1] . "', '"
                . $UpgradeList[$i][$j][2] . "', '"
                . $UpgradeList[$i][$j][3] . "', '"
                . $UpgradeList[$i][$j][4] . "'));";
        }
    }
    echo "</script>";
    
    echo "<div id='SpendUpgrade'>
        Select power to upgrade:
        <ul>";
        for ($i=0;$i<count($AbleToUpgrade);$i++)
        {
            echo "<li><a href='#' name='UpgradeList" . $AbleToUpgrade[$i][0] . "' onClick='upgradeList(this.name)'>" . $AbleToUpgrade[$i][1] . " - " . $AbleToUpgrade[$i][2] . "</a></li>";
        }
        echo "</select>
        <div id='secondUpgrade' class='hidden'>
    
        </div>
        <div id='thirdUpgrade' class='hidden'>
    
        </div>
    </div>";
    
    <a href="#" onclick="showUpgradeDetails(detail21)">Real Armor</a>
    
    <div class="hidden" id="detail21" style="display: none;">Your armor only works in the Waking</div>
    
    showUpgradeDetails("detail21")