我有这个SWITCH块:
switch ($_GET['page']) {
case "listaOferteTest":
include("php_views/lista_oferte_test.php");
break;
case "categorieOferte":
include("php_views/categorie_oferte.php");
break;
case "pagina":
include("php_views/pagina.php");
break;
default:
include("php_views/page_not_found_redirect.php");
break;
}
和一些php链接[他们是dinamicaly生成,但我会粘贴html]:
<a href='/pagina/termeni-si-conditii/'>
Termeni si conditii
</a>
<a href='/pagina/informatii-utile/'>
Informatii utile
</a>
<a href='/pagina/contact/'>
Contact
</a>
我有一个.htaccess,我在这里处理这样的链接:
RewriteRule (.*)/(.*)/(.*)/ index.php?page=$1&subPage=$2&subSubPage=$3 [L]
问题:当我测试上面的链接时,我注意到一个奇怪的行为 - 从随机链接上的大约10次点击,也得到了默认值。这怎么可能?谢谢!
答案 0 :(得分:0)
我的第一直觉是让调试器退出并逐步完成代码,这样你就可以清楚地看到发生了什么。如果您没有安装调试器(为什么不安装?它应该会改变您的生活!)或者如果您无法使用调试器重新创建问题,因为它看似随机性,那么接下来最好的事情就是添加一些记录到默认块,这样你就可以找出它到达那里的原因。我的猜测是$ glob ['page']与'pagina'完全不匹配;也许它有一个前导/尾随空格或斜杠,或者它可能是空的,因为这个值的提取方式存在错误。像Monolog这样的东西可以完成日志记录。
答案 1 :(得分:-2)
然后你可以使用if
代替switch
。
对于前。
if (isset($_GET['page'])) {
if($_GET['page']=='something') {...}
if($_GET['page']=='something2') {...}
...
}