2010-11-15 91 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