我有一个简单的PHP文件,可以为我的每个暗黑破坏神3字符创建按钮。它利用来自该站点的JSON数据,将英雄的名称分配给按钮,将英雄的id分配给id字段:
http://us.battle.net/api/d3/profile/raphattack-1736/
我在代码中尝试执行的操作是将hero/
+ id
附加到网址,以便在点击按钮时将用户导航到指定英雄的页面。这是代码:
<?php // json.php
define("URL", "http://us.battle.net/api/d3/profile/raphattack-1736/");
$data = json_decode(file_get_contents(URL));
foreach ($data->heroes as $mydata) {
$test = URL . "hero/" . $mydata->id;
echo <<<_END
<form method="post" action='$test'><input type="submit" id='$mydata->name' value='$mydata->name'></form>
_END;
}
?>
这是正确的,因为每个按钮都是使用正确的英雄及其相应的名称创建的。它们的ID也与按钮相关联,单击时,用户将被导航到正确的URL。问题是它总是会导致错误:HTTP Status 500 - The server encountered an internal error that prevented it from fulfilling this request.
如果我只是刷新页面,那么它将显示该英雄的JSON数据,因此该网址肯定是正确的。似乎只有在点击按钮后首次触及页面时,才会遇到此错误。
示例网址:http://us.battle.net/api/d3/profile/raphattack-1736/hero/4771127