Udhëzime për përdorimin e jSQL Injection, një mjet shumëfunksional për gjetjen dhe shfrytëzimin e injeksioneve SQL në Kali Linux. Menyja me shumë nivele në PHP dhe MySQL Inurl php ID e lojës së menusë së vet

Asnjë faqe interneti nuk është e plotë pa navigim ose, siç e quajnë edhe ata, një "menu faqesh". Pra, menyja e faqes mund të jetë me një nivel ose shumë nivele në formën e një peme. Nëse nuk ka vështirësi të veçanta për sa i përket zbatimit me një menu me një nivel, atëherë kur krijoni një menu me shumë nivele duhet të mendoni me kujdes.

Gjëja më e rëndësishme në këtë detyrë është të hartoni bazën e të dhënave për menunë tonë me shumë nivele. Le të krijojmë një tabelë të kategorive me tre fusha id, titull, prind Ku:

  • ID- identifikues
  • Titulli- Emri i menysë
  • Prindi- Prindi i kategorisë së parazgjedhur 0

Fusha është përgjegjëse për degëzimin e menysë Prindi Nëse Prindi = 0, atëherë kjo kategori është kategoria mëmë. Për të shtuar pasardhës në kategorinë prind, duhet të specifikoni në fushën prind ID prindi i duhur. Për shembull:

Tabelat me kategori

Siç shihet nga tabela, kategoria prind Makina ka dy pasardhës - kjo është Mazda Dhe Honda të lidhura sipas fushës Prindi. Dhe kategoria Motoçikleta dy pasardhës janë Kawasaki Dhe Harley. Në të njëjtën kohë, kategoria Boats nuk ka pasardhës. Shpresoj të kuptoni se si të lidhni kategoritë.

Më pas kalojmë nga fjalët në praktikë. Le të krijojmë një tabelë të kategorive.

