0

問題は単純です。リモートWebページのコンテンツを取得するにはjavascriptが必要です。直接それを行う方法がないため、ローカルのphpファイルとjavaスクリプトのajaxからこのように実行しています

php ファイル:

    "getpage.php?url=http://stackoverflow.com"   '  

PHPコード:

<?php
$htm = file_get_contents($_GET['url']);
echo $htm; ?>

このコードは、私も彼に指示する html ページのコンテンツを取得します。

AJAX コード:

function makeAJAXObject() { 
        var ajaxRequest;  

    try {
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer Browsers
        try {
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                // Something went wrong
                return false;
            }
        }
    }
    return ajaxRequest;
}

'

そして、私は次のように私のスクリプトで彼を後者と呼びます:

window.ajax = makeAJAXObject(); window.ajax.open("GET","getpage.php"+ queryString, true);

問題は私よりも

alert(window.ajax.responseText);

代わりに、私が彼に尋ねた URL の内容を教えてくれました。上で書いた実際の php スクリプトを教えてください。

このスクリプトは localhost で問題なく動作しますが、サーバーに再アップロードせずにローカル コンピューターから動作させる必要があります。

編集 :

PHPファイルはPC上にあります。私はwin 8アプリを構築しています。URLなどを持っているわけではありません。

4

1 に答える 1

0

PHP ファイルがサーバーによって処理されることを確認するには、リモート サーバーの構成を確認する必要があります。mod_php が apache にインストールされていることと、php ファイルを処理するための適切な AddType があることを確認してください。

この質問を参照してください: PHP ファイルがプレーン テキストとして表示されるのはなぜですか?

また、これはセキュリティ上の大きな問題です。要求された内容を確認するか、ホワイトリストに登録する必要があります。

電話したらどうですか

getpage.php?url=/etc/passwd
getpage.php?url=/your/secret/file

あなたは何もチェックしないので、結果を返すだけです...

于 2013-06-01T11:00:01.787 に答える