Інструкція з використання jSQL Injection – багатофункціональний інструмент пошуку та експлуатації SQL-ін'єкцій у Kali Linux. Багаторівневе меню на PHP та MySQL Inurl php own menu id ігри

Жоден сайт не обходиться без навігації або як ще називають "меню сайту". Так ось меню сайту буває однорівневим та багаторівневим у вигляді дерева. Якщо з однорівневим меню особливих складнощів у плані реалізації немає, то при створенні багаторівневого меню потрібно добре подумати.

Найголовніше у цій задачі це спроектувати базу даних для нашого багаторівневого меню. Створимо таблицю Categories із трьома полями id, title, parentде:

  • ID- ідентифікатор
  • Title- Назва меню
  • Parent- Батько категорії за замовчуванням 0

За розгалуження меню відповідає поле Parentякщо Parent = 0, то ця категорія є батьківською. Для того щоб додати нащадків до батьківської категорії, потрібно в полі parent вказати IDпотрібного батька. Наприклад:

Таблиці з категоріями

Як видно з таблиці, у батьківської категорії Автомобіліє два нащадки - це Маздаі Хондапов'язаних по полю Parent. А у категорії Мотоциклидва нащадки - це Кавасакіі Харлей. При цьому категорія Човна не має нащадків. Сподіваюся, що Ви зрозуміли, як зв'язати категорії.

Далі переходимо від слів до практики. Створимо таблицю категорії.

CREATE TABLE IF NOT EXISTS `categories` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `parent` int(10) unsigned NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20; -- -- Дамп даних таблиці `categories` -- INSERT INTO `categories` (`id`, `title`, `parent`) VALUES (1, "Автомобілі", 0), (2, "Мотоцикли", 0) , (3, "Мазда", 1), (4, "Хонда", 1), (5, "Кавасакі", 2), (6, "Харлей", 2), (7, "Мазда 3", 3 ), (8, "Мазда 6", 3), (9, "Седан", 7), (10, "Хечбек", 7), (11, "Човни", 0), (12, "Ліфтбек", 8), (13, "Кросовер", 8), (14, "Білий", 13), (15, "Червоний", 13), (16, "Чорний", 13), (17, "Зелений", 13), (18, "Мазда CX", 3), (19, "Мазда MX", 3);

Алгоритм роботи складається з наступного:

Створюємо з'єднання з базою даних

