0

私のserver.phpファイルコードは以下の通りです。「このページには次のエラーが含まれています。

行 2 の列 1 のエラー: ドキュメントの末尾にある余分なコンテンツ 以下は、最初のエラーまでのページのレンダリングです。

$server->register('restaurant');
// Define the method as a PHP function


function restaurant($id) {
        $query = "SELECT * FROM `member_details` where Id=$id";
        $result = mysql_query($query);
        if(!$result )
        {
            die('Could not get data: ' . mysql_error());
        }       
        $xml_output = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?> \n"; 
        $xml_output .= "<?xml-stylesheet type=\"text/xsl\" href=\"xsltDetails.xsl\"?>"; 
        $xml_output .= "<dataset>\n";
        for($x = 0 ; $x < mysql_num_rows($result) ; $x++){ 
        $row = mysql_fetch_assoc($result); 
        $xml_output .= "<entry>\n"; 
        $xml_output .= "<id>".$row['Id']."</id>\n"; 
        $xml_output .= "<name>".$row['Name']."</name>\n"; 
        $xml_output .= "<address>".$row['Address']."</address>\n"; 
        $xml_output .= "<postcode>".$row['Postcode']."</postcode>\n"; 
        $xml_output .= "<telephone>".$row['Telephone']."</telephone>\n"; 
        $xml_output .= "<opentime>".$row['OpenTime']."</opentime>\n";
        $xml_output .= "<restauranttype>".$row['ResType']."</restauranttype>\n"; 
        $xml_output .= "<licence>".$row['Licence']."</licence>\n"; 
        $xml_output .= "<keywords>".$row['Keywords']."</keywords>\n"; 
        $xml_output .= "<cuisine>".$row['Cuisine']."</cuisine>\n"; 
        $xml_output .= "</entry>\n";

        }
        $xml_output .= "</dataset>\n"; 
        return $xml_output;
}
// Use the request to (try to) invoke the service
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
4

1 に答える 1

0

XML のどこかにエラーがあるはずです。問題がどこにあるかをより明確に確認できるように、出力を提供してください。header() で適切な HTTP ヘッダーを設定しているかどうかを確認します。XML 出力の場合は、次のようになります。

header( "Content-type: text/xml" );

XML を出力するために独自のコードを使用しないでください。XML を出力するだけの優れたライブラリがたくさんある場合は、決して使用しないでください。コードはイライラするエラーが発生しにくくなり、よりクリーンで維持しやすくなります。この回答をご覧ください:

XML で PHP の「エコー」を使用すると、「ドキュメントの末尾に余分なコンテンツがあります」というエラーが表示されます

追加の注意として、サニタイズされていない POST データを SQL クエリに入力していないことを確認してください。これは、単純な SQL インジェクション攻撃を要求することになります。

http://en.wikipedia.org/wiki/SQL_injection

ほとんどの場合と同様に、この問題に関しては Stack Overflow に既に適切な回答があります。

POST で SQL インジェクションは可能ですか?

于 2013-10-07T07:32:08.363 に答える