1
失敗
我的PHP腳本在作爲安全頁面和json_encode()被調用時失敗,但不是以其他方式調用。該代碼是從一個從XHR調用的較大腳本中提取的。 PHP版本5.2.0,Apache/1.3.34(Unix)。PHP json_encode從https
問題來源: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回顯結果。 在第二種情況下,您只會看到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);
?>
定義「失敗」。怎麼了?你有什麼錯誤嗎?你確定兩個腳本都一樣嗎?你確定PHP版本是一樣的嗎? –
等待,最後2次測試的「作品,失敗」是否顛倒?你'var_dump($ _ GET)'?你有任何重寫規則可能會破壞https請求的查詢字符串嗎? –
json_encode看起來沒有任何關係。 $ _GET的內容如何根據使用的請求URL進行更改?也許把你的$編碼轉換爲(bool)。 – ficuscr