Internet Windows Android

Instrucțiuni pentru utilizarea jSQL Injection, un instrument multifuncțional pentru găsirea și exploatarea injecțiilor SQL în Kali Linux. Instrucțiuni pentru utilizarea jSQL Injection - un instrument multifuncțional pentru căutarea și exploatarea injecțiilor SQL în Kali Linux

Dacă sunteți interesat de răspunsul la întrebarea cum să creați un meniu pentru site-ul web, atunci ați ajuns la adresa potrivită.

Ne vom uita la crearea unui meniu dinamic în PHP, scris special pentru manechine de programare, precum și pentru cei care sunt încă în rezervor.

Lecția 3. Realizarea unui meniu în php pentru un site dinamic - pentru manechini

Să creăm viitorul aspect al site-ului nostru. Pentru a face acest lucru, vom desena un site web super frumos în Photoshop și îl vom tăia în bucăți. Să ne imaginăm că antetul, logo-ul, meniul și subsolul nu sunt scrise în cuvinte, ca în acest exemplu, ci acestea sunt elemente ale site-ului proiectate elegant și colorat.

Să creăm trei pagini, de exemplu, și să le numim Secțiunea 1, Secțiunea 2, Secțiunea 3

Acest text va fi diferit pentru diferite pagini, dar nu ne vom deranja cu el și îl vom lăsa așa cum este pe toate paginile.

Să începem să creăm un site web în PHP.

1. Selectați antetul, logo-ul, meniul, blocurile de subsol în fișiere separate cu extensia php sau html

header.html

logo.html

meniu.html

footer.html

Să adăugăm un fișier cu acest text, astfel încât să-l putem vedea pe toate paginile. Să-l sunăm text.html

Notă. De acum înainte voi păstra înregistrări suplimentare direct în dosar. text.html

2. Să creăm un șablon pentru site-ul nostru în PHP.

Pentru a face acest lucru, vom face un lucru simplu - salvați fișierul real, dar cu extensia php și ștergeți tot conținutul textului. Poate că nu este profesional, dar este de înțeles, dar vom complica totul mai târziu. Acum, principalul lucru este să înțelegeți principiul aspectului.

3. Acum nu avem nevoie de fișierul template.html.

Datorită lui, avem o idee despre cum va arăta site-ul nostru.

4. Șablonul nostru este fișierul template.php

Vom insera acum toate elementele site-ului în el folosind comanda include.

5. Să creăm trei pagini, așa cum urma să facem inițial.

Sectiunea 1, Hai sa sunăm 1.php

Sectiunea 2, Hai sa sunăm 2.php

Secțiunea 3, Hai sa sunăm 3.php

Pentru a face acest lucru, puteți utiliza cea mai simplă comandă Salvează ca...

Să le explic pentru cei mici: deschideți fișierul template.php, apoi apăsați Salvează ca...și salvați-l sub numele 1.php, repetați procedura și salvați secvențial paginile site-ului 2.php, 3.php

Am ajuns să avem 3 pagini cu același design. Doar lipiți-l în loc de fișier text.html alta, completarea cu poze diferite sau niste coduri html, scripturi si continutul fiecarei pagini va fi unic.

Atenţie!

Dacă fișierul nu este creat index.php pentru pagina principală, apoi în browser, tastând adresa site-ului, nu vom vedea site-ul în sine, ci doar structura directoarelor (lista de foldere).

Poți să te uiți în Denver și să vezi singur. Să remediam situația - creați un fișier index.phpși haideți să sunăm fără alte prelungiri Acasă. În același timp, să creăm un fișier text-home.htmlși folosind comanda include inserați-l pe pagina principală nou creată a site-ului.

6. Cum să vizualizați un site web în php?

Pur și simplu nu vom vedea ce s-a întâmplat. Acesta nu mai este un șablon cu extensie html.

