- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, знатоки!
Сразу перейду к возникшей проблеме:
Хочу сделать умное меню для своего сайта, суть которого в том, чтобы активная ссылка (т.е. ссылка той страницы, где мы находимся) была выделена другим цветом или другим стилем. В принципе, это можно было реализовать с помощью псевдокласса a:activ, но мне надо именно на php. Буду благодарен, если кто-нибудь кинет скриптик с инструкцией на js. На php тоже нашел код, который работает. Но есть одно но... как только я меняю директории самих файлов, т.е. помещаю файл в папку, то код перестает работать. Из-за чего это происходит, так и не понял ((. Но думаю, для бывалых разработчиков это пустяк, прошу подсказать в чем тут проблема. Код такой вот:
<?php
$menu = array (
"Главная" => "index.php",
"О проекте" => "info-o-nas.php",
"Карта сайта" => "map.php",
"Контакты" => "sendmail.php"
);
?>
<table width='530px' height='30px' border='0' cellspacing='0' cellpadding='0'>
<tr>
<? foreach ($menu as $entry => $file) {
if ($file == basename ($_SERVER ['PHP_SELF'])) {
echo "<td style='border-radius: 8px; text-align: center; background: #ffb9b9;'>";
echo "<p style='text-align: center; color: #fff; font: normal 14px Helvetica, Arial, Sans-Serif;'>$entry</p>";
echo "</td>";
} else {
echo "<td>";
echo "<p style='text-align: center;'><a style='color: #ccc; font: normal 14px Helvetica, Arial, Sans-Serif;' href=\"$file\">$entry</a></p>";
echo "</td>";
}
}
?>
</tr>
</table>
Смотрите, как только я кладу, скажем файл map.php в папку, т.е. вот так
"Карта сайта" => "map/index.php", то код перестает работать. Вопрос почему это происходит и как исправить? Заранее спасибо
Табличный дизайн. Фе.
По ходу не весь PHP код тут. Вывод только названий меню. А где там адреса подтягиваются? Ничего нету.
Если сайт на хтмл, можно перенести на какую-нибудь простую цмс, например, на файлах, и не париться с php.
"Карта сайта" => "map/index.php", то код перестает работать. Вопрос почему это происходит и как исправить?
Я не силен в программировании, но осмелюсь предположить:
У вас сцылки относительные. Сделайте абсолютными.
Жесть 😮
php, таблицы и css все в одну кучу) 🤪
ТС, кодинг это не ваше)
У вас сцылки относительные. Сделайте абсолютными.
Какой в этом смысл? O_o
"Карта сайта" => "map/map.php"
Смотрите, как только я кладу, скажем файл map.php в папку, т.е. вот так
"Карта сайта" => "map/index.php", то код перестает работать. Вопрос почему это происходит и как исправить? Заранее спасибо
basename убери.
basename убери.
и чтобы совсем заработало:
Спасибо всем за советы, но пока код не заработал. Вот это ... if ($file == str_replace('/','', $_SERVER ['PHP_SELF'])) ... не помогло тоже.
Есть догадка, что все из-за индексных файлов, т.е. index.php. У меня все страницы имеют такое расширение. Главная страница - site.ru/index.php (в браузере соответственно просто будет http://www.site.ru/), карта сайта - map/index.php (в браузере соответственно - http://www.site.ru/map/), страница контактов - sendmal/index.php (в браузере - http://www.site.ru/sendmail/), т.е. все файлы помещены в папки, а в браузере мы отбрасываем index.php, дабы не переводить страницу на более глубокий уровень, надеюсь тут понятно.
А как вот в этом условии (... if ($file == basename ($_SERVER ['PHP_SELF'])) ...) сделать так, чтобы избавиться вот от этого index.php, это возможно вообще? Т.е. чтобы бралось значение без окончания index.php? Может тогда заработает...
Кстати, ввиду того, что сами файлы у меня в папках, то сам массив выглядит так (привожу весь код опять):
<?php
$menu = array (
"Главная" => "/",
"О проекте" => "/o-proekte/",
"Рекламодателям" => "/reklamodateli/",
"Карта сайта" => "/map/",
"Контакты" => "/sendmail/"
);
?>
<table width='500px' height='30px' border='0' cellspacing='0' cellpadding='0'>
<tr>
<? foreach ($menu as $entry => $file) {
if ($file == basename ($_SERVER ['PHP_SELF'])) {
echo "<td style='border-radius: 8px; text-align: center; background: #ffb9b9;'>";
echo "<p style='text-align: center; color: #fff; font: normal 14px Helvetica, Arial, Sans-Serif;'>$entry</p>";
echo "</td>";
} else {
echo "<td>";
echo "<p style='text-align: center;'><a style='color: #ccc; font: normal 14px Helvetica, Arial, Sans-Serif;' href=\"$file\">$entry</a></p>";
echo "</td>";
}
}
?>
</tr>
</table>
Тогда должно быть так: