创建评级系统并且不通过我的$ _GET变量传输信息。代码在
之下 if (isset($_GET['item'], $_GET['rating'])){
echo 'Works!';
}
该变量正在下面的代码中输入
<?php echo number_format(
$article['rating'],1); ?>
<div class = "rate">
Rate:
<?php
for ($x =1; $x<= $maximum_rating; $x++){
?>
<a href="prestige.php?item=<?php echo $article['id']; ?>&rating=<?php echo $x;?>">
<?php echo $x; ?></a>
<?php
}
?>
我对编程很新,所以任何想法或提示都会非常感激。
答案 0 :(得分:4)
你应该做几件事。
<强> 1 强> 而不是
prestige.php?item=<?php echo $article['id']; ?>&rating=<?php echo $x;?>
使用
prestige.php?<?= http_build_query(array('item' => $article['id'], 'rating' => $x), '&') ?>
这将逃避参数。 Vars $article['id']
和$x
可能包含破坏HTML或网址的字符。
<强> 2 强> 查看Firebug / Chrome开发工具栏中的Net选项卡。有没有重定向?发送了哪些标题?
另请查看地址栏,了解prestige.php是否真的加载了GET参数。
第3 强>
使用XDebug之类的调试工具来逐步执行代码。您可能有一些代码可以重置$_GET
变量。我个人使用IDE PHP,但它有点贵。
答案 1 :(得分:2)
您发布的代码有效。所以这个障碍必须在你没有发布的代码中:
prestige.php
页面有一个PHP错误,阻止它显示任何内容;以仅包含<?php echo 'OK so far'; ?>
。ob_end_clean()
嗤之以鼻,这意味着在实际输出开始之前“清理页面”; (将页面缩小到最小工作量)auto_prepend
'ed文件。然后,它也可能是上面的多个。通常在调试时会无意中破坏某些代码,甚至在修复第一个错误之后,代码也无法再次开始工作 - 这并不意味着修复无效。
对不起 - 我的选择已经结束了。我真的很期待知道原因是什么。 (通常我收集的解释越多,真正的答案往往是“以上都不是”。当我遇到这种情况时,有时我会想知道是否开始相信小鬼 :-()