query("SET NAMES "utf8""); /* * Це "офіційний" об'єктно-орієнтований спосіб зробити це * проте $connect_error не працював аж до версій PHP 5.2.9 та 5.3.0. */ if ($mysqli->connect_error) ( die("Помилка підключення (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Якщо потрібно бути впевненим у сумісності з версіями до 5.2 .9, * краще використовувати такий код */ if (mysqli_connect_error()) ( die("Помилка підключення (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); )

Пишемо функцію отримання даних із таблиці Categories

//Отримуємо масив нашого меню з БД у вигляді масиву function getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Створюємо масив де ключ масиву є ID меню $cat = array();

Отримуємо масив такого виду, де ключ масиву це ID категорії.

Функція побудови дерева із масиву від Tommy Lacroix

//Функція побудови дерева з масиву від Tommy Lacroix function getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Якщо немає вкладень if (!$node[" parent"])( $tree[$id] = &$node; )else( //Якщо є нащадки то перебираємо масив $dataset[$node["parent"]]["childs"][$id] = &$ node;)) return $tree;)

Отримуємо масив у вигляді дерева

Скрипт цілком

query("SET NAMES "utf8""); /* * Це "офіційний" об'єктно-орієнтований спосіб зробити це * проте $connect_error не працював аж до версій PHP 5.2.9 та 5.3.0. */ if ($mysqli->connect_error) ( die("Помилка підключення (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Якщо потрібно бути впевненим у сумісності з версіями до 5.2 .9, * краще використовувати такий код */ if (mysqli_connect_error()) ( die("Помилка підключення (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); ) //Отримуємо масив нашого меню з БД у вигляді масиву function getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Створюємо масив де ключ масиву є ID меню $cat = array(); while ($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) return $cat; ) //Функція побудови дерева з масиву від Tommy Lacroix function getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Якщо немає вкладень if (!$node["parent"])( $tree[$id] = &$node; )else( //Якщо є нащадки, то перебираємо масив $dataset[$node["parent"]]["childs"][$id] = &$node; ) ) return $tree; ) //Отримуємо підготовлений масив з даними $ cat = getCat ($ mysqli); //Створюємо деревоподібне меню $tree = getTree($cat); //Шаблон для виведення меню у вигляді дерева function tplMenu($category)( $menu = "
  • ". $category["title"].""; if(isset($category["childs"]))( $menu .= "
      ". showCat($category["childs"]) ."
    "; ) $menu .= "
  • "; return $menu; ) /** * Рекурсивно зчитуємо наш шаблон **/ function showCat($data)( $string = ""; foreach($data as $item)( $string .= tplMenu($item); ) return $string; ) //Отримуємо HTML розмітку $cat_menu = showCat($tree); //Виводимо на екран echo "
      ". $cat_menu ."
    "; ?>

    Результат праці

    Багаторівневе меню на PHP + MySQL для адмінки

    Якщо Ви хочете використовувати дане меню в адмінці свого сайту, потрібно переписати пару функцій tplMenu(), showCat().

    ".$category["title"].""; )else( $menu = " "; ) if(isset($category["childs"]))( $i = 1; for($j = 0; $j< $i; $j++){ $str .= "→"; } $i++; $menu .= showCat($category["childs"], $str); } return $menu; } /** * Рекурсивно считываем наш шаблон **/ function showCat($data, $str){ $string = ""; $str = $str; foreach($data as $item){ $string .= tplMenu($item, $str); } return $string; } //Получаем HTML разметку $cat_menu = showCat($tree, ""); //Выводим на экран echo ""; ?>

    Результат праці

    Автомобілі → Mazda →→ Mazda 3 →→→ Sedan →→→ Хечбек →→ Mazda 6 →→→ Ліфтбек →→→ Кросовер →→→→ Білий →→→→ Червоний →→→→ Чорний →→→→ Зелений →→ Мазда CX →→ Мазда MX → Хонда Мотоцикли → Кавасакі → Харлей Човни

    Запустіть завантажений файл подвійним кліком (потрібно мати віртуальну машину).

    3. Анонімність під час перевірки сайту на SQL-ін'єкції

    Налаштування Tor і Privoxy у Kali Linux

    [Розділ у розробці]

    Налаштування Tor та Privoxy у Windows

    [Розділ у розробці]

    Налаштування роботи через проксі в jSQL Injection

    [Розділ у розробці]

    4. Перевірка сайту на SQL-ін'єкції з jSQL Injection

    Робота з програмою вкрай проста. Достатньо ввести адресу сайту та натиснути ENTER.

    На наступному скріншоті видно, що сайт вразливий відразу до трьох видів SQL-ін'єкцій (інформація про них вказана в нижньому правому кутку). Клікаючи на назви ін'єкцій можна переключити використовуваний метод:

    Також нам вже виведено наявні бази даних.

    Можна переглянути вміст кожної таблиці:

    Зазвичай найцікавішим у таблицях є облікові дані адміністратора.

    Якщо вам пощастило і ви знайшли дані адміністратора, то радіти рано. Потрібно ще знайти адмінку, куди ці дані вводити.

    5. Пошук адмінок з jSQL Injection

    Для цього переходьте до наступної вкладки. Тут нас зустрічає перелік можливих адрес. Ви можете вибрати одну або кілька сторінок для перевірки:

    Зручність у тому, що не потрібно використовувати інші програми.

    На жаль, недбайливих програмістів, які зберігають паролі у відкритому вигляді, не дуже багато. Досить часто в рядку пароля ми бачимо щось на зразок

    8743b52063cd84097a65d1633f5c74f5

    Це хеш. Розшифрувати його можна брутфорсом. І… jSQL Injection має вбудований брутфорсер.

    6. Брутфорсинг хешей за допомогою jSQL Injection

    Безсумнівною зручністю є те, що не потрібно шукати інші програми. Тут є підтримка багатьох найпопулярніших хешей.

    Це не найоптимальніший варіант. Для того, щоб стати гуру у розшифровці хешей, рекомендується Книга « » російською мовою.

    Але, звичайно, коли під рукою немає іншої програми або немає часу на вивчення, jSQL Injection із вбудованою функцією брут-форсу буде дуже доречним.

    Існують настройки: можна задати які символи входять у пароль, діапазон довжини пароля.

    7. Операції з файлами після виявлення SQL-ін'єкцій

    Крім операцій з базами даних - їх читання та модифікація, у разі виявлення SQL-ін'єкцій можливе виконання таких файлових операцій:

    • читання файлів на сервері
    • вивантаження нових файлів на сервер
    • вивантаження шеллів на сервер

    І все це реалізовано у jSQL Injection!

    Є обмеження - у SQL-сервера мають бути файлові привілеї. У розумних системних адміністраторів вони відключені і доступу до файлової системи отримати не вдасться.

    Наявність файлових привілеїв досить легко перевірити. Перейдіть до однієї із вкладок (читання файлів, створення шелла, завантаження нового файлу) і спробуйте виконати одну із зазначених операцій.

    Ще дуже важливе зауваження – нам потрібно знати точний абсолютний шлях до файлу з яким ми будемо працювати – інакше нічого не вийде.

    Подивіться на наступний скріншот:

    На будь-яку спробу операції з файлом нам відповідають: No FILE privilege(Немає файлових привілеїв). І нічого тут вдіяти не можна.

    Якщо натомість у вас інша помилка:

    Problem writing into [назва_каталогу]

    Це означає, що ви неправильно вказали абсолютний шлях, до якого потрібно записувати файл.

    Для того щоб припустити абсолютний шлях, потрібно, як мінімум, знати операційну систему на якій працює сервер. Для цього перейдіть до вкладки Network.

    Такий запис (рядок Win64) дає підстави нам припустити, що маємо справу з ОС Windows:

    Keep-Alive: timeout=5, max=99 Server: Apache/2.4.17 (Win64) PHP/7.0.0RC6 Connection: Keep-Alive Метод: HTTP/1.1 200 OK Content-Length: 353 Date: Fri, 11 Dec 201 11:48:31 GMT X-Powered-By: PHP/7.0.0RC6 Content-Type: text/html; charset=UTF-8

    Тут у нас якийсь із Unix (*BSD, Linux):

    Transfer-Encoding: chunked Дата: Fri, 11 Dec 2015 11:57:02 GMT Метод: HTTP/1.1 200 OK Keep-Alive: timeout=3, max=100 Connection: keep-alive Content-Type: text/html X- Powered-By: PHP/5.3.29 Server: Apache/2.2.31 (Unix)

    А тут у нас CentOS:

    Метод: HTTP/1.1 200 OK Expires: Thu, 19 Nov 1981 08:52:00 GMT Set-Cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; path=/ Connection: keep-alive X-Cache-Lookup: MISS від t1.hoster.ru:6666 Server: Apache/2.2.15 (CentOS) t1.hoster.ru Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Transfer-Encoding: chunked Content-Type: text/html; charset=WINDOWS-1251

    У Windows типовою папкою для сайтів є C:\Server\data\htdocs\. Але, насправді, якщо хтось «додумався» робити сервер на Windows, то, можливо, ця людина нічого не чула про привілеї. Тому розпочинати спроби варто прямо з каталогу C:/Windows/:

    Як бачимо, все пройшло чудово з першого разу.

    Але самі шелли jSQL Injection у мене викликають сумніви. Якщо є файлові привілеї, то ви можете завантажити що-небудь з веб-інтерфейсом.

    8. Масова перевірка сайтів на SQL-ін'єкції

    І навіть ця функція є у jSQL Injection. Все просто - завантажуєте список сайтів (можна імпортувати з файлу), вибираєте ті, які хочете перевірити і натискаєте відповідну кнопку для початку операції.

    Висновок з jSQL Injection

    jSQL Injection хороший, потужний інструмент для пошуку та подальшого використання знайдених на сайтах SQL-ін'єкцій. Його безперечні плюси: простота використання, вбудовані супутні функції. jSQL Injection може стати найкращим другом новачка під час аналізу веб-сайтів.

    З недоліків я б наголосив на неможливості редагування баз даних (принаймні я цього функціоналу не знайшов). Як і всі інструменти з графічним інтерфейсом, до недоліків цієї програми можна приписати неможливість використання в скриптах. Проте деяка автоматизація можлива і в цій програмі завдяки вбудованій функції масової перевірки сайтів.

    Встановленого зразка та сертифікат. Спеціальна знижка на будь-які факультети та курси!

    Поза минулою статтею блогу я писав про цікаве нововведення останньої версії wordpress — спеціальний механізм створення та управління. Тепер стало набагато зручніше і простіше звичайним користувачам створювати різні за складністю меню, які можуть бути не тільки сторінками або категоріями блогу, але й мати посилання на будь-які URL. Для відображення меню в шаблоні використовується спеціальна функція wp_nav_menu - про неї сьогодні розповім.

    Якщо в адмінці wordpress немає розділу меню, то його можна активувати додаванням спеціального коду до файлу functions.php

    Тут first – назва створеного нами меню. Це використання функції в загальному випадку без віджетів, з ними там потрібно буде трохи інакше працювати. Проте функція wp_nav_menu може виводитися і без аргументів, в результаті чого будуть «переглядатися» різні ситуації — спочатку збіг за назвою меню, якщо для нього вказано хоча б один пункт меню, інакше буде відображено непусте меню ну і т.п . Але знову ж таки раджу просто використовувати наведений вище код і не розбиратися потім, що повинна виводити функція без аргументів. Її синтаксис виглядає так:

    Тут використовуються такі параметри:

    $menu— Вибраний ідентифікатор меню — ID, slug або назва меню.

    $container— меню UL за умовчанням «обертається» в контейнер DIV за допомогою налаштування.

    $container_class— вказує клас контейнера, за умовчанням його значення menu-(menu slug)-container, тобто у нашому випадку, наприклад, буде клас menu-first-container.

    $container_id— можна додати контейнер ID, за замовчуванням не вказано.

    $menu_class- Клас для елемента меню UL, його значення - Menu.

    $menu_id- ID для елемента ul, за умовчанням дорівнює значенню menu-(slug)

    $echo— якщо ви не бажаєте відображати меню, а повертати значення функції використовуйте для цього параметра значення 0.

    $fallback_cb— якщо меню не існує, функція wp_page_menu викликається.

    $before- Задає текст, який виводиться перед посиланням А.

    $link_before- Виводить фразу перед текстом посилання, не задано.

    $link_after- Виводиться після тексту посилання, теж порожнє.

    $depth- задає кількість рівнів ієрархії для виведення меню, значення за промовчанням 0 виводить все меню повністю.

    $walker— якийсь незрозумілий «walker object», напевно, більше знадобиться розвиненим розробникам.

    $theme_location— локація теми, де буде використане меню, має бути активована через register_nav_menu() для того, щоб користувач зміг її вибирати. Теж якесь не зовсім зрозуміле налаштування, зважаючи на все, при роботі з віджетами.

    Приклади використання функції wp_nav_menu

    Найпростіший код, наведений у кодексі:

    Забираємо контейнер DIV з меню

    "")); ?>

    В принципі, нічого складного у створенні та управлінні меню Wordpress 3.0 немає. Розробники значно спростили процедуру роботи та розширили можливості даного елемента навігації. Рішення часто використовується в багатьох задачах за шаблоном, наприклад, при створенні для мобільної та десктопної версії. Трохи пізніше додам ще кілька сніпетів по темі.

    P.S. Постовий. Цікавий і корисний вебмайстрам Блог з SEO , де ви знайдете відповіді на питання, що вас цікавлять по seo.
    Компанія Aweb вже давно і дуже добре зарекомендувала себе в галузі послуг розкрутка сайту, оптимізація та пошукове просування в інтернеті.

    Оскільки вона розкриває зміст модуля menu.php. Нижче буде представлено власну розробку меню на PHP, яка була написана з нуля в блокноті.

    Цей код особливо корисний для динамічних сайтів, які мають самописні движки. Я запропоную два варіанти коду, які мають незначні відмінності (у чому різниця буде пояснена після).

    Для початку наведу зразкову структуру сайту, для якого підійде це меню. Структура сайту повинна мати такий вигляд (класичний вигляд):

    /index.html /razdel_1/ /razdel_1/articles_1.html /razdel_1/articles_2.html ... /razdel_2/ /razdel_2/articles_1.html /razdel_2/articles_2.html ... ... ... /razdel_N/articles_2 .html

    Сайт може містити розділи ще й підрозділи:

    /razdel_1/podzaderl_1/ /razdel_1/podzaderl_1/articles_1.html /razdel_1/podzaderl_1/articles_2.html ... /razdel_1/podzaderl_2/articles_1.html /razdel_1/podzaderl_2/articles_2.html

    Така структура також працюватиме для нашого меню лише з невеликими відмінностями.

    Я пропоную створити окремий файл для меню на PHP. Наприклад, menu.php було б чудовою назвою для такого файлика. Для реалізації меню також представлений стиль меню CSS, щоб відразу зробити його більш менш красивим. Природно, цей стиль дається тільки для ознайомлення, оскільки дизайни у ​​сайтів дуже різні.

    Код для стилю меню CSS:

    .menu ( height:42px; padding:0 0 0 16px; background:url(images/spacer.png) repeat; ) .menu li ( display:block; float:left; ) .menu li.active ( background: #000011 ; ) .menu a ( color:#FFF; display:block; line-height:42px; text-decoration:none; ;)

    Тепер, давайте розглянемо перший варіант реалізації меню на PHP, який є трохи спрощеним.

    Перший варіант коду меню на PHP

    \n"; for ($i=0;$i ": "
  • "; echo" ".$array_menu[$i]["name"]."
  • \n"; ) echo ""; ?>

    Меню можна поділити на дві частини. Перша містить інформаційний масив $array_menu, до якого заносяться назви наших розділів із посиланнями на розділи. Є варіант забити ці дані в базу даних mySQL, але особливо сенсу в цьому немає, оскільки вибірка зовсім невелика, тому швидкість роботи це ніяк не вплине.

    Друга частина містить виведення меню через цикл for. У циклі відбувається порівняння адреси сайту з адресою з масиву $array_menu. Якщо є збіг, то виводимо черговий розділ меню зі спеціальним класом active:

  • , інакше просто
  • . Це дозволяє нам виділити якимось кольором ту частину меню, де знаходиться користувач. На мій погляд, це необхідна річ для будь-якого сайту, щоб користувач міг розуміти, в якому розділі він знаходиться.

    Порядок прямування в масиві буде зберігатися при виведенні меню на сайті. Тобто масив треба заповнювати у порядку, в якому потрібно виводити меню.

    Примітка:
    Якщо URL (адреса) заголовком розділів мають вигляд:
    /razdel_1
    або такий
    /razdel_1/nazvanie_razdela.html
    то в array_menu потрібно записувати точний збіг:
    $array_menu[$i]["url"]="/razdel_1"
    або для другого випадку:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Як працює перший варіант меню?
    Він підсвічує меню лише, якщо Ви знаходитесь за адресою розділу. Наприклад, якщо адреса сторінки буде /razdel_1/articles_1.html, то меню ніяк не підсвічуватиметься.

    Другий варіант коду є модифікованим варіантом першого та передбачає можливість підсвічування меню навіть у статтях, які знаходяться у розділах.

    Другий варіант коду меню на PHP

    "; for ($i=0;$i ": "
  • "; echo "".$array_menu[$i]["title"]."
  • "; ) else ( echo ($URL) == ($array_menu[$i]["url"]) ? "
  • ": "
  • "; echo "".$array_menu[$i]["title"]."
  • ";)) echo""; ?>

    Якщо вас цікавить відповідь на питання, як створити меню сайту, то ви прийшли за правильною адресою.

    Ми розглянемо створення динамічного меню на php, написане спеціально для чайників у програмуванні, а також тих, хто ще в танку.

    Меню на php для сайту робимо динамічним - чайникам

    Створимо майбутній макет нашого сайту. Для цього намалюємо у фотошопі супер красивий сайт та розріжемо на шматочки. Уявимо, що шапка, логотип, меню та підвал не написані словами, як у даному прикладі, а це вишукано та барвисто оформлені елементи сайту.

    Створимо для прикладу три сторінки та назвемо їх Розділ 1, Розділ 2, Розділ 3

    Цей текст для різних сторінок буде різним, але ми не будемо на ньому морочитися і залишимо його як є на всіх сторінках.

    Приступимо до створення сайту на php.

    1. Виділимо блоки header, logo, menu, footer в окремі файли з розширенням php або html

    header.html

    logo.html

    menu.html

    footer.html

    Додамо файл із цим текстом, щоб бачити його на всіх сторінках. Назвемо його text.html

    Примітка. З цього моменту подальші записи вестиму безпосередньо у файлі text.html

    2. Створимо шаблон для нашого сайту на PHP.

    Для цього зробимо просто - збережемо справжній файл, але вже з розширенням php і зітремо все текстове наповнення. Нехай це не професійно, проте зрозуміло, а ускладнювати все будемо пізніше. Нині головне зрозуміти принцип верстки.

    3. Тепер файл template.html нам не потрібний.

    Завдяки йому ми маємо уявлення про те, як виглядатиме наш сайт.

    4. Нашим шаблоном є файл template.php

    У нього ми зараз вставимо за допомогою команди include всі елементи сайту.

    5. Створимо три сторінки, як збиралися спочатку.

    Розділ 1, назвемо 1.php

    Розділ 2, назвемо 2.php

    Розділ 3, назвемо 3.php

    Для цього можна скористатися найпростішою командою зберегти як...

    Для найменших поясню: відкриваємо файл template.phpпотім натискаємо зберегти як...та зберігаємо під назвою 1.php, повторюємо процедуру та послідовно збережемо сторінки сайту 2.php, 3.php

    У нас вийшло 3 сторінки з однаковим дизайном. Достатньо вставляти замість файлу text.htmlінший, доповнювати різними картинками або будь-якими HTML кодами, скриптами і вміст кожної сторінки буде унікальним.

    Увага!

    Якщо не буде створено файл index.phpдля головної сторінки, то в браузері, набравши адресу сайту ми не побачимо сам сайт, а лише структуру директорії (перелік папок).

    Можете подивитися у денвері та переконатися. Виправимо ситуацію - створимо файл index.phpі назвемо довго не мудруючи Головна. Заодно створимо файл text-home.htmlта за допомогою команди includeвставимо на щойно створену головну сторінку сайту.

    6. Як переглянути сайт на php?

    Що вийшло – так просто не побачимо. Це вже не шаблон із розширенням html.

    Але й не проблема. Нам потрібен свій, тобто. локального сервера на комп'ютері. Для цього встановимо денвер і результат роботи будемо дивитися в браузері, не виходячи в інтернет.

    Ось тепер лад. Набрала адресу сайту та побачила все щойно створене в нормальному вигляді з дизайном.

    Тепер візьмемося до php меню сайту.

    1. Відкриємо файл menu.html і перетворимо розділ 1, 2 та 3 на посилання по сайту. Посилання у php створюються по-різному.

    Наше завдання – навчитися відчувати сайт, створений на php. Тому посилання будемо робити як на звичайному статичному сайті Розділ 1 і т.д.

    Мені ця процедура створення посилань шалено подобається в Macromedia Dreamweaver. Встигай тиснути ОКі пити каву.

    2. Як зробити посилання в меню неактивним, якщо відвідувач знаходиться на даній сторінці.

    Відвідувачу буде зручніше орієнтуватися на сайті знаючи, на якій саме сторінці він знаходиться.

    Якщо ви виконали всі кроки по пунктах, то бачите, що у нас всі посилання в меню активні постійно. Як це виправити?

    Для початку згадаємо визначення що таке Умовні оператори

    – це коли якась дія виконується чи не виконується залежно від умов.

    Виконаємо такі дії:

    • Нам знадобляться змінніі один умовний оператор:

    if ($master == "Головна")// Це умова. Якщо воно виконується – то в даному місці меню за допомогою команди echo вставляються звичайні HTML-теги, що виводять напис «Головна».

    echo "

    Головна

    ";

    else// означає «інакше» - що станеться, якщо умова не виконується. У разі при невиконанні умови напис «Головна» буде посиланням, яка веде головну сторінку.

    echo "

    Головна

    ";

    • Умову ми вигадали, але щоб перевірити зміннупотрібно її задати.

    Для цього на всіх сторінках розмістимо такі блоки коду:

    $master = "Головна";

    $master = "Розділ 1";

    $master = "Розділ 2";

    $master = "Розділ 3";

    Як бачимо для кожної сторінки свій код.

    Отже, наші практичні кроки зі створення php меню будуть наступні:

    1) Відкриваємо файл index.php

    та вставляємо код

    $master = "Головна";

    до місця вставки коду, що виводить саме меню сайту include "menu.html";
    ?>

    2) Відкриваємо файл menu.htmlі вставляємо код із умовою замість простого html посилання на головну сторінку.

    Дивимося у браузері та милуємося! Якщо зайдемо на головну сторінку, то посилання перестало бути активним!

    3) Повторюємо пункт 1 та 2 зі сторінками 1.php, 2.php, 3.php

    Повторення 1:

    1) Відкриваємо файл 1.php і вставляємо до коду, що виводить меню блок із заданою змінною

    $master = "Розділ 1";

    2) Відкриваємо файл menu.html та вставляємо код із умовою замість простого посилання Розділ 1, внісши такі зміни:

    if ($master == "Розділ 1")// Це умова. Якщо воно виконується – то в цьому місці меню за допомогою команди echo вставляються звичайні HTML-теги, що виводять напис «Розділ 1».

    echo "

    Розділ 1

    ";

    else// означає «інакше» - що станеться, якщо умова не виконується. У разі при невиконанні умови напис «Розділ 1» буде посиланням, яка веде головну сторінку.

    echo "

    Розділ 1

    ";

    Чудо повторилося! Тепер, якщо ми знаходимося на сторінці Розділ 1, посилання в меню не активне.

    Повторення – мати навчання! Або для тих, хто у танку! Ще раз

    Повторення 2

    1) Відкриваємо файл 2.phpта вставляємо код.

    $master = "Розділ 2";

    2) Знову відкриємо файл menu.html і вставляємо код за умови

    if ($master == "Розділ 2")// Це умова. Якщо воно виконується, то в цьому місці меню за допомогою команди echo вставляються звичайні HTML-теги, що виводять напис «Розділ 2».

    echo "

    Розділ 2

    ";

    else// означає «інакше» - що станеться, якщо умова не виконується. У разі при невиконанні умови напис «Розділ 2» буде посиланням, яка веде головну сторінку.

    echo "

    Розділ 2

    ";

    Повторення 3

    1) Відкриваємо файл 3.phpі задаємо змінну.

    $master = "Розділ 3";

    2) У файл menu.html вставляємо код із умовою замість посилання Розділ 3, зміни такі:

    if ($master == "Розділ 3")// Це умова. Якщо воно виконується – то в цьому місці меню за допомогою команди echo вставляються звичайні HTML-теги, що виводять напис «Розділ 3».

    echo "

    Розділ 3

    ";

    else// означає «інакше» - що станеться, якщо умова не виконується. У разі при невиконанні умови напис «Розділ 3» буде посиланням, яка веде головну сторінку.

    echo "

    Розділ 3

    ";

    Підсумок: ми замість посилань у меню такого виду

    Головна


    Розділ 1

    Розділ 2


    Розділ 3

    Цей урок про php був написаний на численні прохання відвідувачів сайту і є практичним посібником з вивчення створення динамічного меню для сайту на php.

    Наступна шпрагалка вебмайстра розповість про те, як зробити на php унікальні заголовки, описи та ключові слова для кожної сторінки.

    Ви можете завантажити архів з усіма файлами шаблону сайту та меню php. Початківцям у програмуванні рекомендується.

    Якщо ж ви готові до серйозного вивчення php, краще відео курсу від Попова знайти складно. У нього величезний досвід та гарний склад.

    ]]> ]]>



  • 2024 | Комп'ютери для всіх - Налаштування, встановлення, відновлення