我正在尝试制作标签系统。因此,我正在读取浏览器的$_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值。如果get值不同,例如?asd,它必须显示默认内容。
这是真的吗?或者,有没有人能给我更好的建议?
发布于 2018-06-10 09:08:22
最好给变量选项卡指定一个参数
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
}
?>因此?tab=asd将在默认content1上运行,而?asd将在默认content2上运行
顺便说一下,我对urls有点怀疑,我学到了“永远不要相信用户的输入”,所以我会使用htmlspecialchars($_GET‘’tab‘)而不只是$_GET’‘tab’来避免XXS漏洞
https://stackoverflow.com/questions/50779690
复制相似问题