KRIJO TABELËN NËSE NUK EKZISTON `kategoritë` (`id` int(10) i panënshkruar JO NULL AUTO_INCREMENT, `titulli` varchar(255) NUK NULL, `prind` int(10) i panënshkruar JO NULL, ÇELËSI PRIMAR (`id`) MOTORI=SETIMI I PARAKTUAR I MYISAM=utf8 AUTO_INCREMENT=20 ; -- -- Hedhja e të dhënave nga tabela "kategoritë" -- INSERT INTO "kategoritë" ("id", "titulli", "prindi") VLERAT (1, "Makina", 0), (2, "Motoçikleta", 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, "Boats", 0), (12, "Liftback" , 8), (13, "Crossover", 8), (14, "White", 13), (15, "Red", 13), (16, "Black", 13), (17, "Green" , 13), (18, "Mazda CX", 3), (19, "Mazda MX", 3);

Algoritmi i punës përbëhet nga sa vijon:

Krijoni një lidhje me bazën e të dhënave

pyetje ("VENDOSI EMRAT "utf8""); /* * Kjo është mënyra "zyrtare" e orientuar nga objekti për ta bërë këtë * megjithatë $connect_error nuk funksionoi deri në versionet PHP 5.2.9 dhe 5.3.0. */ if ($mysqli->connect_error) ( die("Gabimi i lidhjes (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Nëse duhet të jeni të sigurt për pajtueshmërinë me versionet para 5.2 .9, * është më mirë të përdoret ky kod */ if (mysqli_connect_error()) ( die("Gabim në lidhje (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); )

Shkrimi i një funksioni për të marrë të dhëna nga tabela e Kategorive

//Merrni grupin e menysë sonë nga baza e të dhënave si një funksion grupi getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Krijo një grupi ku çelësi i grupit është ID-ja e menysë $cat = array(); ndërsa ($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) kthen $ Mace; )

Ne marrim një grup si ky, ku çelësi i grupit është ID e kategorisë.

Funksioni i ndërtimit të drurit të ngurtë nga Tommy Lacroix

//Funksioni për ndërtimin e një peme nga një grup nga funksioni Tommy Lacroix getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Nëse nuk ka bashkëngjitje nëse ( !$node[" prind"])( $tree[$id] = &$node; )else( //Nëse ka fëmijë, atëherë përsëritni përmes grupit $dataset[$node["prind"]]["fëmijë "][$id] = &$ nyje; ) ) kthen $tree;)

Ne marrim një grup në formën e një peme

I gjithë skenari

pyetje ("VENDOSI EMRAT "utf8""); /* * Kjo është mënyra "zyrtare" e orientuar nga objekti për ta bërë këtë * megjithatë $connect_error nuk funksionoi deri në versionet PHP 5.2.9 dhe 5.3.0. */ if ($mysqli->connect_error) ( die("Gabimi i lidhjes (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Nëse duhet të jeni të sigurt për pajtueshmërinë me versionet para 5.2 .9, * është më mirë të përdoret ky kod */ nëse (mysqli_connect_error()) ( die("Gabimi i lidhjes (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); ) //Merr grupin të menysë sonë nga baza e të dhënave si një funksion grupi getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Krijoni një grup ku çelësi i grupit është ID-ja e menysë $cat = array(); ndërsa ($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) kthen $cat;) //Funksioni për ndërtimi i një peme nga një grup nga funksioni Tommy Lacroix getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Nëse nuk ka bashkëngjitje nëse (!$node[ "prind"])( $tree[$id] = &$node; )else( //Nëse ka pasardhës, atëherë kaloni nëpër grupin $dataset[$node["prind"]]["fëmijë"][$ id] = &$node; ) ) ktheni $tree;) //Merrni një grup të përgatitur me të dhëna $cat = getCat($mysqli); //Krijoni një menu pemësh $tree = getTree($cat); //Shembull për shfaqjen e një menuje në formën e një funksioni peme tplMenu($category)( $menu = "
  • ". $category["title"].""; if(isset($category["childs"]))( $menu .= "
      ". showCat($category["fëmijë"]) ."
    "; ) $menu .= "
  • "; kthe $menu; ) /** * Lexoni shabllonin tonë në mënyrë rekursive **/ funksionin showCat($data)( $string = ""; foreach($data si $item)( $string .= tplMenu($item); ) kthe $string; ) //Merr shënimin HTML $cat_menu = showCat($tree); //Eko e ekranit "
      ".$cat_menu."
    "; ?>

    Rezultati i punës

    Menu me shumë nivele në PHP + MySQL për panelin e administratorit

    Nëse dëshironi të përdorni këtë menu në panelin e administratorit të faqes tuaj, atëherë duhet të rishkruani disa funksione tplMenu (), showCat ().

    ".$category["title"].""; )else( $menu = " "; ) if(isset($category["fëmijë"]))( $i = 1; për ($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 ""; ?>

    Rezultati i punës

    Zgjidhni Makinat → Mazda → → Mazda 3 →→→ Sedan →→→ Hatchback →→ Mazda 6 →→→ Liftback →→→ Crossover →→→→ Bardhë →→→→ E kuqe → →→→ E zezë →→→→ Jeshile → Mazda CX →→ Mazda MX → Motoçikleta Honda → Kawasaki → Harley Boats

    Drejtoni skedarin e shkarkuar duke klikuar dy herë (duhet të keni një makinë virtuale).

    3. Anonimiteti kur kontrolloni një faqe për injeksion SQL

    Vendosja e Tor dhe Privoxy në Kali Linux

    [Seksioni në zhvillim]

    Konfigurimi i Tor dhe Privoxy në Windows

    [Seksioni në zhvillim]

    Cilësimet e proxy në jSQL Injection

    [Seksioni në zhvillim]

    4. Kontrollimi i faqes për injeksion SQL me jSQL Injection

    Puna me programin është jashtëzakonisht e thjeshtë. Thjesht futni adresën e faqes së internetit dhe shtypni ENTER.

    Pamja e mëposhtme e ekranit tregon se faqja është e prekshme ndaj tre llojeve të injeksioneve SQL (informacioni rreth tyre tregohet në këndin e poshtëm të djathtë). Duke klikuar mbi emrat e injeksioneve, mund të ndryshoni metodën e përdorur:

    Gjithashtu, bazat e të dhënave ekzistuese tashmë na janë shfaqur.

    Ju mund të shikoni përmbajtjen e secilës tabelë:

    Në mënyrë tipike, gjëja më interesante në lidhje me tabelat janë kredencialet e administratorit.

    Nëse jeni me fat dhe gjeni të dhënat e administratorit, atëherë është shumë herët për t'u gëzuar. Ju ende duhet të gjeni panelin e administratorit ku t'i futni këto të dhëna.

    5. Kërkoni për panele admin me jSQL Injection

    Për ta bërë këtë, shkoni në skedën tjetër. Këtu jemi përshëndetur me një listë të adresave të mundshme. Ju mund të zgjidhni një ose më shumë faqe për të kontrolluar:

    Komoditeti qëndron në faktin se nuk keni nevojë të përdorni programe të tjera.

    Fatkeqësisht, nuk ka shumë programues të pakujdesshëm që ruajnë fjalëkalimet në tekst të qartë. Shumë shpesh në rreshtin e fjalëkalimit shohim diçka të tillë

    8743b52063cd84097a65d1633f5c74f5

    Ky është një hash. Ju mund ta deshifroni atë duke përdorur forcë brutale. Dhe... jSQL Injection ka një forcues brutal të integruar.

    6. Hash me forcë brutale duke përdorur jSQL Injection

    Lehtësia e padyshimtë është se nuk keni nevojë të kërkoni programe të tjera. Ka mbështetje për shumë nga hash-et më të njohura.

    Ky nuk është alternativa më e mirë. Për t'u bërë një guru në dekodimin e hasheve, rekomandohet Libri "" në Rusisht.

    Por, sigurisht, kur nuk ka asnjë program tjetër në dispozicion ose nuk ka kohë për të studiuar, jSQL Injection me funksionin e tij të integruar të forcës brutale do të jetë shumë i dobishëm.

    Ka cilësime: mund të vendosni se cilat karaktere përfshihen në fjalëkalim, diapazoni i gjatësisë së fjalëkalimit.

    7. Operacionet e skedarëve pas zbulimit të injeksioneve SQL

    Përveç operacioneve me bazat e të dhënave - leximi dhe modifikimi i tyre, nëse zbulohen injeksione SQL, mund të kryhen operacionet e mëposhtme të skedarëve:

    • leximi i skedarëve në server
    • ngarkimi i skedarëve të rinj në server
    • ngarkimi i predhave në server

    Dhe e gjithë kjo zbatohet në jSQL Injection!

    Ka kufizime - serveri SQL duhet të ketë privilegje skedari. Administratorët e sistemit inteligjent i kanë ato të çaktivizuara dhe nuk do të mund të kenë akses në sistemin e skedarëve.

    Prania e privilegjeve të skedarëve është mjaft e thjeshtë për t'u kontrolluar. Shkoni në një nga skedat (leximi i skedarëve, krijimi i një guaskë, ngarkimi i një skedari të ri) dhe përpiquni të kryeni një nga operacionet e specifikuara.

    Një tjetër shënim shumë i rëndësishëm - ne duhet të dimë rrugën e saktë absolute të skedarit me të cilin do të punojmë - përndryshe asgjë nuk do të funksionojë.

    Shikoni pamjen e mëposhtme të ekranit:

    Për çdo përpjekje për të vepruar në një skedar, marrim përgjigjen e mëposhtme: Nuk ka privilegj FILE(pa privilegje skedari). Dhe këtu nuk mund të bëhet asgjë.

    Nëse në vend të kësaj keni një gabim tjetër:

    Problem me shkrimin në [emri_directory]

    Kjo do të thotë që ju keni specifikuar gabimisht rrugën absolute ku dëshironi të shkruani skedarin.

    Për të marrë me mend një shteg absolut, duhet të paktën të njihni sistemin operativ në të cilin po funksionon serveri. Për ta bërë këtë, kaloni në skedën Rrjeti.

    Një rekord i tillë (linja Win64) na jep arsye të supozojmë se kemi të bëjmë me Windows OS:

    Keep-Alive: timeout=5, max=99 Server: Apache/2.4.17 (Win64) PHP/7.0.0RC6 Lidhja: Keep-Alive Metoda: HTTP/1.1 200 OK Content-Length: 353 Data: Pre, 11 Dhjetor 11:48:31 GMT X-Powered-By: PHP/7.0.0RC6 Lloji i përmbajtjes: tekst/html; charset=UTF-8

    Këtu kemi disa Unix (*BSD, Linux):

    Transferimi-Enkodimi: i copëtuar Data: e Premte, 11 Dhjetor 2015 11:57:02 GMT Metoda: HTTP/1.1 200 OK Keep-Alive: timeout=3, max=100 Lidhja: keep-alive Lloji i përmbajtjes: tekst/html X- Mundësuar nga: PHP/5.3.29 Serveri: Apache/2.2.31 (Unix)

    Dhe këtu kemi CentOS:

    Metoda: HTTP/1.1 200 OK Skadon: E enjte, 19 nëntor 1981 08:52:00 GMT Set-Cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; path=/ Lidhja: keep-alive X-Cache-Lookup: MISS nga t1.hoster.ru:6666 Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.4.37 X-Cache: MISS nga t1.hoster.ru Cache-Control: no-story, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: pa cache Data: Pre, 11 dhjetor 2015 12:08:54 GMT Transferimi-Enkodimi: i copëtuar Lloji i Përmbajtjes: tekst/html; charset=WINDOWS-1251

    Në Windows, një dosje tipike për faqet është C:\Server\data\htdocs\. Por, në fakt, nëse dikush "mendoi" të bënte një server në Windows, atëherë, me shumë mundësi, ky person nuk ka dëgjuar asgjë për privilegjet. Prandaj, duhet të filloni të provoni direkt nga drejtoria C:/Windows/:

    Siç mund ta shihni, çdo gjë shkoi mirë herën e parë.

    Por vetë predhat e jSQL Injection ngjallin dyshime në mendjen time. Nëse keni privilegje skedari, atëherë lehtë mund të ngarkoni diçka me një ndërfaqe në internet.

    8. Kontrolli masiv i vendeve për injeksione SQL

    Dhe madje ky funksion është i disponueshëm në jSQL Injection. Gjithçka është jashtëzakonisht e thjeshtë - shkarkoni një listë të faqeve (mund të importohet nga një skedar), zgjidhni ato që dëshironi të kontrolloni dhe klikoni butonin e duhur për të filluar funksionimin.

    Përfundim nga jSQL Injection

    jSQL Injection është një mjet i mirë dhe i fuqishëm për kërkimin dhe më pas përdorimin e injeksioneve SQL që gjenden në faqet e internetit. Përparësitë e tij të padyshimta: lehtësia e përdorimit, funksionet e integruara të lidhura. jSQL Injection mund të jetë miku më i mirë i një fillestari kur analizon faqet e internetit.

    Ndër mangësitë, do të vëreja pamundësinë e redaktimit të bazave të të dhënave (të paktën nuk e gjeta këtë funksionalitet). Ashtu si me të gjitha mjetet GUI, një nga disavantazhet e këtij programi mund t'i atribuohet pamundësisë së tij për t'u përdorur në skripta. Sidoqoftë, njëfarë automatizimi është gjithashtu i mundur në këtë program - falë funksionit të integruar të skanimit masiv të faqeve.

    mostra e vendosur dhe certifikatë. Për një zbritje speciale në çdo fakultet dhe kurs!

    Në artikullin e fundit të blogut, kam shkruar për risitë interesante të versionit më të fundit të WordPress - një mekanizëm i veçantë për krijimin dhe menaxhimin. Tani është bërë shumë më e përshtatshme dhe më e lehtë për përdoruesit e zakonshëm të krijojnë menu me kompleksitet të ndryshëm, të cilat mund të përbëhen jo vetëm nga faqe ose kategori blogje, por gjithashtu të kenë lidhje me çdo URL. Për të shfaqur menunë në shabllon, përdoret një funksion i veçantë wp_nav_menu - Unë do t'ju tregoj për të sot.

    Nëse nuk ka seksion të menusë në administratorin e WordPress, mund ta aktivizoni atë duke shtuar kod të veçantë në skedarin functions.php

    Këtu së pari është emri i menusë që krijuam. Ky është përdorimi i një funksioni në rastin e përgjithshëm pa miniaplikacione; do t'ju duhet të punoni me ta pak më ndryshe atje. Sidoqoftë, funksioni wp_nav_menu mund të dalë pa argumente, si rezultat i të cilit situata të ndryshme do të "shikohen" - së pari, një përputhje me emrin e menusë, nëse të paktën një artikull i menusë është specifikuar për të, përndryshe një meny jo bosh thjesht do të shfaqet, etj. Por përsëri, unë ju këshilloj që thjesht të përdorni kodin e mësipërm dhe të mos kuptoni se çfarë duhet të nxjerrë funksioni pa argumente. Sintaksa e tij është si më poshtë:

    Këtu përdoren parametrat e mëposhtëm:

    menyja $— identifikuesi i zgjedhur për menynë — ID, slug ose emri i menysë.

    $enë- Menyja UL është "mbështjellë" në një enë DIV si parazgjedhje duke përdorur këtë cilësim.

    $container_class— tregon klasën e kontejnerit, si parazgjedhje vlera e tij është menu-(menu slug)-container, domethënë, në rastin tonë, për shembull, do të ketë një menu të klasës-kontejneri i parë.

    $container_id— mund të shtoni një ID në kontejner, të paspecifikuar si parazgjedhje.

    $menu_class— klasa për elementin e menusë UL, vlera e saj është menuja.

    $menu_id— ID për elementin ul, e paracaktuar në menu-(slug)

    $jehonë— nëse nuk dëshironi të shfaqni menynë, por të ktheni vlerën e funksionit, përdorni vlerën 0 për këtë cilësim.

    $fallback_cb— nëse menyja nuk ekziston, thirret funksioni wp_page_menu.

    $përpara— vendos tekstin që shfaqet përpara lidhjes A.

    $lidhja_para— shfaq frazën përpara tekstit të lidhjes, të paspecifikuar.

    $link_pas— shfaqet pas tekstit të lidhjes, gjithashtu bosh.

    $thellësi— cakton numrin e niveleve të hierarkisë për të shfaqur menunë; vlera e paracaktuar 0 shfaq të gjithë menunë.

    $walker- një lloj "objekt këmbësor" i pakuptueshëm me porosi, ndoshta më i nevojshëm nga zhvilluesit e avancuar.

    $theme_location— vendndodhja e temës ku do të përdoret menyja duhet të aktivizohet nëpërmjet register_nav_menu() në mënyrë që përdoruesi të mund ta zgjedhë atë. Gjithashtu një lloj cilësimi jo plotësisht i qartë, me sa duket, kur punoni me miniaplikacione.

    Shembuj të përdorimit të funksionit wp_nav_menu

    Kodi më i thjeshtë i dhënë në kod është:

    Heqja e kontejnerit DIV nga menyja

    "")); ?>

    Në parim, nuk ka asgjë të komplikuar në krijimin dhe menaxhimin e një menuje WordPress 3.0. Zhvilluesit kanë thjeshtuar ndjeshëm procedurën e punës dhe kanë zgjeruar aftësitë e këtij elementi navigimi. Zgjidhja përdoret shpesh në një sërë detyrash shabllonesh, për shembull, kur krijohet për versione celulare dhe desktop. Pak më vonë do të shtoj disa fragmente të tjera mbi temën.

    P.S. roje. Një blog interesant dhe i dobishëm për webmasters mbi SEO, ku do të gjeni përgjigje për pyetjet tuaja rreth SEO.
    Kompania Aweb ka kohë që është vendosur shumë mirë në fushën e promovimit të faqeve të internetit, optimizimit dhe promovimit të motorëve të kërkimit në internet.

    Sepse ekspozon përmbajtjen e modulit menu.php. Më poshtë do të paraqesim zhvillimin tonë të menusë në PHP, i cili është shkruar nga e para në një bllok shënimesh.

    Ky kod do të jetë veçanërisht i dobishëm për faqet dinamike që kanë motorë të personalizuar. Unë do të ofroj dy opsione kodi që kanë dallime të vogla (ndryshimet do të shpjegohen më vonë).

    Për të filluar, unë do të jap një strukturë të përafërt të faqes për të cilën kjo menu është e përshtatshme. Struktura e faqes duhet të duket kështu (pamja klasike):

    /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

    Faqja mund të përmbajë gjithashtu nënseksione për seksionet:

    /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.htmlarticles_2

    Kjo strukturë do të funksionojë edhe për menunë tonë me vetëm dallime të vogla.

    Unë sugjeroj të krijoni një skedar të veçantë për menunë në php. Për shembull, menu.php do të ishte një emër i mrekullueshëm për një skedar të tillë. Për të zbatuar menunë, ofrohet edhe një stil menuje në CSS për ta bërë atë pak a shumë të bukur menjëherë. Natyrisht, ky stil jepet vetëm për referencë, pasi modelet e faqeve janë shumë të ndryshme.

    Kodi për stilimin e menysë në CSS:

    .menu (lartësia:42px; mbushje:0 0 0 16px; sfondi:url(images/spacer.png) përsërit; ) .menu li ( ekran:blloku; float:majtas; ) .menu li.active ( sfond: #000011 ;) .menu a (ngjyra:#FFF; ekrani:blloku; lartësia e rreshtit:42 px; dekorimi i tekstit: asnjë; mbushja:0 14 px; ) .menu a:hover ( sfond:url(images/spacer.png) përsërit ;)

    Tani, le të shohim opsionin e parë për zbatimin e një menuje në PHP, i cili është pak i thjeshtuar.

    Versioni i parë i kodit të menusë në PHP

    \n"; për ($i=0;$i ": "
  • "; jehonë" ".$array_menu[$i]["emri"]."
  • \n"; ) jehonë ""; ?>

    Menuja mund të ndahet në dy pjesë. E para përmban grupin e informacionit $array_menu, i cili përmban emrat e seksioneve tona me lidhje me seksionet. Ekziston një mundësi për të futur këto të dhëna në bazën e të dhënave mySQL, por nuk ka asnjë pikë të veçantë në këtë, pasi mostra është shumë e vogël, kështu që kjo nuk do të ndikojë në shpejtësinë e punës.

    Pjesa e dytë përmban daljen e menysë përmes një cikli for. Cikli krahason adresën e faqes me adresën nga grupi $array_menu. Nëse ka një përputhje, atëherë ne shfaqim seksionin tjetër të menusë me një klasë të veçantë aktive:

  • , përndryshe vetëm
  • . Kjo na lejon të nxjerrim në pah me disa ngjyra pjesën e menysë në të cilën ndodhet përdoruesi. Për mendimin tim, kjo është një gjë e nevojshme për çdo faqe, në mënyrë që përdoruesi të kuptojë se në cilin seksion ndodhet.

    Rendi në grup do të ruhet kur menyja të shfaqet në sajt. Kjo do të thotë, grupi duhet të plotësohet në rendin në të cilin duhet të shfaqet menyja.

    Shënim:
    Nëse URL-të (adresat) e titujve të seksioneve duken si:
    /Seksioni 1
    ose si kjo
    /razdel_1/nazvanie_razdela.html
    atëherë duhet të shkruani një përputhje të saktë në array_menu:
    $array_menu[$i]["url"]="/razdel_1"
    ose për rastin e dytë:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Si funksionon opsioni i parë i menysë?
    Ajo thekson menunë vetëm nëse jeni në adresën e kokës së seksionit. Për shembull, nëse adresa e faqes është /razdel_1/articles_1.html, atëherë menyja nuk do të theksohet në asnjë mënyrë.

    Versioni i dytë i kodit është një version i modifikuar i të parit dhe ofron mundësinë për të nxjerrë në pah menutë edhe në artikujt që ndodhen në seksione.

    Versioni i dytë i kodit të menusë në PHP

    "; për ($i=0;$i ": "
  • "; echo "".$array_menu[$i]["titulli"]."
  • "; ) else (echo ($URL) == ($array_menu[$i]["url"]) ? "
  • ": "
  • "; echo "".$array_menu[$i]["titulli"]."
  • ";)) jehonë""; ?>

    Nëse jeni të interesuar për përgjigjen e pyetjes se si të krijoni një menu në internet, atëherë keni ardhur në adresën e duhur.

    Ne do të shikojmë krijimin e një menuje dinamike në PHP, e shkruar posaçërisht për programimin e dummies, si dhe për ata që janë ende në rezervuar.

    Mësimi 3. Krijimi i një menuje në php për një faqe interneti dinamike - për dummies

    Le të krijojmë paraqitjen e ardhshme të faqes sonë të internetit. Për ta bërë këtë, ne do të vizatojmë një faqe interneti super të bukur në Photoshop dhe do ta presim në copa. Le të imagjinojmë që koka, logoja, menyja dhe fundi nuk janë të shkruara me fjalë, si në këtë shembull, por këto janë elemente të dizajnuara në mënyrë elegante dhe plot ngjyra të faqes.

    Le të krijojmë tre faqe për shembull dhe t'i quajmë ato Seksioni 1, Seksioni 2, Seksioni 3

    Ky tekst do të jetë i ndryshëm për faqe të ndryshme, por ne nuk do të shqetësohemi me të dhe do ta lëmë siç është në të gjitha faqet.

    Le të fillojmë të krijojmë një faqe interneti në PHP.

    1. Zgjidhni kokën, logon, menunë, blloqet e fundit në skedarë të veçantë me shtesën php ose html

    header.html

    logo.html

    menu.html

    footer.html

    Le të shtojmë një skedar me këtë tekst që ta shohim në të gjitha faqet. Le ta thërrasim atë teksti.html

    Shënim. Që tani e tutje, do të mbaj shënime të mëtejshme direkt në dosje. teksti.html

    2. Le të krijojmë një shabllon për faqen tonë të internetit në PHP.

    Për ta bërë këtë, ne do të bëjmë një gjë të thjeshtë - të ruajmë skedarin e vërtetë, por me zgjerimin php dhe të fshijmë të gjithë përmbajtjen e tekstit. Mund të mos jetë profesionale, por është e kuptueshme, por ne do ta komplikojmë gjithçka më vonë. Tani gjëja kryesore është të kuptojmë parimin e paraqitjes.

    3. Tani nuk kemi nevojë për skedarin template.html.

    Falë tij, ne kemi një ide se si do të duket faqja jonë.

    4. Shablloni ynë është skedari template.php

    Tani do të fusim të gjithë elementët e faqes në të duke përdorur komandën përfshi.

    5. Le të krijojmë tre faqe, siç do të bënim fillimisht.

    Seksioni 1, le të thërrasim 1.php

    Seksioni 2, le të thërrasim 2.php

    Seksioni 3, le të thërrasim 3.php

    Për ta bërë këtë, mund të përdorni komandën më të thjeshtë ruaj si...

    Më lejoni të shpjegoj për të vegjlit: hapni dosjen shabllon.php, më pas shtypni ruaj si... dhe ruajeni nën emrin 1.php, përsëritni procedurën dhe ruani faqet e faqes me radhë 2.php, 3.php

    Ne përfunduam me 3 faqe me të njëjtin dizajn. Thjesht ngjiteni në vend të një skedari teksti.html një tjetër, plotësoni me foto të ndryshme ose disa kode html, skriptet dhe përmbajtja e secilës faqe do të jetë unike.

    Kujdes!

    Nëse skedari nuk është krijuar indeks.php për faqen kryesore, pastaj në shfletues, duke shtypur adresën e faqes, nuk do të shohim vetë faqen, por vetëm strukturën e drejtorisë (listën e dosjeve).

    Mund të shikoni në Denver dhe të shihni vetë. Le ta rregullojmë situatën - të krijojmë një skedar indeks.php dhe le të thërrasim pa vonesë në shtëpi. Në të njëjtën kohë, le të krijojmë një skedar tekst-home.html dhe duke përdorur komandën përfshijnë futeni atë në faqen kryesore të sapokrijuar të faqes.

    6. Si të shikoni një faqe interneti në php?

    Ne thjesht nuk do të shohim se çfarë ndodhi. Ky nuk është më një shabllon me një shtesë html.

    Por as problem. Ne kemi nevojë për tonat, d.m.th. server lokal në kompjuterin tuaj. Për ta bërë këtë, ne do të instalojmë Denverin dhe do të shikojmë rezultatin e punës sonë në një shfletues pa hyrë në internet.

    Tani ky është urdhri. Shkrova adresën e faqes dhe pashë gjithçka që sapo ishte krijuar në një formë normale me dizajn.

    Tani le të marrim menynë PHP të faqes.

    1. Hapni menunë e skedarëve.html dhe ktheni seksionet 1, 2 dhe 3 në lidhje në sajt. Lidhjet në PHP krijohen në mënyra të ndryshme.

    Detyra jonë është të mësojmë se si ta ndjejmë sitin e krijuar në PHP. Prandaj, ne do të krijojmë lidhje si në një faqe të rregullt statike Seksioni 1, etj.

    Më pëlqen absolutisht ky proces i krijimit të lidhjeve në Macromedia Dreamweaver. Keni kohë për të korrur Ne rregull dhe pi kafe.

    2. Si të bëni një lidhje në meny joaktive nëse vizitori është në këtë faqe.

    Do të jetë më i përshtatshëm për vizitorin të lundrojë në faqe duke ditur se në cilën faqe ndodhet.

    Nëse i keni ndjekur me përpikëri të gjitha hapat pikë për pikë, do të shihni që të gjitha lidhjet në meny janë gjithmonë aktive. Si ta rregulloni atë?

    Së pari, le të kujtojmë përkufizimin e asaj që është Deklarata të kushtëzuara

    – kjo është kur një veprim kryhet ose nuk kryhet në varësi të kushteve.

    Le të bëjmë sa vijon:

    • do të na duhet variablave dhe një operator i kushtëzuar:

    nëse ($master == "Kryesore")// kjo gjendje. Nëse ekzekutohet, atëherë në këtë vend të menysë, duke përdorur komandën echo, futen etiketat e zakonshme HTML që shfaqin mbishkrimin "Home".

    jehonë"

    në shtëpi

    ";

    tjetër// do të thotë "përndryshe" - çfarë do të ndodhë nëse kushti nuk plotësohet. Në këtë rast, nëse kushti nuk plotësohet, mbishkrimi "Home" do të jetë një lidhje që çon në faqen kryesore.

    jehonë"

    në shtëpi

    ";

    • Ne dolëm me kushtin, por kështu kontrolloni variablinduhet ta pyesni.

    Për ta bërë këtë, ne do të vendosim blloqet e mëposhtme të kodit në të gjitha faqet:

    $master = "Kryesore";

    $master = "Seksioni 1";

    $master = "Seksioni 2";

    $master = "Seksioni 3";

    Siç mund ta shihni, çdo faqe ka kodin e vet.

    Pra, hapat tanë praktikë për krijimin e një menuje PHP do të jenë si më poshtë:

    1) Hapni skedarin indeks.php

    dhe ngjisni kodin

    $master = "Kryesore";

    në vendin ku futni kodin që shfaq vetë menunë e faqes përfshini "menu.html";
    ?>

    2) Hapni skedarin menu.html dhe futni kodin me kushtin në vend të një lidhjeje të thjeshtë html në faqen kryesore.

    Ne shikojmë në shfletues dhe admirojmë! Nëse shkojmë në faqen kryesore, lidhja nuk është më aktive!

    3) Përsëritni pikat 1 dhe 2 me faqet 1.php, 2.php, 3.php

    Përsëritja 1:

    1) Hapni skedarin 1.php dhe futeni përpara kodit që shfaq një bllok menuje me një variabël të caktuar

    $master = "Seksioni 1";

    2) Hapni skedarin menu.html dhe futni kodin me kushtin në vend të një lidhjeje të thjeshtë Seksioni 1, duke bërë ndryshimet e mëposhtme:

    nëse ($master == "Seksioni 1")// kjo gjendje. Nëse ekzekutohet, atëherë në këtë vend të menysë, duke përdorur komandën echo, futen etiketat e zakonshme HTML që shfaqin mbishkrimin "Seksioni 1".

    jehonë"

    Seksioni 1

    ";

    tjetër// do të thotë "përndryshe" - çfarë do të ndodhë nëse kushti nuk plotësohet. Në këtë rast, nëse kushti nuk plotësohet, mbishkrimi "Seksioni 1" do të jetë një lidhje që çon në faqen kryesore.

    jehonë"

    Seksioni 1

    ";

    Mrekullia ndodhi sërish! Tani nëse jemi në faqe Seksioni 1, lidhja në meny nuk është aktive.

    Përsëritja është nëna e të mësuarit! Ose për ata në tank! Përsëri

    Përsëritje 2

    1) Hapur skedari 2.php dhe ngjisni kodin.

    $master = "Seksioni 2";

    2) Hapni përsëri skedarin menu.html dhe ngjisni kodin me kushtin

    nëse ($master == "Seksioni 2")// kjo gjendje. Nëse ekzekutohet, atëherë në këtë vend të menysë, duke përdorur komandën echo, futen etiketat e zakonshme HTML që shfaqin mbishkrimin "Seksioni 2".

    jehonë"

    Seksioni 2

    ";

    tjetër// do të thotë "përndryshe" - çfarë do të ndodhë nëse kushti nuk plotësohet. Në këtë rast, nëse kushti nuk plotësohet, mbishkrimi "Seksioni 2" do të jetë një lidhje që çon në faqen kryesore.

    jehonë"

    Seksioni 2

    ";

    Përsëritje 3

    1) Hapja skedari 3.php dhe vendosni ndryshoren.

    $master = "Seksioni 3";

    2) Në skedarin menu.html fusim kodin me kusht në vend të lidhjes Seksioni 3, ndryshimet janë:

    nëse ($master == "Seksioni 3")// kjo gjendje. Nëse ekzekutohet, atëherë në këtë vend të menysë, duke përdorur komandën echo, futen etiketat e zakonshme HTML që shfaqin mbishkrimin "Seksioni 3".

    jehonë"

    Seksioni 3

    ";

    tjetër// do të thotë "përndryshe" - çfarë do të ndodhë nëse kushti nuk plotësohet. Në këtë rast, nëse kushti nuk plotësohet, mbishkrimi "Seksioni 3" do të jetë një lidhje që çon në faqen kryesore.

    jehonë"

    Seksioni 3

    ";

    Fundi: në vend të lidhjeve në këtë lloj menyje

    në shtëpi


    Seksioni 1

    Seksioni 2


    Seksioni 3

    Ky mësim rreth php u shkrua në përgjigje të kërkesave të shumta nga vizitorët e faqes dhe është një udhëzues praktik për të mësuar se si të krijoni një menu dinamike për një sajt në php.

    Fleta e mashtrimit të webmasterit të ardhshëm do t'ju tregojë se si të bëni tituj, përshkrime dhe fjalë kyçe unike për secilën faqe në PHP.

    Mund ta shkarkoni arkivin me të gjithë shabllonin e faqes dhe skedarët e menusë php. Rekomandohet për ata që janë të rinj në programim.

    Nëse jeni gati të studioni seriozisht PHP, atëherë është e vështirë të gjesh një kurs video më të mirë nga Popov. Ai ka shumë përvojë dhe një stil të mirë.

    ]]> ]]>



  • 2024 | Kompjuterë për të gjithë - Konfigurimi, instalimi, rikuperimi