Как проверить, является ли URL главной страницей

Нашел этот ответ Если URL является домашней страницей (/ или index.php), сделайте это, что было действительно полезно, однако не полностью отвечает на мой вопрос.

У меня есть индекс сайта для школы, который показывает все мои папки для разных заданий. так что моя домашняя страница на самом деле является доменом / папкой / index.html

поэтому, когда я спрашиваю, если $currentpage == /midterm/index.php || /midterm/ всегда срабатывает как true, даже если я нахожусь на /midterm/add.php

<?php
$homeurl = '/midterm/index.php';
$homepage = '/midterm';
$currentpage = $_SERVER['REQUEST_URI'];

if ($currentpage == $homeurl || $homepage) {
    echo '<div class="hero"></div>';
}

2 ответа

Решение

Ваша проблема в вашем условии: if ($currentpage == $homeurl || $homepage) всегда вернется true потому что вы заявляете, что $currentpage должен равняться $homeurl ИЛИ просто $homepage, Добавление скобок помогает продемонстрировать это:

if ( ($currentpage == $homeurl) || ($homepage) )

Так как $homepage установлено, это truthy и оценивает true, Потому что только одна часть условного должна быть true из-за вашего OR (||) условие возвращается true в целом.

Чтобы решить эту проблему, вы хотите проверить, $currentpage равно $homeurl ИЛИ ЖЕ $currentpage равно $homepage:

if ($currentpage == $homeurl || $currentpage == $homepage)

Который, с добавленными скобками, оценивает:

if ( ($currentpage == $homeurl ) || ($currentpage == $homepage) )

Надеюсь это поможет!:)

Это потому, что ваш оператор if проверяет, $homepage установлено, не если $homepage равно $currentpage,

if ($currentpage == $homeurl || $currentpage == $homepage) {
    echo '<div class="hero"></div>';
}
Другие вопросы по тегам