选项卡系统中使用$ _GET方法的最佳方法是什么

时间:2018-06-10 00:42:10

标签: get tabs

我正在尝试制作标签系统。所以我正在阅读浏览器$ _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 ,则必须显示默认内容。

这是真的吗?或者任何人都可以建议我更好的方式吗?

1 个答案:

答案 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漏洞利用