我正在尝试制作标签系统。所以我正在阅读浏览器$ _GET值并显示标签内容。
www.site.com/product-1/
www.site.com/product-1/?tab-1
www.site.com/product-1/?tab-2
www.site.com/product-1/?tab-3
这是PHP:
if ( isset($_GET['tab-1']) ):
//tab-1 content here
endif;
if ( isset($_GET['tab-2']) ):
//tab-2 content here
endif;
if ( isset($_GET['tab-3']) ):
//tab-3 content here
endif;
if ( empty($_GET) ):
//default content
endif;
但我在这里被封锁了。如果不同的$ _GET值会发生什么。如果获取的值不同,例如?asd ,则必须显示默认内容。
这是真的吗?或者任何人都可以建议我更好的方式吗?
答案 0 :(得分:2)
最好为变量选项卡提供参数
www.site.com/product-1/
www.site.com/product-1/?tab=1
www.site.com/product-1/?tab=2
www.site.com/product-1/?tab=3
并在您的PHP代码上检查:
<?php
if (isset($_GET['tab'])) {
switch ($_GET['tab']) {
case '1':
//tab-1 content here
break;
case '2':
//tab-2 content here
break;
case '3':
//tab-3 content here
break;
default:
//default content1
break;
}
}else{
//default content2, but you are sure that the url will be hacked
}
?>
so?tab = asd将继续默认content1 和?asd将继续默认content2
顺便说一下, 我对网址有点怀疑,我已经学会了 “永远不要相信用户输入” 所以我会使用htmlspecialchars($ _ GET ['tab'])而不只是$ _GET ['tab']来避免XXS漏洞利用