2010-11-15 86 views
-1

我在網站上使用SimpleViewer Flash圖像庫,它使用XML文件獲取有關它顯示的圖像的信息。

對於該網站,我需要動態生成XML,因此我使用的是具有text/xml內容類型聲明的PHP文件。但是,由於某些原因,當我訪問$ _GET數組中的某個GET變量時,SimpleViewer告訴我庫中沒有圖像,即使當我查看源代碼時,它看起來完全相同並且格式良好。

下面的代碼:

$photos = array(
"1" => array("house1_1.JPG") 
); 
foreach($photos[$_GET["hid"]] as $p){ 
echo ''; 
}

如果我"1"取代$_GET["hid"]然後它工作正常,但是當我做參考$ _GET它返回的錯誤。

是有一些原因,爲什麼訪問GET變量將導致腳本鏈接到XML(的SimpleViewer閃光)發生故障,而有沒有辦法來解決這個問題?

*注意:「hid」GET變量100%肯定設置爲「1」,並且沒有PHP錯誤。 此外,當我使用$ _GET [「hid」]與「1」時,輸出看起來完全相同,唯一的區別是SimpleViewer腳本拒絕查看圖像。 此外,在空引號的東西是一些XML,但我不知道如何得到它出現在標籤...分別爲$照片

瓦爾轉儲和$ _GET,:

array(1) { 
    [1]=> 
    array(1) { 
    [0]=> 
    string(12) "house1_1.JPG" 
    } 
} 
array(1) { 
    ["hid"]=> 
    string(1) "1" 
} 
+0

輸出在非功能情況下看起來如何?否則請詳細說明「鏈接到XML的腳本」的含義。 – mario 2010-11-15 22:58:29

+0

無論您使用「1」還是$ _GET ['hid'],您都說XML是相同的 - 您確定*嗎?真的,真的嗎? – Hamish 2010-11-15 23:00:20

+0

是的,我絕對相信。 XML是/完全相同的。 – Will 2010-11-15 23:05:43

回答

-1

問題從未解決 - 我最終不得不繼續前進,尋求更長更優雅的解決方案。好吧。

0

我會先檢查並確保$ _GET [「hid」]返回「1」。如果有可能它沒有返回「1」,那麼它應該拋出一個錯誤訪問$照片的錯誤索引。

+0

沒有PHP錯誤,並且我確信「hid」被設置爲1. Echoed和所有。 – Will 2010-11-15 22:59:07

+0

也許檢查那個變量的類型,並確保它是一個字符串而不是int? – wajiw 2010-11-15 23:00:30

0

$_GEThid您的請求中設置了變量嗎?如果不是這會觸發PHP警告。

​​看到$_GET變量的值,並確保它如您所願。

也請確保您有錯誤報告至少設置爲E_ALL和顯示誤差設置爲yes /真正使您的調試更加容易。

+0

絕對確定「隱藏」變量是我想要的。儘管如何更改錯誤報告? – Will 2010-11-15 23:04:39

+0

您可以發佈'$ photos'和'$ _GET'的'var_dump()',以便我們可以確切地看到我們正在處理的內容。 – Treffynnon 2010-11-15 23:05:56

+0

帖子已更新。 – Will 2010-11-15 23:07:20

0

我想你可能有一個問題與和1「1」之間的區別當您使用的東西得到什麼樣的?藏= 1,它不來通過爲一個字符串,這是被轉換爲數字,而你的實際數組使用字符串「1」作爲鍵。

將您的密鑰更改爲1而不是「1」或將隱藏的字符串轉換爲字符串。

+0

沒有,從手冊:'如果一個鍵是一個整數的標準表示,它將被解釋爲這樣(即「8」將被解釋爲8,而「08」將被解釋爲「08」)' – Hamish 2010-11-15 23:03:59

+0

不是鑄造問題 - 嘗試(字符串),不行。 – Will 2010-11-15 23:04:19

+0

@ will:根據你的'var_dump',這是實際的問題。 '$ _GET ['hid']'包含'1'(一個字符串),而數組中的索引是一個整數'1'。 – poke 2010-11-15 23:16:31