我在网站上使用SimpleViewer flash图库,它使用XML文件获取有关其显示图像的信息。
对于该站点,我需要动态生成XML,因此我使用的是一个声明了text / xml Content-type的PHP文件。但是,出于某种原因,当我访问$ _GET数组中的一个GET变量时,SimpleViewer告诉我库中没有图像,即使我查看源它看起来完全相同并且格式正确。
以下是代码:
$photos = array( "1" => array("house1_1.JPG") ); foreach($photos[$_GET["hid"]] as $p){ echo ''; }
如果我用$_GET["hid"]
替换"1"
,那么它可以正常工作,但是当我对$ _GET进行引用时,它会返回错误。
有什么理由说为什么访问GET变量会导致链接到XML(SimpleViewer flash)的脚本出现故障,还有办法解决这个问题吗?
*注意:“hid”GET变量100%肯定设置为“1”,并且没有PHP错误。 此外,当我使用$ _GET [“hid”]与“1”时,输出看起来完全相同,唯一的区别是SimpleViewer脚本拒绝看到图像在那里。 此外,空引号中的内容是一些XML,但我不知道如何让它出现在标签中......
$ photos和$ _GET的转储分别为:
array(1) { [1]=> array(1) { [0]=> string(12) "house1_1.JPG" } } array(1) { ["hid"]=> string(1) "1" }
答案 0 :(得分:0)
我首先检查并确保$ _GET [“hid”]返回“1”。如果它可能没有返回“1”那么它应该在访问$ photo的坏索引时抛出错误。
答案 1 :(得分:0)
您的请求中是否设置了$_GET
hid
变量?如果不是,这将触发PHP警告。
var_dump($_GET['hid']);
查看$_GET
变量的值并确保其符合预期。
另外,请确保将错误报告设置为至少E_ALL
,并将显示错误设置为yes / true以使调试更容易。
答案 2 :(得分:0)
我认为你可能遇到了“1”和1之间存在差异的问题。当你使用像?hid = 1这样的get时,它不是作为字符串传递的,而是被转换为数字,而你的实际数组使用字符串“1”作为键。
将密钥更改为1而不是“1”或将hid强制转换为字符串。
答案 3 :(得分:-1)
问题从未得到解决 - 我最终不得不继续前进,寻求更长,更不优雅的解决方案。哦,好吧。