Dar nici o problemă. Avem nevoie de al nostru, adică. server local de pe computerul dvs. Pentru a face acest lucru, vom instala Denver și vom privi rezultatul muncii noastre într-un browser fără a intra online.

Acum asta e ordinea. Am introdus adresa site-ului și am văzut tot ce tocmai fusese creat într-o formă normală cu design.

Acum să luăm în considerare meniul PHP al site-ului.

1. Deschideți fișierul menu.html și transformați secțiunile 1, 2 și 3 în link-uri de pe site. Link-urile în PHP sunt create în moduri diferite.

Sarcina noastră este să învățăm cum să simți un site creat în PHP. Prin urmare, vom face linkuri ca pe un site static obișnuit Secțiunea 1 etc.

Îmi place absolut acest proces de creare a linkurilor în Macromedia Dreamweaver. Aveți timp să culegeți Bineși bea cafea.

2. Cum să faci un link în meniu inactiv dacă vizitatorul se află pe această pagină.

Va fi mai convenabil pentru vizitator să navigheze pe site știind pe ce pagină se află.

Dacă ai urmat cu strictețe toți pașii punct cu punct, vei vedea că toate linkurile din meniu sunt mereu active. Cum să o repar?

În primul rând, să ne amintim definiția a ceea ce este Declarații condiționale

– acesta este momentul în care o acțiune este efectuată sau nu, în funcție de condiții.

Să facem următoarele:

  • Noi vom avea nevoie variabileși unul operator condițional:

if ($master == "Principal")// această condiție. Dacă este executat, atunci în acest loc al meniului, folosind comanda echo, sunt inserate etichete HTML obișnuite care afișează inscripția „Acasă”.

ecou"

Acasă

";

altfel// înseamnă „altfel” - ce se va întâmpla dacă condiția nu este îndeplinită. În acest caz, dacă condiția nu este îndeplinită, inscripția „Acasă” va fi un link care duce la pagina principală.

ecou"

Acasă

";

  • Am venit cu condiția, dar așa verifica variabilatrebuie să-l întrebi.

Pentru a face acest lucru, vom plasa următoarele blocuri de cod pe toate paginile:

$master = "Principal";

$master = „Secțiunea 1”;

$master = „Secțiunea 2”;

$master = „Secțiunea 3”;

După cum puteți vedea, fiecare pagină are propriul cod.

Deci, pașii noștri practici pentru crearea unui meniu PHP vor fi următorii:

1) Deschiderea fișierului index.php

și lipiți codul

$master = "Principal";

la locul în care introduceți codul care afișează meniul site-ului propriu-zis includeți „menu.html”;
?>

2) Deschiderea fișierului meniu.htmlși introduceți codul cu condiția în loc de un simplu link html către pagina principală.

Ne uităm în browser și admirăm! Dacă mergem la pagina principală, linkul nu mai este activ!

3) Repetați punctele 1 și 2 cu paginile 1.php, 2.php, 3.php

Repetiția 1:

1) Deschideți fișierul 1.php și introduceți înainte codul care afișează un bloc de meniu cu o variabilă dată

$master = „Secțiunea 1”;

2) Deschideți fișierul menu.html și introduceți codul cu condiția în loc de un simplu link Sectiunea 1, făcând următoarele modificări:

dacă ($master == „Secțiunea 1”)// această condiție. Dacă este executat, atunci în acest loc al meniului, folosind comanda echo, sunt inserate etichete HTML obișnuite care afișează inscripția „Secțiunea 1”.

ecou"

Sectiunea 1

";

altfel// înseamnă „altfel” - ce se va întâmpla dacă condiția nu este îndeplinită. În acest caz, dacă condiția nu este îndeplinită, inscripția „Secțiunea 1” va fi un link care duce la pagina principală.

ecou"

Sectiunea 1

";

Minunea s-a întâmplat din nou! Acum dacă suntem pe pagină Sectiunea 1, linkul din meniu nu este activ.

