0

安全なページとして提供され、json_encode() が呼び出されると、私の php スクリプトは失敗しますが、それ以外の場合はそうではありません。このコードは、XHR から呼び出されたより大きなスクリプトから抽出されています。PHP バージョン 5.2.0、Apache/1.3.34 (Unix)。

問題の原因は、PHP、ISP、または私ですか?

デモを行うには、このスクリプトを 4 通りに呼び出します。

https://www.camdenac.com/test_json_encode.php?encode=0 => 動作し、安全なプロトコルであり、json_encode() を呼び出しません。
https://www.camdenac.com/test_json_encode.php?encode=1 => 失敗、安全なプロトコル、json_encode() を呼び出します。

最初のケースでは、いくつかの html が表示され、次に php が結果をエコーし​​ます。2 番目のケースでは、html のみが表示されます。PHP出力はありません。

/*
Try these 2 links also from non-secure protocol.
http://www.camdenac.com/test_json_encode.php?encode=0  => works.
http://www.camdenac.com/test_json_encode.php?encode=1  => works.
*/

<?php
$encode= 0;
if( isset($_GET['encode']) ){
    $encode= substr(trim($_GET['encode']),0,1);
}

$dummy= array(1,2,3,4,5);
$json="We did not call json_encode.";

if($encode){
    $json= json_encode($dummy);
}

echo '<p>IT WORKS!</p>';
echo '<p>Host protocol is: '.$_SERVER['HTTP_HOST'].'</p>';
echo '<p>Query string is: '.$_SERVER['argv'][0].'</p>';
echo '<p>HTTPS is: '.$_SERVER['HTTPS'].'</p>';
echo '<p>json encoding is: '.$json.'</p>';
echo '<p>Array dump follows:</p>';

var_dump($dummy);
?>
4

1 に答える 1

1

あなたのphpのバージョンは古すぎて、json_encode機能が含まれていないと思います。使用する場合は、php のバージョンを更新する必要がある場合があります。

于 2012-12-20T18:00:19.850 に答える