Оператор PHP в операторе if

Следующая проблема: у меня есть controller.php, который ловит два $ _GET-значения из введенного URL.

  • $ view = $ _GET [‘view’]
  • $ sitename = $ _GET [‘site’]

Теперь я хочу проверить, является ли $ sitename «leichtathletik» или «Landpage» или «Galerie» или «Anlaesse» или «Mitglieder»

А ТАКЖЕ

если $ view равен «посетитель» или «администратор» или «участник»

ЕСЛИ ложь

Переслать на страницу ошибки 404

если правда
запустите следующий код

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.

Оригинальный URL выглядит так: www.domain.tld? View = xxx&имя_сайта = ххх

Переписанный URL выглядит так: www.domain.tld / view / sitename.php
, Где ошибка?

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
}
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');
}

}

0

По вопросам рекламы [email protected]