Repetiția este mama învățării! Sau pentru cei din rezervor! Din nou

Repetiția 2

1) Deschide fișierul 2.phpși lipiți codul.

$master = „Secțiunea 2”;

2) Deschideți din nou fișierul menu.html și inserați codul cu condiția

dacă ($master == „Secțiunea 2”)// această condiție. Dacă este executat, atunci în acest loc al meniului, folosind comanda echo, sunt inserate etichete HTML obișnuite care afișează inscripția „Secțiunea 2”.

ecou"

Sectiunea 2

";

altfel// înseamnă „altfel” - ce se va întâmpla dacă condiția nu este îndeplinită. În acest caz, dacă condiția nu este îndeplinită, inscripția „Secțiunea 2” va fi un link care duce la pagina principală.

ecou"

Sectiunea 2

";

Repetiția 3

1) Deschidere fișierul 3.phpși setați variabila.

$master = „Secțiunea 3”;

2) În fișierul menu.html introducem codul cu o condiție în loc de un link Secțiunea 3, modificările sunt:

dacă ($master == „Secțiunea 3”)// această condiție. Dacă se execută, atunci în acest loc al meniului, folosind comanda echo, sunt inserate etichete HTML obișnuite care afișează inscripția „Secțiunea 3”.

ecou"

Secțiunea 3

";

altfel// înseamnă „altfel” - ce se va întâmpla dacă condiția nu este îndeplinită. În acest caz, dacă condiția nu este îndeplinită, inscripția „Secțiunea 3” va fi un link care duce la pagina principală.

ecou"

Secțiunea 3

";

Concluzie: în loc de link-uri în acest tip de meniu

Acasă


Sectiunea 1

Sectiunea 2


Secțiunea 3

Această lecție despre php a fost scrisă ca răspuns la numeroase solicitări din partea vizitatorilor site-ului și este un ghid practic pentru a învăța cum să creați un meniu dinamic pentru un site în php.

Următorul webmaster vă va spune cum să creați titluri unice, descrieri și cuvinte cheie pentru fiecare pagină în PHP.

Puteți descărca arhiva cu toate șablonul site-ului și fișierele de meniu php. Recomandat pentru cei nou în programare.

Dacă ești gata să studiezi PHP serios, atunci este dificil să găsești un curs video mai bun de la Popov. Are multă experiență și un stil bun.

]]> ]]>

În articolul de pe blog înainte de ultimul, am scris despre inovațiile interesante ale celei mai recente versiuni de WordPress - un mecanism special pentru crearea și gestionarea . Acum a devenit mult mai convenabil și mai ușor pentru utilizatorii obișnuiți să creeze meniuri de complexitate diferită, care pot consta nu numai din pagini sau categorii de blog, ci și să aibă link-uri către orice URL. Pentru a afișa meniul în șablon, se folosește o funcție specială wp_nav_menu - vă voi spune despre asta astăzi.

Dacă nu există nicio secțiune de meniu în administratorul WordPress, o puteți activa adăugând cod special în fișierul functions.php

Iată mai întâi numele meniului pe care l-am creat. Aceasta este utilizarea unei funcții în cazul general fără widget-uri, va trebui să lucrați cu ele puțin diferit acolo. Cu toate acestea, funcția wp_nav_menu poate fi scoasă fără argumente, drept urmare diferite situații vor fi „examinate” - mai întâi, o potrivire după numele meniului, dacă este specificat cel puțin un element de meniu, în caz contrar un meniu nevid pur și simplu va fi afișat etc. Dar din nou, vă sfătuiesc să utilizați pur și simplu codul de mai sus și să nu vă dați seama ce ar trebui să scoată funcția fără argumente. Sintaxa sa este următoarea:

Următorii parametri sunt utilizați aici:

$meniu— identificatorul selectat pentru meniu — ID, slug sau numele meniului.

$container- Meniul UL este „împachetat” în mod implicit într-un container DIV folosind această setare.

