Следующая проблема: у меня есть controller.php, который ловит два $ _GET-значения из введенного URL.
Теперь я хочу проверить, является ли $ 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
, Где ошибка?
Это одна из областей, где простой 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
}
спасибо за ваш вклад, ребята.
Я исправил это с помощью этого заявления:
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');
}
}