Я пытаюсь получить что-то, что будет отражено, если пользователь находится на одной из двух страниц, но это не отражается
if(stripos($_SERVER['REQUEST_URI'], 'user.php') || ($_SERVER['REQUEST_URI'], 'message.php')) {
echo 'hello';
}
Прежде всего, $_SERVER['REQUEST_URI']
даст вам URI, который был дан для доступа к этой странице, а не фактическое имя страницы. использование basename($_SERVER['PHP_SELF'])
чтобы получить реальное имя страницы.
И во-вторых, состояние вашего if
предложение тоже неверно. От руководство по stripos()
функция:
Возвращает позицию, в которой находится игла, относительно начала строки стога сена (независимо от смещения). Также обратите внимание, что строковые позиции начинаются с 0, а не с 1.
Возвращает FALSE, если игла не была найдена.
Таким образом, оба ваших условия потерпят неудачу, если игла точно соответствует стогу сена. Вместо этого проверьте условие следующим образом:
if(stripos($haystack, $needle) !== false || stripos(stripos($haystack, $needle)) !== false) {
echo 'hello';
}
Так решение это так:
if(stripos(basename($_SERVER['PHP_SELF']), 'user.php') !== false || stripos(basename($_SERVER['PHP_SELF']), 'message.php') !== false) {
echo 'hello';
}
if(stripos($_SERVER['REQUEST_URI'], 'user.php') || stripos($_SERVER['REQUEST_URI'], 'message.php')) {
echo 'hello';
}
Обратите внимание на функцию stripos в предложении после ||.
Оберните каждый условный аргумент в отдельный блок с круглыми скобками. Каждая функция, добавленная к условию, должна содержать 2 скобки.
IF ( ($a == $x) or ($b == $y) ) {}
if (
(stripos($_SERVER['REQUEST_URI'], 'user.php')) ||
(stripos($_SERVER['REQUEST_URI'], 'message.php'))
) {
echo 'hello';
}