$container_class— indică clasa containerului, valoarea sa implicită este menu-(menu slug)-container, adică în cazul nostru, de exemplu, va exista o clasă menu-first-container.

$container_id— puteți adăuga un ID la container, care nu este specificat în mod implicit.

$menu_class— clasa pentru elementul de meniu UL, valoarea sa este meniu.

$menu_id— ID pentru elementul ul, implicit la meniu-(slug)

$ecou— dacă nu doriți să afișați meniul, dar să returnați valoarea funcției, utilizați valoarea 0 pentru această setare.

$fallback_cb— dacă meniul nu există, se apelează funcția wp_page_menu.

$inainte— setează textul care este afișat înaintea linkului A.

$link_before— afișează expresia înainte de textul linkului, nespecificat.

$link_after— afișat după textul linkului, de asemenea, gol.

$adâncime— setează numărul de niveluri ierarhice pentru afișarea meniului; valoarea implicită 0 afișează întregul meniu.

$walker- un fel de „obiect walker” personalizat de neînțeles, probabil mai necesar pentru dezvoltatorii avansați.

$theme_location— locația temei în care va fi utilizat meniul trebuie activată prin register_nav_menu() pentru ca utilizatorul să o poată selecta. De asemenea, un fel de setare nu complet clară, aparent, atunci când lucrați cu widget-uri.

Exemple de utilizare a funcției wp_nav_menu

Cel mai simplu cod din cod este:

Eliminarea containerului DIV din meniu

"")); ?>

În principiu, nu este nimic complicat în crearea și gestionarea unui meniu WordPress 3.0. Dezvoltatorii au simplificat semnificativ procedura de lucru și au extins capacitățile acestui element de navigare. Soluția este adesea folosită într-o varietate de sarcini șablon, de exemplu, atunci când se creează pentru versiuni mobile și desktop. Puțin mai târziu, voi adăuga încă câteva fragmente pe acest subiect.

P.S. gardian. Un blog interesant și util pentru webmasteri despre SEO, unde vei găsi răspunsuri la întrebările tale despre SEO.
Compania Aweb s-a impus de mult timp foarte bine în domeniul promovării site-urilor web, optimizării și promovării motoarelor de căutare pe Internet.

Niciun site web nu este complet fără navigare sau, așa cum îl numesc și ei, un „meniu site”. Deci, meniul site-ului poate fi cu un singur nivel sau cu mai multe niveluri sub forma unui arbore. Dacă nu există dificultăți deosebite în ceea ce privește implementarea cu un meniu cu un singur nivel, atunci când creați un meniu cu mai multe niveluri, trebuie să vă gândiți cu atenție.

Cel mai important lucru în această sarcină este să proiectăm baza de date pentru meniul nostru cu mai multe niveluri. Să creăm un tabel Categorii cu trei câmpuri id, titlu, mamă Unde:

  • ID- identificator
  • Titlu- Numele meniului
  • Mamă- Categoria implicită părinte 0

Câmpul este responsabil pentru ramificarea meniului Mamă Dacă Părinte = 0, atunci această categorie este categoria părinte. Pentru a adăuga descendenți în categoria părinte, trebuie să specificați în câmpul părinte ID părintele potrivit. De exemplu:

Tabele cu categorii

După cum se vede din tabel, categoria părinte Mașini sunt doi descendenți – aceasta este MazdaȘi Hondaînrudite pe domenii Mamă. Și categoria Motociclete doi descendenţi sunt KawasakiȘi Harley. Totodată, categoria Bărci nu are descendenți. Sper că înțelegeți cum să legați categoriile.

Apoi trecem de la cuvinte la practică. Să creăm un tabel Categorii.

