如何处理无限循环


How to tackle infinite loop?

大家好,您可以查看我之前的问题-未调用Ajax回调。如何解决这个问题?请在这里查看我的execute.php代码(编辑器的代码所在)并运行,并建议我为什么for循环会变成无限循环。

这是我的code1.js代码,我通过它获取编辑器的代码并运行exec.php

$.ajax({
    type: 'GET',
    url: 'exec.php',
    data: code,
    success: function(data) 
    {
        alert(data);
        $(loader).addClass("hidden");
        var stdout = $(form).children('.stdout');
        if (data.search("Parse error")>0)
        {
            var str = data.replace("<b>Parse error</b>:  ","");
        $(stdout).html(str);
        $(stdout).removeClass('hidden');    
        }   
        else
        {
            $(stdout).html(data);
            $(stdout).removeClass('hidden');
        }   
    },
    error: function(req, status, err) {
        alert(status);
        alert(err);
    },
    dataType: 'JSONP'
});

当我在编辑器中插入for循环的代码时,它会像一样进入无限循环

";}?>

你可以在web.guru99.com 上查看这个问题

请帮助

不需要通过url发布PHP代码,就可以将其作为附加数据post。这解决了您的编码问题,还允许您发送更大的代码块。

我认为这是由于+符号在到达服务器时被误解了。我认为+正被单个空白所取代,这在for循环中造成了问题。因此,$x++将被解释为$x$x之后的两个空白),它将创建一个无限循环。

为了解决这个问题,您可能应该使用javascript将输入代码中的所有+符号替换为一些符号,并在服务器端使用您自己的方法来urldecode