代码之家  ›  专栏  ›  技术社区  ›  wpdev

在使用$get方法的tab系统中,什么是最好的方法

  •  -1
  • wpdev  · 技术社区  · 6 年前

    我想让Tab Sistem。所以我正在阅读浏览器$_获取值并显示选项卡内容。

    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值不同,例如 ?房间隔缺损 它必须显示默认内容。

    这是真的吗?或者有人能给我推荐更好的方法吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   alex    6 年前

    最好给变量选项卡指定一个参数

    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将继续默认内容1 而且?ASD将继续默认内容2

    顺便说一句, 我对网址有点怀疑,我知道 “从不信任用户输入” 因此,我将使用htmlspecialchars($\u get['tab'])而不是只使用$\u get['tab']来避免XXS攻击