Útmutató a jSQL Injection használatához, amely egy többfunkciós eszköz az SQL injekciók megtalálásához és kihasználásához a Kali Linuxban. Többszintű menü PHP-ben és MySQL-ben Inurl php saját menü játék id

Egyetlen webhely sem teljes navigáció vagy – ahogy ők is nevezik – „webhelymenü” nélkül. Tehát a webhely menüje lehet egyszintű vagy többszintű fa formájában. Ha nincs különösebb nehézség az egyszintű menü végrehajtása során, akkor a többszintű menü létrehozásakor alaposan át kell gondolnia.

Ebben a feladatban a legfontosabb a többszintű menünk adatbázisának megtervezése. Hozzunk létre egy kategóriák táblát három mezővel id, cím, szülő Ahol:

  • ID- azonosító
  • Cím- Menü neve
  • Szülő- Alapértelmezett kategória szülő 0

A mező a menü elágaztatásáért felelős Szülő Ha Szülő = 0, akkor ez a kategória a szülőkategória. Ahhoz, hogy leszármazottakat adjon a szülőkategóriához, meg kell adnia a szülő mezőben ID a megfelelő szülő. Például:

Táblázatok kategóriákkal

A táblázatból látható, a szülő kategória Autók két leszármazottja van – ez van MazdaÉs Honda szakterület szerint összefügg Szülő. És a kategória Motorkerékpárok két leszármazottja van KawasakiÉs Harley. Ugyanakkor a Hajók kategóriának nincsenek leszármazottai. Remélem érti a kategóriák összekapcsolását.

Ezután a szavakról a gyakorlatra térünk át. Hozzunk létre egy kategóriák táblázatot.

TÁBLÁZAT LÉTREHOZÁSA, HA NEM LÉTEZIK "kategóriák" ("azonosító" int(10) előjel nélküli NOT NULL AUTO_INCREMENT, "title" varchar(255) NOT NULL, "parent" int(10) előjel nélküli NEM NULL, ELSŐDLEGES KULCS ("id") ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ; -- -- Adatkiírat a `categories` táblából -- INSERT INTO `categories` (`id`, `title`, `parent`) ÉRTÉKEK (1, "Autók", 0), (2, "Motorkerékpárok", 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, "Csónakok", 0), (12, "Liftback") , 8), (13, "Crossover", 8), (14, "fehér", 13), (15, "piros", 13), (16, "fekete", 13), (17, "zöld" , 13), (18, "Mazda CX", 3), (19, "Mazda MX", 3);

A munkaalgoritmus a következőkből áll:

Hozzon létre kapcsolatot az adatbázissal

