PHP脚本没有被执行

时间:2012-04-02 10:59:05

标签: php javascript jquery curl xss

我已经使用cURL解决方案来解决XSS,但是它存在问题。 我的proxy.php文件内容是: -

<?php
    $url = "http://www.yahoo.com";
    $ch = curl_init();
    $timeout = 5;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $file_contents = curl_exec($ch);
    curl_close($ch);
    echo $file_contents;
?>

这就是我试图执行php脚本的方式

$("#tempButton").click(function(){
    $("#pageContent").load('http://localhost:8080/proof/proxy.php',function() {
        var t = $("#pageContent").html();
        alert(t);
    });
});

但是变量t显示了proxy.php文件的内容,而期望它显示在proxy.php文件中设置的yahoo.com的内容。我做的事情很傻。 #FirstTimePHP

2 个答案:

答案 0 :(得分:1)

由于变量t显示文件的内容,服务器软件不得将脚本识别为PHP。

有几个原因可能会发生这种情况。没有开放标签将是1,但你当然有这些。

另一个可能的原因是php尚未作为模块加载到服务器软件中。

另一个可能的原因是服务器不解析扩展名为php的文件(这是可配置的)。

你应该从基础开始。忽略javascript,而是手动调用url,看看你得到了什么。您可能会看到代码。

如果发生这种情况,请确保将服务器软件(通常是apache)设置为识别扩展名php与php模块相关联。最后确保PHP实际上已正确安装。

答案 1 :(得分:1)

让你的proxy.php像这样。

    <?php
        if(in_array('curl', get_loaded_extensions())) { 
                $url = "http://www.yahoo.com";
                $ch = curl_init();
                $timeout = 5;
                curl_setopt ($ch, CURLOPT_URL, $url);
                curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
                $file_contents = curl_exec($ch);
                curl_close($ch);
                echo $file_contents;
                }
        else {
        echo 'No cUrl here';
        }
?>