0

我正在寻找一些关于使用 If/Else 进行菜单导航或资源链接的反馈。我做了一些快速搜索,并找到了与使用 PHP 来跟踪当前页面并应用特定 CSS 而不是实现菜单本身相关的项目。

我想做的是让菜单根据菜单更改我的内容 div。因此,如果单击“home”,则 div 变为 home,如果单击“about”,则 div 变为 about。

到目前为止,我所做的是创建一个变量“cl”,我使用每个 div 中的 id 属性设置它。在我的索引页面中,我使用以下内容:

//if cl is not set include default content div
if(!isset($_GET['cl']))
{
     //include main div
}

//if cl is set, check value and include the correct div
//anything that does not match a hard-coded cl value --SHOULD-- default to main
//div...may change this to be a custom error page
if(isset($_GET['cl']))
{
    if($_GET['cl']=="content-main")
    {
        //include main content div
    }
    elseif($_GET['cl']=="content-anotherPage")
    {
        //include another page div
    }
    else
    {
        //include main content or possibly custom error
    }
}

我为其他菜单项添加了更多 elseif 块,但留下这个小块只是为了显示我在做什么。

这种方法是有效的方法吗?有没有我应该注意的基本事情?我的 If/else 块是否安全?(通过安全,我的意思是更改 URL 的值应该只是恢复为默认内容 div。我尝试将基本的 javascript 警报脚本放入 URL,它确实默认为主页,但不确定我的基本测试是否与实际安全有关)。

第一次发帖……如果我没有遵守礼仪,请告诉我,我很乐意纠正!

麦克风

4

2 回答 2

2

而不是一堆if/elseif我宁愿使用switch/case语法:

switch( $_GET['cl'] ) {
    case "content-main":
       ...
       break;

    default:
       ...
       break;
}
于 2013-04-09T17:37:23.493 回答
0

如果您有很多条件,我会使用switch语句而不是 http://www.w3schools.com/php/php_switch.asp,因为它要快得多。如果您只有几个条件,例如少于 5 或​​ 6,则 if/else 很好。

于 2013-04-09T17:38:42.133 回答