query("NEVEK BEÁLLÍTÁSA "utf8"); /* * Ez a "hivatalos" objektum-orientált módja ennek * azonban a $connect_error nem működött a PHP 5.2.9-es és 5.3.0-s verziójáig. */ if ($mysqli->connect_error) ( die("Kapcsolódási hiba (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Ha meg kell bizonyosodni a verziókkal való kompatibilitásról 5.2 .9 előtt, * jobb ezt a kódot használni */ if (mysqli_connect_error()) ( die("Kapcsolódási hiba (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); )

Függvény írása adatok beszerzéséhez a Kategóriák táblából

//A menü tömbjének lekérése az adatbázisból tömbfüggvényként getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Hozzon létre egy tömb ahol a tömb kulcsa a menüazonosító $cat = array(); while($row = $res->fetch_assoc())( $cat[$row["id"]] = $sor; ) return $ macska; )

Egy ilyen tömböt kapunk, ahol a tömb kulcsa a kategóriaazonosító.

Tömör fa építő funkció a Tommy Lacroix-tól

//Funkció egy tömbből való fa létrehozásához Tommy Lacroix függvényből getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Ha nincsenek mellékletek if ( !$node[" szülő"])( $tree[$id] = &$node; )else( //Ha vannak gyerekek, akkor iteráljon a $dataset[$node["parent"]]["childs" tömbön keresztül "][$id] = &$ csomópont; ) ) visszatér $fa; )

Egy fa formájú tömböt kapunk

A teljes forgatókönyv

query("NEVEK BEÁLLÍTÁSA "utf8"); /* * Ez a "hivatalos" objektum-orientált módja ennek * azonban a $connect_error nem működött a PHP 5.2.9-es és 5.3.0-s verziójáig. */ if ($mysqli->connect_error) ( die("Kapcsolódási hiba (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Ha meg kell bizonyosodni a verziókkal való kompatibilitásról 5.2 .9 előtt, * jobb ezt a kódot használni */ if (mysqli_connect_error()) ( die("Kapcsolódási hiba (" . mysqli_connect_errno() . ") " . mysqli_connect_error()); ) //A tömb lekérése menüből az adatbázisból tömbfüggvényként getCat($mysqli)( $sql = "SELECT * FROM `categories`"; $res = $mysqli->query($sql); //Hozzon létre egy tömböt, ahol a tömb kulcsa a menüazonosító: $cat = array(); while ($row = $res->fetch_assoc())( $cat[$row["id"]] = $sor; ) return $cat; ) //Funkció fa létrehozása egy tömbből Tommy Lacroix függvényből getTree($dataset) ( $tree = array(); foreach ($dataset as $id => &$node) ( //Ha nincsenek csatolások if (!$node[ "parent"])( $tree[$id] = &$node; )else( //Ha vannak leszármazottak, akkor menjen végig a tömbön: $dataset[$node["parent"]]["childs"][$ id] = &$node; ) ) return $tree; ) //Egy előkészített tömb beszerzése adatokkal $cat = getCat($mysqli); //Fa menü létrehozása $tree = getTree($cat); //Sablon egy menü megjelenítéséhez fafüggvény formájában tplMenu($category)( $menu = "
  • ". $category["title"].""; if(isset($category["gyermekek"]))( $menu .= "
      ". showCat($category["gyermekek"]) ."
    "; ) $menü .= "
  • "; return $menu; ) /** * Sablonunk rekurzív olvasása **/ function showCat($data)( $string = ""; foreach($data mint $item)( $string .= tplMenu($item); ) return $string; ) //HTML jelölés lekérése $cat_menu = showCat($tree); //Visszhang megjelenítése "
      ".$cat_menu."
    "; ?>

    A munka eredménye

    Többszintű menü PHP + MySQL adminisztrációs panelhez

    Ha ezt a menüt szeretné használni webhelye adminisztrációs panelén, akkor át kell írnia néhány funkciót tplMenu(), showCat().

    ".$category["title"].""; )else( $menu = " "; ) if(isset($kategória["gyermekek"]))( $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 ""; ?>

    A munka eredménye

    Válassza az Autók → Mazda → → Mazda 3 → → → Sedan → → → Ferdehátú → → Mazda 6 → → → Liftback → → → Crossover → → → → Fehér → → → Piros → → → → Fekete → → → Zöld → → lehetőséget. Mazda CX → Mazda MX → Honda Motorkerékpárok → Kawasaki → Harley Boats

    Futtassa a letöltött fájlt dupla kattintással (virtuális gépre van szüksége).

    3. Névtelenség a webhely SQL-befecskendezésének ellenőrzésekor

    A Tor és a Privoxy beállítása Kali Linuxban

    [Részlet fejlesztés alatt]

    A Tor és a Privoxy beállítása Windows rendszeren

    [Részlet fejlesztés alatt]

    Proxy beállítások a jSQL Injectionben

    [Részlet fejlesztés alatt]

    4. A webhely ellenőrzése az SQL-befecskendezés szempontjából a jSQL Injection segítségével

    A programmal való munkavégzés rendkívül egyszerű. Csak írja be a webhely címét, és nyomja meg az ENTER billentyűt.

    A következő képernyőkép azt mutatja, hogy a webhely háromféle SQL-injekcióval szemben sebezhető (az ezekre vonatkozó információk a jobb alsó sarokban találhatók). Az injekciók nevére kattintva átválthatja az alkalmazott módszert:

    Emellett a meglévő adatbázisok már megjelentek számunkra.

    Az egyes táblázatok tartalmát megtekintheti:

    A táblákkal kapcsolatban általában a rendszergazdai hitelesítő adatok a legérdekesebbek.

    Ha szerencséje van, és megtalálja a rendszergazda adatait, akkor még korai örülni. Továbbra is meg kell találnia az adminisztrációs panelt, ahol megadhatja ezeket az adatokat.

    5. Keressen adminisztrációs paneleket a jSQL Injection segítségével

    Ehhez lépjen a következő lapra. Itt a lehetséges címek listája fogad minket. Kiválaszthat egy vagy több oldalt az ellenőrzéshez:

    A kényelem abban rejlik, hogy nincs szükség más programok használatára.

    Sajnos nem nagyon van olyan figyelmetlen programozó, aki tiszta szövegben tárolja a jelszavakat. A jelszósorban gyakran találunk ilyesmit

    8743b52063cd84097a65d1633f5c74f5

    Ez egy hash. Nyers erővel visszafejtheti. És... A jSQL Injection beépített nyers erővel rendelkezik.

    6. Brute force hashek jSQL Injection használatával

    A kétségtelen kényelem az, hogy nem kell más programokat keresnie. A legnépszerűbb hashek közül sok támogatott.

    Ez nem a legjobb megoldás. Ahhoz, hogy guru lehessen a hash-ek dekódolásában, az orosz nyelvű „” könyv ajánlott.

    De természetesen, ha nincs kéznél más program, vagy nincs idő a tanulásra, nagyon jól jön a jSQL Injection a beépített brute force funkciójával.

    Vannak beállítások: beállíthatjuk, hogy mely karakterek szerepeljenek a jelszóban, a jelszó hossztartománya.

    7. Fájlműveletek az SQL injekciók észlelése után

    Az adatbázisokkal végzett műveletek mellett - azok olvasása és módosítása, ha SQL injekciót észlel, a következő fájlműveletek hajthatók végre:

    • fájlok olvasása a szerveren
    • új fájlok feltöltése a szerverre
    • shell-ek feltöltése a szerverre

    És mindez a jSQL Injection-ben van megvalósítva!

    Vannak korlátozások – az SQL szervernek fájljogosultságokkal kell rendelkeznie. Az intelligens rendszergazdák letiltották őket, és nem fognak tudni hozzáférni a fájlrendszerhez.

    A fájljogosultságok megléte meglehetősen egyszerű ellenőrizni. Lépjen az egyik lapra (fájlok olvasása, shell létrehozása, új fájl feltöltése), és próbálja meg végrehajtani a megadott műveletek egyikét.

    Egy másik nagyon fontos megjegyzés - tudnunk kell a fájl pontos abszolút elérési útját, amellyel dolgozni fogunk - különben semmi sem fog működni.

    Nézze meg a következő képernyőképet:

    Bármilyen kísérletre, hogy egy fájlt kezeljünk, a következő választ kapjuk: Nincs FILE jogosultság(nincs fájljogosultság). És itt semmit sem lehet tenni.

    Ha ehelyett másik hiba lép fel:

    Hiba történt a [könyvtárnév]-be írásakor

    Ez azt jelenti, hogy helytelenül adta meg az abszolút elérési utat, ahová a fájlt írni kívánja.

    Az abszolút elérési út kitalálásához legalább ismernie kell azt az operációs rendszert, amelyen a szerver fut. Ehhez váltson a Hálózat lapra.

    Egy ilyen rekord (sor Win64) okot ad arra, hogy feltételezzük, hogy Windows operációs rendszerrel van dolgunk:

    Életben tartás: timeout=5, max=99 Szerver: Apache/2.4.17 (Win64) PHP/7.0.0RC6 Csatlakozás: Életben tartás Módszer: HTTP/1.1 200 OK Tartalom-hossz: 353 Dátum: 2015. december 11. péntek 11:48:31 GMT X-Powered-By: PHP/7.0.0RC6 Tartalomtípus: szöveg/html; charset=UTF-8

    Itt van néhány Unix (*BSD, Linux):

    Átviteli kódolás: darabolt Dátum: 2015. december 11. péntek 11:57:02 GMT Módszer: HTTP/1.1 200 OK Életben tartás: timeout=3, max=100 Csatlakozás: életben tartás Tartalom típusa: szöveg/html X- Üzemeltető: PHP/5.3.29 Szerver: Apache/2.2.31 (Unix)

    És itt van a CentOS:

    Módszer: HTTP/1.1 200 OK Lejár: 1981. november 19. csütörtök, 08:52:00 GMT Set-Cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; path=/ Kapcsolat: életben tartás X-Cache-Lookup: MISS from t1.hoster.ru:6666 Szerver: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.4.37 X-Cache: MISS innen t1.hoster.ru Cache-Control: nincs tárhely, nincs gyorsítótár, újra kell érvényesíteni, utólagos ellenőrzés=0, előzetes ellenőrzés=0 Pragma: nincs gyorsítótár Dátum: 2015. december 11. péntek, 12:08:54 GMT Átviteli kódolás: darabolt tartalomtípus: szöveg/html; charset=WINDOWS-1251

    Windows rendszeren a webhelyek tipikus mappa C:\Server\data\htdocs\. Valójában azonban, ha valaki „gondolt” egy szervert Windows rendszeren, akkor nagyon valószínű, hogy ez a személy semmit sem hallott a jogosultságokról. Ezért a próbálkozást közvetlenül a C:/Windows/ könyvtárból kell elkezdenie:

    Amint látja, elsőre minden rendben ment.

    De maguk a jSQL Injection héjak is kétségeket ébresztenek bennem. Ha rendelkezik fájljogosultsággal, akkor webes felülettel könnyedén feltölthet valamit.

    8. A helyek tömeges ellenőrzése SQL-befecskendezéshez

    És még ez a funkció is elérhető a jSQL Injectionben. Minden rendkívül egyszerű - töltse le a webhelyek listáját (fájlból importálható), válassza ki azokat, amelyeket ellenőrizni szeretne, és kattintson a megfelelő gombra a művelet elindításához.

    Következtetés a jSQL Injectionből

    A jSQL Injection egy jó, hatékony eszköz a webhelyeken található SQL-injekciók kereséséhez, majd használatához. Kétségtelen előnyei: könnyű kezelhetőség, beépített kapcsolódó funkciók. A jSQL Injection a kezdők legjobb barátja lehet webhelyek elemzésekor.

    A hiányosságok között megjegyezném az adatbázisok szerkesztésének lehetetlenségét (legalábbis én nem találtam ezt a funkciót). Mint minden grafikus felhasználói eszköz esetében, ennek a programnak az egyik hátránya annak tulajdonítható, hogy nem használható szkriptekben. Ennek ellenére ebben a programban némi automatizálás is lehetséges – a beépített tömeges helyszín-ellenőrzés funkciónak köszönhetően.

    megállapított minta és bizonyítvány. Különleges kedvezménnyel bármely karra és képzésre!

    Az előző blogcikkben a WordPress legújabb verziójának érdekes újításairól írtam - egy speciális létrehozási és kezelési mechanizmus. Mostanra a hétköznapi felhasználók számára sokkal kényelmesebb és egyszerűbb a különböző bonyolultságú menük létrehozása, amelyek nemcsak oldalakból vagy blogkategóriákból állhatnak, hanem bármilyen URL-re mutató hivatkozásokat is tartalmazhatnak. A menü megjelenítéséhez a sablonban egy speciális wp_nav_menu funkciót használnak - ma elmondom.

    Ha a WordPress adminisztrátorában nincs menürész, akkor azt aktiválhatja úgy, hogy speciális kódot ad a functions.php fájlhoz

    Itt van először az általunk létrehozott menü neve. Ez egy függvény általános esetben widgetek nélküli használata, ott kicsit másképp kell velük dolgozni. A wp_nav_menu függvény azonban argumentumok nélkül is kiadható, aminek eredményeként a különböző helyzetek „átnéznek” - először menünév szerinti egyezés, ha legalább egy menüpont meg van adva, egyébként nem üres menü egyszerűen megjelenik stb. De ismét azt tanácsolom, hogy egyszerűen használja a fenti kódot, és ne találja ki, mit kell az argumentumok nélküli függvénynek kiadnia. A szintaxisa a következő:

    Itt a következő paraméterek használatosak:

    $menü— a menü kiválasztott azonosítója — ID, slug vagy menü neve.

    $konténer- Ezzel a beállítással az UL menü alapértelmezés szerint egy DIV tárolóba van „csomagolva”.

    $container_class— a konténer osztályát jelzi, alapértelmezés szerint az értéke menu-(menu slug)-container, azaz esetünkben például egy osztály menü-első-tároló lesz.

    $container_id— a tárolóhoz hozzáadhat egy azonosítót, amely alapértelmezés szerint nincs megadva.

    $menu_osztály— osztály az UL menüelemhez, értéke menü.

    $menu_id— Az ul elem azonosítója, alapértelmezés szerint menü-(slug)

    $echo— ha nem szeretné megjeleníteni a menüt, de visszaadja a függvény értékét, akkor ehhez a beállításhoz használja a 0 értéket.

    $fallback_cb— ha a menü nem létezik, a wp_page_menu függvény meghívásra kerül.

    $előtt— beállítja az A link előtt megjelenő szöveget.

    $link_before— a hivatkozás szövege előtt a kifejezést jeleníti meg, nincs megadva.

    $link_after— a hivatkozás szövege után jelenik meg, szintén üresen.

    $mélység— beállítja a menü megjelenítéséhez szükséges hierarchiaszintek számát; az alapértelmezett 0 a teljes menüt jeleníti meg.

    $walker- valamiféle érthetetlen egyedi „walker object”, valószínűleg a haladó fejlesztőknek nagyobb szükségük van rá.

    $theme_location— a menüt használó téma helyét a register_nav_menu() segítségével kell aktiválni, hogy a felhasználó ki tudja választani. Valamilyen nem teljesen egyértelmű beállítás is, úgy tűnik, a widgetekkel való munka során.

    Példák a wp_nav_menu függvény használatára

    A kódban megadott legegyszerűbb kód:

    A DIV tároló eltávolítása a menüből

    "")); ?>

    Elvileg nincs semmi bonyolult a WordPress 3.0 menü létrehozásában és kezelésében. A fejlesztők jelentősen leegyszerűsítették a munkafolyamatot, és kibővítették ennek a navigációs elemnek a lehetőségeit. A megoldást gyakran használják különféle sablonfeladatoknál, például mobil- és asztali verziók készítésekor. Kicsit később hozzáteszek még pár részletet a témához.

    P.S. Őr. Érdekes és hasznos blog a SEO-val foglalkozó webmesterek számára, ahol választ találhat a SEO-val kapcsolatos kérdéseire.
    Az Aweb cég már régóta nagyon jól megállja a helyét a weboldalak népszerűsítése, optimalizálása és a keresőmotorok internetes promóciója terén.

    Mert kiteszi a menu.php modul tartalmát. Az alábbiakban bemutatjuk saját PHP nyelvű menüfejlesztésünket, amelyet a nulláról írtunk egy jegyzettömbbe.

    Ez a kód különösen hasznos lesz olyan dinamikus webhelyeknél, amelyek egyedi motorokkal rendelkeznek. Két kódopciót ajánlok fel, amelyek kisebb eltéréseket mutatnak (a különbségeket később magyarázzuk el).

    Először is megadom annak a webhelynek a hozzávetőleges szerkezetét, amelyre ez a menü alkalmas. A webhely szerkezetének így kell kinéznie (klasszikus nézet):

    /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

    A webhely alszakaszokat is tartalmazhat a következő szakaszokhoz:

    /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.html/razdel_1/podzaderl_2.html

    Ez a felépítés az étlapunkon is működni fog, kisebb eltérésekkel.

    Azt javaslom, hogy hozzon létre egy külön fájlt a menühöz php-ban. Például a menu.php nagyszerű név lenne egy ilyen fájlnak. A menü megvalósításához egy menüstílus is rendelkezésre áll a CSS-ben, hogy azonnal szebbé vagy kevésbé szebbé váljon. Természetesen ez a stílus csak tájékoztató jellegű, mivel az oldalak kialakítása nagyon eltérő.

    A menü stílusának kódja CSS-ben:

    .menu ( magasság:42px; padding:0 0 0 16px; background:url(images/spacer.png) repeat; ) .menu li ( display:block; float:left; ) .menu li.active ( háttér: #000011 ; ) .menu a ( color:#FFF; display:block; line-height: 42px; text-decoration:none; padding:0 14px; ) .menu a:hover ( background:url(images/spacer.png) ismétlés ;)

    Most nézzük meg az első lehetőséget a menü implementálására PHP-ben, amely kissé leegyszerűsítve van.

    A menükód első verziója PHP-ben

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

    A menü két részre osztható. Az első a $array_menu információs tömböt tartalmazza, amely szekcióink neveit tartalmazza szakaszokra mutató hivatkozásokkal. Lehetőség van ezen adatok beírására a mySQL adatbázisba, de ennek nincs különösebb értelme, mivel a minta nagyon kicsi, így ez nem befolyásolja a munka sebességét.

    A második rész a menü kimenetét tartalmazza egy for cikluson keresztül. A ciklus összehasonlítja a webhely címét a $array_menu tömbben található címmel. Ha van egyezés, akkor a következő menürészt jelenítjük meg egy speciális aktív osztállyal:

  • , egyébként csak
  • . Ez lehetővé teszi, hogy valamilyen színnel kiemeljük a menü azon részét, amelyben a felhasználó tartózkodik. Véleményem szerint ez minden oldalnál szükséges, hogy a felhasználó megértse, melyik szekcióban van.

    A tömbben lévő sorrend megmarad, amikor a menü megjelenik a webhelyen. Vagyis a tömböt a menü megjelenítési sorrendjében kell kitölteni.

    Jegyzet:
    Ha a szakaszfejlécek URL-jei (címei) így néznek ki:
    /section_1
    vagy így
    /razdel_1/nazvanie_razdela.html
    akkor pontos egyezést kell írnia az array_menu-ba:
    $array_menu[$i]["url"]="/razdel_1"
    vagy a második esetre:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Hogyan működik az első menüopció?
    Csak akkor emeli ki a menüt, ha a szakaszfejléc címén tartózkodik. Például, ha az oldal címe /razdel_1/cikk_1.html, akkor a menü semmilyen módon nem lesz kiemelve.

    A kód második verziója az első módosított változata, és lehetővé teszi a menük kiemelését még a szakaszokban található cikkekben is.

    A menükód második verziója PHP-ben

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

    Ha érdekli a válasz arra a kérdésre, hogyan készítsünk weboldal menüt, akkor a megfelelő címre érkezett.

    Megvizsgáljuk, hogyan lehet létrehozni egy dinamikus menüt PHP-ben, amely kifejezetten a dumák programozására íródott, valamint azoknak, akik még mindig a tankban vannak.

    3. lecke. Menü készítése php-ban egy weboldalhoz - dumáknak

    Készítsük el weboldalunk jövőbeli elrendezését. Ehhez megrajzolunk egy szuper gyönyörű weboldalt a Photoshopban, és darabokra vágjuk. Képzeljük el, hogy a fejléc, logó, menü és lábléc nem szavakkal van írva, mint ebben a példában, hanem ezek az oldal elegánsan és színesen megtervezett elemei.

    Hozzunk létre például három oldalt, és nevezzük őket 1. szakasznak, 2. szakasznak, 3. szakasznak

    Ez a szöveg a különböző oldalakon eltérő lesz, de nem foglalkozunk vele, és minden oldalon úgy hagyjuk, ahogy van.

    Kezdjük el a weboldal készítését PHP-ben.

    1. Válassza ki a fejléc-, logó-, menü- és láblécblokkokat külön fájlba php vagy html kiterjesztéssel

    header.html

    logo.html

    menü.html

    lábléc.html

    Adjunk hozzá egy fájlt ezzel a szöveggel, hogy minden oldalon lássuk. Hívjuk fel text.html

    Jegyzet. Ezentúl a további nyilvántartásokat közvetlenül az aktában fogom vezetni. text.html

    2. Készítsünk sablont a weboldalunkhoz PHP-ben.

    Ehhez egy egyszerű dolgot fogunk tenni - elmentjük a valódi fájlt, de a php kiterjesztéssel, és töröljük az összes szöveges tartalmat. Lehet, hogy nem szakszerű, de érthető, de majd később mindent bonyolítunk. Most a lényeg az, hogy megértsük az elrendezés elvét.

    3. Most már nincs szükségünk a template.html fájlra.

    Neki köszönhetően van elképzelésünk arról, hogyan fog kinézni az oldalunk.

    4. A sablonunk a template.php fájl

    Most beillesztjük az összes webhelyelemet az include paranccsal.

    5. Hozzunk létre három oldalt, ahogyan eredetileg is készültünk.

    1. szakasz, hívjuk 1.php

    2. szakasz, hívjuk 2.php

    3. szakasz, hívjuk 3.php

    Ehhez használhatja a legegyszerűbb parancsot mentés másként...

    Hadd magyarázzam el a kicsiknek: nyissa meg a fájlt sablon.php, majd nyomja meg mentés másként...és mentse el a név alatt 1.php, ismételje meg az eljárást, és sorban mentse el a webhely oldalait 2.php, 3.php

    Végül 3 oldalt kaptunk, ugyanolyan dizájnnal. Csak illessze be fájl helyett text.html egy másik, kiegészítés különböző képekkel vagy néhány html kóddal, scripttel és minden oldal tartalma egyedi lesz.

    Figyelem!

    Ha a fájl nem jön létre index.php a főoldalhoz, akkor a böngészőben az oldal címének beírásával magát az oldalt nem fogjuk látni, hanem csak a könyvtárszerkezetet (mappák listája).

    Megnézheti Denverben, és meggyőződhet róla. Javítsuk ki a helyzetet – hozzunk létre egy fájlt index.phpés minden további nélkül hívjuk itthon. Ezzel egy időben hozzunk létre egy fájlt text-home.htmlés a parancs használatával tartalmazza illessze be az oldal újonnan létrehozott főoldalára.

    6. Hogyan nézhetek meg egy weboldalt php-ban?

    Csak nem fogjuk látni, mi történt. Ez már nem egy html kiterjesztésű sablon.

    De nem is probléma. Szükségünk van a sajátunkra, pl. helyi szerver a számítógépen. Ehhez telepítjük a Denvert, és egy böngészőben nézzük meg a munkánk eredményét anélkül, hogy internetre lépnénk.

    Most ez a sorrend. Beírtam az oldal címét, és mindent láttam, ami most készült normál formában, tervezéssel.

    Most nézzük az oldal PHP menüjét.

    1. Nyissa meg a menu.html fájlt, és alakítsa át az 1., 2. és 3. részt hivatkozásokká a webhelyen. A PHP-ben a hivatkozások különböző módon jönnek létre.

    A mi feladatunk, hogy megtanuljuk, hogyan kell érezni a PHP-ben létrehozott oldalt. Ezért úgy fogunk linkeket létrehozni, mint egy normál statikus oldalon, 1. szakasz stb.

    Nagyon szeretem ezt a linkkészítési folyamatot a Macromedia Dreamweaverben. Legyen ideje aratni rendbenés kávét inni.

    2. Hogyan lehet inaktívvá tenni egy hivatkozást a menüben, ha a látogató ezen az oldalon van.

    A látogató számára kényelmesebb lesz úgy navigálni az oldalon, hogy tudja, melyik oldalon van.

    Ha az összes lépést pontosan, pontról pontra követte, látni fogja, hogy a menüben minden hivatkozás mindig aktív. Hogyan lehet megjavítani?

    Először is emlékezzünk a definícióra, hogy mi is ez Feltételes kijelentések

    – ilyenkor a feltételektől függően valamilyen művelet végrehajtásra kerül, vagy nem.

    Tegyük a következőket:

    • Szükségünk lesz változókés egy feltételes operátor:

    if ($master == "fő")// ezt a feltételt. Ha végrehajtódik, akkor a menü ezen helyére az echo paranccsal közönséges HTML-címkék kerülnek beillesztésre, amelyek a „Home” feliratot jelenítik meg.

    visszhang"

    itthon

    ";

    más// jelentése „egyébként” – mi történik, ha a feltétel nem teljesül. Ebben az esetben, ha a feltétel nem teljesül, a „Kezdőlap” felirat a főoldalra vezető hivatkozás lesz.

    visszhang"

    itthon

    ";

    • Kitaláltuk a feltételt, de úgy ellenőrizze a változótmeg kell kérdezned.

    Ehhez a következő kódblokkokat helyezzük el az összes oldalon:

    $master = "Fő";

    $master = "1. szakasz";

    $master = "2. szakasz";

    $master = "3. szakasz";

    Mint látható, minden oldalnak saját kódja van.

    Tehát a PHP menü létrehozásának gyakorlati lépései a következők:

    1) Nyissa meg a fájlt index.php

    és illessze be a kódot

    $master = "Fő";

    arra a helyre, ahová beszúrja a webhely menüjét megjelenítő kódot tartalmazza a "menu.html";
    ?>

    2) Nyissa meg a fájlt menü.htmlés a főoldalra mutató egyszerű html hivatkozás helyett illessze be a kódot a feltétellel.

    Benézünk a böngészőbe és csodáljuk! Ha a főoldalra megyünk, a link már nem aktív!

    3) Ismételje meg az 1. és 2. pontot oldalakkal 1.php, 2.php, 3.php

    1. ismétlés:

    1) Nyissa meg az 1.php fájlt, és szúrja be a kód elé, amely egy adott változós menüblokkot jelenít meg

    $master = "1. szakasz";

    2) Nyissa meg a menu.html fájlt, és egyszerű hivatkozás helyett illessze be a kódot a feltétellel 1. szakasz, a következő változtatásokat hajtja végre:

    if ($master == "1. szakasz")// ezt a feltételt. Ha végrehajtódik, akkor a menü ezen helyére az echo paranccsal közönséges HTML-címkék kerülnek beillesztésre, amelyek az „1. ​​szakasz” feliratot jelenítik meg.

    visszhang"

    1. szakasz

    ";

    más// jelentése „egyébként” – mi történik, ha a feltétel nem teljesül. Ebben az esetben, ha a feltétel nem teljesül, az „1. ​​szakasz” felirat a főoldalra vezető hivatkozás lesz.

    visszhang"

    1. szakasz

    ";

    Megint megtörtént a csoda! Ha már az oldalon vagyunk 1. szakasz, a menüben lévő hivatkozás nem aktív.

    Az ismétlés a tanulás anyja! Vagy a tankban lévőknek! Újra

    Ismétlés 2

    1) Nyissa meg fájl 2.phpés illessze be a kódot.

    $master = "2. szakasz";

    2) Nyissa meg újra a menu.html fájlt, és illessze be a kódot a feltétellel

    if ($master == "2. szakasz")// ezt a feltételt. Ha végrehajtódik, akkor a menü ezen helyére az echo paranccsal közönséges HTML-címkék kerülnek beillesztésre, amelyek a „2. szakasz” feliratot jelenítik meg.

    visszhang"

    2. szakasz

    ";

    más// jelentése „egyébként” – mi történik, ha a feltétel nem teljesül. Ebben az esetben, ha a feltétel nem teljesül, a „2. szakasz” felirat a főoldalra vezető hivatkozás lesz.

    visszhang"

    2. szakasz

    ";

    Ismétlés 3

    1) Nyítás fájl 3.phpés állítsa be a változót.

    $master = "3. szakasz";

    2) A menu.html fájlba hivatkozás helyett feltétellel illesztjük be a kódot 3. szakasz, a változások a következők:

    if ($master == "3. szakasz")// ezt a feltételt. Ha végrehajtódik, akkor a menü ezen helyére az echo paranccsal közönséges HTML-címkék kerülnek beillesztésre, amelyek a „3. szakasz” feliratot jelenítik meg.

    visszhang"

    3. szakasz

    ";

    más// jelentése „egyébként” – mi történik, ha a feltétel nem teljesül. Ebben az esetben, ha a feltétel nem teljesül, a „3. szakasz” felirat a főoldalra vezető hivatkozás lesz.

    visszhang"

    3. szakasz

    ";

    A lényeg: hivatkozások helyett az ilyen típusú menüben

    itthon


    1. szakasz

    2. szakasz


    3. szakasz

    Ez a php-ról szóló lecke a webhely látogatóinak számos kérésére válaszolva íródott, és gyakorlati útmutató a webhely dinamikus menüjének létrehozásához php-ban.

    A következő webmester csalólapja megmondja, hogyan készíthet egyedi címeket, leírásokat és kulcsszavakat minden oldalhoz PHP-ben.

    Letöltheti az archívumot az összes webhelysablonnal és php menüfájllal. A programozásban kezdőknek ajánlott.

    Ha készen áll arra, hogy komolyan tanulja a PHP-t, akkor nehéz jobb videó tanfolyamot találni Popovtól. Sok tapasztalata van és jó stílusa van.

    ]]> ]]>



  • 2024 | Számítógépek mindenkinek – Beállítás, telepítés, helyreállítás