Instrucțiuni pentru utilizarea jSQL Injection, un instrument multifuncțional pentru găsirea și exploatarea injecțiilor SQL în Kali Linux. Meniu cu mai multe niveluri în PHP și MySQL Inurl php propriul meniu ID joc

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ție de construcție 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; ) //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[) „parent”])( $tree[$id] = &$node; )else( //Dacă există descendenți, atunci treceți prin 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); ) returnează $șir; ) //Obțineți marcaj HTML $cat_menu = showCat($tree); //Afișează ecou "
      ".$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

    Rulați fișierul descărcat făcând dublu clic (trebuie să aveți o mașină virtuală).

    3. Anonimitatea la verificarea unui site pentru injectare SQL

    Configurarea Tor și Privoxy în Kali Linux

    [Secțiune în curs de dezvoltare]

    Configurarea Tor și Privoxy pe Windows

    [Secțiune în curs de dezvoltare]

    Setări proxy în jSQL Injection

    [Secțiune în curs de dezvoltare]

    4. Verificarea site-ului pentru injectare SQL cu jSQL Injection

    Lucrul cu programul este extrem de simplu. Doar introduceți adresa site-ului web și apăsați ENTER.

    Următoarea captură de ecran arată că site-ul este vulnerabil la trei tipuri de injecții SQL (informațiile despre acestea sunt indicate în colțul din dreapta jos). Făcând clic pe numele injecțiilor, puteți schimba metoda utilizată:

    De asemenea, bazele de date existente ne-au fost deja afișate.

    Puteți vizualiza conținutul fiecărui tabel:

    De obicei, cel mai interesant lucru despre tabele sunt acreditările de administrator.

    Dacă aveți noroc și găsiți datele administratorului, atunci este prea devreme să vă bucurați. Încă trebuie să găsiți panoul de administrare unde să introduceți aceste date.

    5. Căutați panouri de administrare cu jSQL Injection

    Pentru a face acest lucru, mergeți la următoarea filă. Aici suntem întâmpinați cu o listă de adrese posibile. Puteți selecta una sau mai multe pagini pentru a verifica:

    Comoditatea constă în faptul că nu trebuie să utilizați alte programe.

    Din păcate, nu există foarte mulți programatori neglijenți care stochează parolele în text clar. Destul de des în linia parolei vedem ceva de genul

    8743b52063cd84097a65d1633f5c74f5

    Acesta este un hash. Îl puteți decripta folosind forța brută. Și... jSQL Injection are un brute forcer încorporat.

    6. Hash-uri de forță brută folosind jSQL Injection

    Comoditatea incontestabilă este că nu trebuie să cauți alte programe. Există suport pentru multe dintre cele mai populare hashe-uri.

    Aceasta nu este cea mai bună opțiune. Pentru a deveni un guru în decodarea hashurilor, este recomandată Cartea „” în rusă.

    Dar, desigur, când nu există un alt program la îndemână sau nu există timp de studiat, jSQL Injection cu funcția de forță brută încorporată va fi foarte utilă.

    Există setări: puteți seta ce caractere sunt incluse în parolă, intervalul de lungime a parolei.

    7. Operațiuni cu fișiere după detectarea injecțiilor SQL

    Pe lângă operațiunile cu baze de date - citirea și modificarea acestora, dacă sunt detectate injecții SQL, pot fi efectuate următoarele operațiuni cu fișiere:

    • citirea fișierelor de pe server
    • încărcarea fișierelor noi pe server
    • încărcarea shell-urilor pe server

    Și toate acestea sunt implementate în jSQL Injection!

    Există restricții - serverul SQL trebuie să aibă privilegii de fișier. Administratorii de sistem inteligent le au dezactivate și nu vor putea avea acces la sistemul de fișiere.

    Prezența privilegiilor de fișier este destul de simplu de verificat. Accesați una dintre file (citirea fișierelor, crearea unui shell, încărcarea unui fișier nou) și încercați să efectuați una dintre operațiunile specificate.

    O altă notă foarte importantă - trebuie să știm calea absolută exactă către fișierul cu care vom lucra - altfel nimic nu va funcționa.

    Uită-te la următoarea captură de ecran:

    La orice încercare de a opera asupra unui fișier, primim următorul răspuns: Niciun privilegiu FILE(fără privilegii de fișier). Și nu se poate face nimic aici.

    Dacă în schimb aveți o altă eroare:

    Problemă la scrierea în [nume_director]

    Aceasta înseamnă că ați specificat incorect calea absolută în care doriți să scrieți fișierul.

    Pentru a ghici o cale absolută, trebuie să cunoașteți cel puțin sistemul de operare pe care rulează serverul. Pentru a face acest lucru, treceți la fila Rețea.

    O astfel de înregistrare (linia Win64) ne dă motive să presupunem că avem de-a face cu sistemul de operare Windows:

    Keep-Alive: timeout=5, max=99 Server: Apache/2.4.17 (Win64) PHP/7.0.0RC6 Conexiune: Keep-Alive Metoda: HTTP/1.1 200 OK Lungime conținut: 353 Data: Vineri, 11 Dec 2015 11:48:31 GMT X-Powered-By: PHP/7.0.0RC6 Tip de conținut: text/html; set de caractere=UTF-8

    Aici avem câteva Unix (*BSD, Linux):

    Codificare transfer: fragmentat Data: vineri, 11 decembrie 2015 11:57:02 GMT Metodă: HTTP/1.1 200 OK Keep-Alive: timeout=3, max=100 Conexiune: keep-alive Tip de conținut: text/html X- Produs de: PHP/5.3.29 Server: Apache/2.2.31 (Unix)

    Și aici avem CentOS:

    Metodă: HTTP/1.1 200 OK Expiră: Joi, 19 Nov 1981 08:52:00 GMT Set-Cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; path=/ Conexiune: keep-alive X-Cache-Lookup: MISS de la t1.hoster.ru:6666 Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.4.37 X-Cache: MISS de la t1.hoster.ru Cache-Control: fără stocare, fără cache, revalidare obligatorie, post-verificare=0, pre-verificare=0 Pragma: fără cache Data: vineri, 11 decembrie 2015 12:08:54 GMT Transfer-Encoding: chunked Content-Type: text/html; set de caractere=WINDOWS-1251

    Pe Windows, un folder tipic pentru site-uri este C:\Server\date\htdocs\. Dar, de fapt, dacă cineva „s-a gândit” să facă un server pe Windows, atunci, foarte probabil, această persoană nu a auzit nimic despre privilegii. Prin urmare, ar trebui să începeți să încercați direct din directorul C:/Windows/:

    După cum puteți vedea, totul a mers bine prima dată.

    Dar shell-urile jSQL Injection în sine ridică îndoieli în mintea mea. Dacă aveți privilegii de fișier, atunci puteți încărca cu ușurință ceva cu o interfață web.

    8. Verificarea în bloc a site-urilor pentru injecții SQL

    Și chiar și această funcție este disponibilă în jSQL Injection. Totul este extrem de simplu - descărcați o listă de site-uri (pot fi importate dintr-un fișier), selectați-le pe cele pe care doriți să le verificați și faceți clic pe butonul corespunzător pentru a începe operația.

    Concluzie din jSQL Injection

    jSQL Injection este un instrument bun și puternic pentru căutarea și apoi utilizarea injecțiilor SQL găsite pe site-uri web. Avantajele sale neîndoielnice: ușurință în utilizare, funcții aferente încorporate. jSQL Injection poate fi cel mai bun prieten al începătorilor atunci când analizează site-uri web.

    Printre neajunsuri, as remarca imposibilitatea editării bazelor de date (cel puțin nu am găsit această funcționalitate). Ca și în cazul tuturor instrumentelor GUI, unul dintre dezavantajele acestui program poate fi atribuit incapacității sale de a fi utilizat în scripturi. Cu toate acestea, este posibilă și o anumită automatizare în acest program - datorită funcției încorporate de scanare în masă a site-ului.

    eşantion stabilit şi certificat. Pentru o reducere specială la orice facultăți și cursuri!

    Î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 adresă 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 să fie 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, al optimizării și al promovării motoarelor de căutare pe Internet.

    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 ; ) .meniu 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 oricărui 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 se află î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 ""; ?>

    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

    Acum vom insera 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 folosi 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țim site-ul 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 atunci când 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) Deschideți fișierul 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) Deschideți fișierul 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ă este executat, 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ătoarea fișă de cheat a webmasterului vă va spune cum să creați titluri, descrieri și cuvinte cheie unice pentru fiecare pagină în PHP.

    Puteți descărca o arhivă cu toate șablonul site-ului și fișierele de meniu php. Recomandat pentru cei începători î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.

    ]]> ]]>



  • 2024 | Calculatoare pentru toată lumea - Configurare, instalare, recuperare