以下问题:我有一个controller.php,可以从输入的网址中捕获两个$ _GET值。
现在我想检查$ sitename是否是" leichtathletik"或"登陆"或" galerie"或" anlaesse"或" mitglieder"
和
如果$ view是"访客"或" admin"或"会员"
如果错误
转发给404 Errorpage
如果是真的 运行以下代码
if (
($sitename != "landingpage"
&& $sitename != "leichtathletik"
&& $sitename != "mitglieder"
&& $sitename != "anlaesse"
&& $sitename != "galerie")
|| ($view != "visitor"
&& $view != "member"
&& $view != "admin")
) {
header("HTTP/1.0 404 Not Found"); //prüft ob der Sitename und der Viewname gültig sind. Wenn nicht -> Error
exit();
} else {
//run code
}
}
使用此代码,我可以插入错误的$ view或$ sitename,但它不会转发到404 Page
原始网址如下:www.domain.tld?view = xxx& sitename = xxx
重写的网址如下:www.domain.tld / view / sitename.php 。错误在哪里?
答案 0 :(得分:0)
这是一个简单的switch
可以帮助清理它的区域。然后我们将它放入一个函数中,使其紧凑且易于理解
function redirect($site, $view) {
switch($site) {
case 'landingpage':
case 'leichtathletik':
// etc
case 'galerie':
return true; break;
// no default since we don't want it to do something if no matches
}
// Now do the same for $view
return false; // Should only reach this if you don't match anything
}
答案 1 :(得分:0)
感谢您的投入。
我用这句话修正了它:
if($sitename=="landingpage" || $sitename=="leichtathletik" || $sitename=="galerie" || $sitename=="anlaesse" || $sitename=="mitglieder"){
//code
}else{
header("HTTP/1.0 404 Not Found");
header('Location:http://www.xxx.ch/error/error404.html');
}
}else{
header("HTTP/1.0 404 Not Found");
header('Location:http://www.xxx.ch/error/error404.html');
}
}