CREATE TABLE IF NU EXIST `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 ; -- -- Dump de date din tabelul `categories` -- INSERT INTO `categories` (`id`, `title`, `parent`) VALORI (1, "Mașini", 0), (2, "Motociclete", 0 ) , (3, „Mazda”, 1), (4, „Honda”, 1), (5, „Kawasaki”, 2), (6, „Harley”, 2), (7, „Mazda 3”, 3 ), (8, „Mazda 6”, 3), (9, „Sedan”, 7), (10, „Hatchback”, 7), (11, „Barci”, 0), (12, „Liftback” , 8), (13, „Crossover”, 8), (14, „Alb”, 13), (15, „Roșu”, 13), (16, „Negru”, 13), (17, „Verde” , 13), (18, „Mazda CX”, 3), (19, „Mazda MX”, 3);

Algoritmul de lucru constă în următoarele:

Creați o conexiune la baza de date

query("SET NUMELE "utf8""); /* * Acesta este modul „oficial” orientat pe obiect de a face acest lucru * cu toate acestea $connect_error nu a funcționat până la versiunile PHP 5.2.9 și 5.3.0. */ if ($mysqli->connect_error) ( die("Eroare de conectare (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Dacă trebuie să fii sigur de compatibilitatea cu versiunile înainte de 5.2 .9, * este mai bine să utilizați acest cod */ if (mysqli_connect_error()) ( die("Eroare de conectare (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); )

Scrierea unei funcții pentru a obține date din tabelul Categorii

//Obțineți matricea meniului nostru din baza de date ca funcție de matrice getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Creați o matrice unde cheia matricei este ID-ul meniului $cat = array(); while($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) return $ pisică )

Obținem o matrice ca aceasta, unde cheia matricei este ID-ul categoriei.

Funcția de a construi un copac din lemn masiv de la Tommy Lacroix

//Funcție pentru construirea unui arbore dintr-un tablou din funcția Tommy Lacroix getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Dacă nu există atașamente dacă ( !$node[" părinte"])( $tree[$id] = &$nod; )else( //Dacă există copii, atunci iterați prin matricea $dataset[$node["părinte"]]["copii „][$id] = &$ nod; ) returnează $tree;

Obținem o matrice sub forma unui arbore

Întregul scenariu

query("SET NUMELE "utf8""); /* * Acesta este modul „oficial” orientat pe obiect de a face acest lucru * cu toate acestea $connect_error nu a funcționat până la versiunile PHP 5.2.9 și 5.3.0. */ if ($mysqli->connect_error) ( die("Eroare de conectare (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Dacă trebuie să fii sigur de compatibilitatea cu versiunile înainte de 5.2 .9, * este mai bine să utilizați acest cod */ if (mysqli_connect_error()) ( die("Eroare de conectare (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); ) //Obțineți matricea a meniului nostru din baza de date ca o funcție matrice getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Creează o matrice în care cheia matricei este ID-ul meniului $cat = array(); while ($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) return $cat ) construirea unui arbore dintr-un tablou din funcția Tommy Lacroix getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Dacă nu există atașamente dacă (!$node[) „parent”])( $tree[$id] = &$node; )else( //Dacă există descendenți, atunci haideți să repetăm ​​matricea $dataset[$node[„parent”]][„childs”][ $id] = &$node ) ) return $tree ) //Obțineți o matrice pregătită cu date $cat = getCat($mysqli); //Creează un meniu arbore $tree = getTree($cat); //Șablon pentru afișarea unui meniu sub forma unei funcție de arbore tplMenu($category)( $meniu = "
  • ". $category["titlu"].""; if(isset($category["copii"]))( $meniu .= "
      „. showCat($category[„copii”]) .”
    "; ) $meniu .="
  • "; return $meniu; ) /** * Citiți șablonul nostru recursiv **/ function showCat($date)( $string = ""; foreach($data as $item)( $string .= tplMenu($item); ) return $șir ) //Obțineți marcaj HTML $cat_menu = showCat($tree);
      ".$cat_menu."
    "; ?>

    Rezultatul muncii

    Meniu cu mai multe niveluri în PHP + MySQL pentru panoul de administrare

    Dacă doriți să utilizați acest meniu în panoul de administrare al site-ului dvs., atunci trebuie să rescrieți câteva funcții tplMenu(), showCat().

    ".$category["titlu"].""; )else( $meniu = " "; ) if(isset($categoria["copii"]))( $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 ""; ?>

    Rezultatul muncii

    Selectați Mașini → Mazda →→ Mazda 3 →→→ Sedan →→→ Hatchback →→ Mazda 6 →→→ Liftback →→→ Crossover →→→→ Alb →→→→ Roșu → →→→ Negru →→→→ Verde →→ Mazda CX →→ Mazda MX → Motociclete Honda → Kawasaki → Harley Boats

    Pentru că expune conținutul modulului menu.php. Mai jos vom prezenta propriul nostru meniu de dezvoltare în PHP, care a fost scris de la zero într-un notepad.

    Acest cod va fi util în special pentru site-urile dinamice care au motoare personalizate. Voi oferi două opțiuni de cod care au diferențe minore (diferențele vor fi explicate mai târziu).

    Pentru început, voi oferi o structură aproximativă a site-ului pentru care este potrivit acest meniu. Structura site-ului ar trebui să arate astfel (vizualizare clasică):

    /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

    Site-ul poate conține și subsecțiuni pentru secțiuni:

    /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

    Această structură va funcționa și pentru meniul nostru, cu doar diferențe minore.

    Vă sugerez să creați un fișier separat pentru meniul în php. De exemplu, menu.php ar fi un nume grozav pentru un astfel de fișier. Pentru a implementa meniul, este oferit și un stil de meniu în CSS pentru a-l face imediat mai mult sau mai puțin frumos. Desigur, acest stil este dat doar pentru referință, deoarece design-urile site-urilor sunt foarte diferite.

    Cod pentru stilul meniului în CSS:

    .meniu (înălțime:42px; umplutură:0 0 0 16px; fundal:url(images/spacer.png) repetare; ) .meniu li ( display:block; float:left; ) .meniu li.active ( fundal: #000011 ; ) .menu a (color:#FFF; display:block; line-height:42px; text-decoration:none; padding:0 14px; ) .menu a:hover ( background:url(images/spacer.png) repetare )

    Acum, să ne uităm la prima opțiune pentru implementarea unui meniu în PHP, care este puțin simplificată.

    Prima versiune a codului de meniu în PHP

    \n"; pentru ($i=0;$i ": "
  • "; ecou" ".$array_menu[$i]["nume"]."
  • \n"; ) echo ""; ?>

    Meniul poate fi împărțit în două părți. Prima conține matricea de informații $array_menu, care conține numele secțiunilor noastre cu link-uri către secțiuni. Există o opțiune de a introduce aceste date în baza de date mySQL, dar nu există niciun punct special în acest sens, deoarece eșantionul este foarte mic, astfel încât acest lucru nu va afecta viteza de lucru.

    A doua parte conține ieșirea meniului printr-o buclă for. Ciclul compară adresa site-ului cu adresa din matricea $array_menu. Dacă există o potrivire, atunci vom afișa următoarea secțiune de meniu cu o clasă activă specială:

  • , altfel doar
  • . Acest lucru ne permite să evidențiem cu o anumită culoare partea din meniu în care se află utilizatorul. În opinia mea, acesta este un lucru necesar pentru orice site, pentru ca utilizatorul să înțeleagă în ce secțiune se află.

    Ordinea în matrice va fi păstrată atunci când meniul este afișat pe site. Adică, matricea trebuie să fie completată în ordinea în care ar trebui să fie afișat meniul.

    Notă:
    Dacă adresele URL (adresele) titlurilor secțiunilor arată astfel:
    /sectiunea 1
    sau așa
    /razdel_1/nazvanie_razdela.html
    atunci trebuie să scrieți o potrivire exactă în array_menu:
    $array_menu[$i]["url"]="/razdel_1"
    sau pentru al doilea caz:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Cum funcționează prima opțiune de meniu?
    Evidențiază meniul doar dacă vă aflați la adresa antetului secțiunii. De exemplu, dacă adresa paginii este /razdel_1/articles_1.html, atunci meniul nu va fi evidențiat în niciun fel.

    A doua versiune a codului este o versiune modificată a primei și oferă posibilitatea de a evidenția meniuri chiar și în articolele care sunt în secțiuni.

    A doua versiune a codului de meniu în PHP

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

    În acest articol vă voi arăta cum puteți crea meniu pe mai multe niveluri în PHP și MySQL. Desigur, puteți veni cu multe opțiuni pentru a-l crea, dar judecând după numărul de întrebări pe această temă, aveți nevoie de un exemplu. Și o voi da în acest articol. Permiteți-mi să notez imediat că acest articol are sens doar pentru cei care știu PHPși știe să lucreze cu MySQL. Toți ceilalți trebuie să treacă prin asta mai întâi sau să citească câteva cărți PHP și MySQL.

    Mai întâi, să creăm un tabel în baza de date cu următoarele câmpuri:

    • id- identificator unic.
    • titlu- ancorați linkuri în meniu.
    • legătură- adresa la care va duce articolul de meniu.
    • parent_id- ID de părinte. Dacă nu există niciun element părinte, atunci va fi NULL (sau puteți pune și 0).

    Am aranjat masa, acum este timpul Cod PHP. Deplin Cod PHP este dat mai jos:

    $mysqli = mysqli nou ("localhost", "root", "", "db"); // Conectați-vă la baza de date
    $result_set = $mysqli->query("SELECT * FROM `menu`"); // Selectați toate înregistrările din tabelul cu meniul
    $items = array(); // Matrice pentru elementele de meniu
    while (($row = $result_set->fetch_assoc()) != false) $items[$row["id"]] = $row; // Umpleți matricea cu un eșantion din baza de date
    $copii = array(); // Matrice pentru potrivirea elementelor copil cu părinții lor
    foreach ($articole ca $item) (
    if ($item["parent_id"]) $childrens[$item["id"]] = $item["parent_id"]; // Umpleți matricea
    }
    funcția printItem($item, $items, $childrens) (
    /* Afișează elementul de meniu */
    ecou"

  • ";
    echo "".$item["titlu"]."";
    $ul = fals; // Au fost randați copii?
    în timp ce (adevărat) (
    /* O buclă infinită în care căutăm toți copiii */
    $key = array_search($item["id"], $copii); // Căutăm un element copil
    dacă (!$key) (
    /* Nu s-au găsit copii */
    dacă ($ul) ecou ""; // Dacă au fost afișate elemente copil, atunci închideți lista
    pauză; // Ieși din buclă
    }
    unset($copii[$cheie]); // Eliminați elementul găsit (pentru ca acesta să nu fie afișat din nou)
    dacă (!$ul) (
    ecou"
      "; // Porniți lista internă dacă nu există încă elemente copil
      $ul = adevărat; // Setați steagul
      }
      echo printItem($articole[$cheie], $articole, $copii); // Afișează recursiv toate elementele copil
      }
      ecou"";
      }
      ?>

      Acest cod funcționează complet, cu toate acestea, trebuie să înțelegeți că nimeni nu scrie în acest fel (în special, ieșire prin ecou Etichete HTML). Și sarcina ta este să iei algoritmul din acest cod, dar nu și codul în sine. Și apoi conectați acest algoritm la motorul dvs. Am încercat să comentez cu atenție codul de ieșire meniu pe mai multe niveluri în PHP și MySQL, dar, desigur, nu este cel mai transparent și necesită cunoștințe inițiale destul de bune. Dacă încă nu știi bine PHP și MySQL, atunci recomand cu tărie să treci mai întâi prin aceasta