Instruksjoner for bruk av jSQL Injection, et multifunksjonelt verktøy for å finne og utnytte SQL-injeksjoner i Kali Linux. Flernivåmeny i PHP og MySQL Inurl php egen menyspill-ID

Ingen nettside er komplett uten navigasjon eller, som de også kaller det, en "sidemeny". Så nettstedsmenyen kan være på ett eller flere nivåer i form av et tre. Hvis det ikke er noen spesielle vanskeligheter når det gjelder implementering med en enkeltnivåmeny, må du tenke nøye når du lager en flernivåmeny.

Det viktigste i denne oppgaven er å designe databasen for flernivåmenyen vår. La oss lage en kategoritabell med tre felt id, tittel, forelder Hvor:

  • ID- identifikator
  • Tittel- Menynavn
  • Foreldre- Standard kategori overordnet 0

Feltet er ansvarlig for forgrening av menyen Foreldre Hvis Foreldre = 0, så er denne kategorien overordnet kategori. For å legge til etterkommere i den overordnede kategorien, må du spesifisere i det overordnede feltet ID rett forelder. For eksempel:

Tabeller med kategorier

Som det fremgår av tabellen, er overordnet kategori Biler det er to etterkommere - dette er Mazda Og Honda relatert etter felt Foreldre. Og kategorien Motorsykler to etterkommere er Kawasaki Og Harley. Samtidig har Båtkategorien ingen etterkommere. Jeg håper du forstår hvordan du kobler kategorier.

Deretter går vi fra ord til praksis. La oss lage en kategoritabell.

LAG TABELL HVIS IKKE FINNES `kategorier` (`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 ; -- -- Datadump fra tabellen `kategorier` -- INSERT INTO `categories` (`id`, `title`, `parent`) VERDIER (1, "Biler", 0), (2, "Motorsykler", 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, "Grønn" , 13), (18, "Mazda CX", 3), (19, "Mazda MX", 3);

Arbeidsalgoritmen består av følgende:

Opprett en tilkobling til databasen

query("SET NAMES "utf8""); /* * Dette er den "offisielle" objektorienterte måten å gjøre dette på * men $connect_error fungerte ikke før PHP versjoner 5.2.9 og 5.3.0. */ if ($mysqli->connect_error) ( die("Tilkoblingsfeil (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Hvis du trenger å være sikker på kompatibilitet med versjoner før 5.2 .9, * er det bedre å bruke denne koden */ if (mysqli_connect_error()) ( die("Tilkoblingsfeil (". mysqli_connect_errno() . ") ". mysqli_connect_error()); )

Skrive en funksjon for å hente data fra tabellen Kategorier

//Få matrisen til menyen vår fra databasen som en matrisefunksjon getCat($mysqli)( $sql = "VELG * FRA `kategorier`"; $res = $mysqli->query($sql); //Opprett en array hvor nøkkelen til arrayen er meny-ID $cat = array(); while($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) returner $ katt;)

Vi får et array som dette, hvor array-nøkkelen er kategori-ID.

Byggefunksjon i heltre fra Tommy Lacroix

//Funksjon for å bygge et tre fra en matrise fra Tommy Lacroix-funksjonen getTree($dataset) ( $tree = array(); foreach ($dataset som $id => &$node) ( //Hvis det ikke er noen vedlegg if ( !$node[" parent"])( $tree[$id] = &$node; )else( //Hvis det er underordnede, så iterer gjennom matrisen $dataset[$node["parent"]]["childs "][$id] = &$ node; ) ) returner $tree; )

Vi får en matrise i form av et tre

Hele manuset

query("SET NAMES "utf8""); /* * Dette er den "offisielle" objektorienterte måten å gjøre dette på * men $connect_error fungerte ikke før PHP versjoner 5.2.9 og 5.3.0. */ if ($mysqli->connect_error) ( die("Tilkoblingsfeil (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); ) /* * Hvis du trenger å være sikker på kompatibilitet med versjoner før 5.2 .9, * er det bedre å bruke denne koden */ if (mysqli_connect_error()) ( die("Tilkoblingsfeil (". mysqli_connect_errno() . ") ". mysqli_connect_error()); ) //Hent matrisen av menyen vår fra databasen som en array-funksjon getCat($mysqli)( $sql = "VELG * FRA `kategorier`"; $res = $mysqli->query($sql); //Opprett en matrise hvor array-nøkkelen er meny-IDen $cat = array(); mens ($row = $res->fetch_assoc())( $cat[$row["id"]] = $row; ) return $cat; ) //Funksjon for bygge et tre fra en matrise fra Tommy Lacroix-funksjonen getTree($dataset) ( $tree = array(); foreach ($dataset som $id => &$node) ( //Hvis det ikke er noen vedlegg if (!$node[) "parent"])( $tree[$id] = &$node; )else( //Hvis det er etterkommere, så gå gjennom matrisen $dataset[$node["parent"]]["childs"][$ id] = &$node; ) ) returner $tree; ) //Få en forberedt array med data $cat = getCat($mysqli); //Lag en tremeny $tree = getTree($cat); //Mal for å vise en meny i form av en trefunksjon tplMenu($category)( $menu = "
  • ". $category["tittel"].""; if(isset($category["barn"]))( $menu .= "
      ". showCat($category["barn"]) ."
    "; ) $menu .= "
  • "; return $menu; ) /** * Les malen vår rekursivt **/ function showCat($data)( $string = ""; foreach($data as $item)( $string .= tplMenu($item); ) returner $string; ) //Få HTML-markering $cat_menu = showCat($tree); //Vis ekko "
      ".$cat_menu."
    "; ?>

    Resultat av arbeid

    Flernivåmeny i PHP + MySQL for adminpanel

    Hvis du vil bruke denne menyen i administrasjonspanelet på nettstedet ditt, må du skrive om et par funksjoner tplMenu(), showCat().

    ".$category["tittel"].""; )else( $menu = " "; ) if(isset($kategori["barn"]))( $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 ""; ?>

    Resultat av arbeid

    Velg Biler → Mazda →→ Mazda 3 →→→ Sedan →→→ Hatchback →→ Mazda 6 →→→ Liftback →→→ Crossover →→→→ Hvit →→→→ Rød → →→→ Svart →→→→ Grønn →→ Mazda CX →→ Mazda MX → Honda Motorsykler → Kawasaki → Harley Boats

    Kjør den nedlastede filen ved å dobbeltklikke (du må ha en virtuell maskin).

    3. Anonymitet når du sjekker et nettsted for SQL-injeksjon

    Sette opp Tor og Privoxy i Kali Linux

    [Seksjon under utvikling]

    Sette opp Tor og Privoxy på Windows

    [Seksjon under utvikling]

    Proxy-innstillinger i jSQL Injection

    [Seksjon under utvikling]

    4. Sjekke stedet for SQL-injeksjon med jSQL-injeksjon

    Å jobbe med programmet er ekstremt enkelt. Bare skriv inn nettadressen og trykk ENTER.

    Følgende skjermbilde viser at nettstedet er sårbart for tre typer SQL-injeksjoner (informasjon om dem er angitt i nedre høyre hjørne). Ved å klikke på navnene på injeksjonene kan du bytte metode som brukes:

    Også de eksisterende databasene har allerede blitt vist til oss.

    Du kan se innholdet i hver tabell:

    Vanligvis er det mest interessante med tabeller administratorlegitimasjonen.

    Hvis du er heldig og finner administratorens data, er det for tidlig å glede seg. Du må fortsatt finne administrasjonspanelet hvor du skal legge inn disse dataene.

    5. Søk etter admin paneler med jSQL Injection

    For å gjøre dette, gå til neste fane. Her blir vi møtt med en liste over mulige adresser. Du kan velge én eller flere sider for å sjekke:

    Bekvemmeligheten ligger i det faktum at du ikke trenger å bruke andre programmer.

    Dessverre er det ikke så veldig mange uforsiktige programmerere som lagrer passord i klartekst. Ganske ofte i passordlinjen ser vi noe lignende

    8743b52063cd84097a65d1633f5c74f5

    Dette er en hasj. Du kan dekryptere den ved å bruke brute force. Og... jSQL Injection har en innebygd brute force.

    6. Brute force hashes ved hjelp av jSQL Injection

    Den utvilsomme fordelen er at du ikke trenger å lete etter andre programmer. Det er støtte for mange av de mest populære hashene.

    Dette er ikke det beste alternativet. For å bli en guru i dekoding av hasjer, anbefales boken "" på russisk.

    Men, selvfølgelig, når det ikke er noe annet program for hånden eller det ikke er tid til å studere, vil jSQL Injection med sin innebygde brute force-funksjon være veldig nyttig.

    Det er innstillinger: du kan angi hvilke tegn som skal inkluderes i passordet, passordlengdeområdet.

    7. Filoperasjoner etter oppdagelse av SQL-injeksjoner

    I tillegg til operasjoner med databaser - lesing og endring av dem, hvis SQL-injeksjoner oppdages, kan følgende filoperasjoner utføres:

    • lese filer på serveren
    • laste opp nye filer til serveren
    • opplasting av skjell til serveren

    Og alt dette er implementert i jSQL Injection!

    Det er begrensninger - SQL-serveren må ha filrettigheter. Smarte systemadministratorer har deaktivert dem og vil ikke kunne få tilgang til filsystemet.

    Tilstedeværelsen av filrettigheter er ganske enkel å sjekke. Gå til en av fanene (lese filer, lage et skall, laste opp en ny fil) og prøve å utføre en av de angitte operasjonene.

    En annen veldig viktig merknad - vi trenger å vite den nøyaktige absolutte banen til filen som vi skal jobbe med - ellers vil ingenting fungere.

    Se på følgende skjermbilde:

    På ethvert forsøk på å operere på en fil, mottar vi følgende svar: Ingen FILE-rettigheter(ingen filrettigheter). Og ingenting kan gjøres her.

    Hvis du i stedet har en annen feil:

    Problemer med å skrive inn i [katalognavn]

    Dette betyr at du feilaktig spesifiserte den absolutte banen der du vil skrive filen.

    For å gjette en absolutt bane, må du i det minste vite hvilket operativsystem serveren kjører på. For å gjøre dette, bytt til fanen Nettverk.

    En slik rekord (linje Win64) gir oss grunn til å anta at vi har å gjøre med Windows OS:

    Keep-Alive: timeout=5, max=99 Server: Apache/2.4.17 (Win64) PHP/7.0.0RC6 Tilkobling: Keep-Alive Metode: HTTP/1.1 200 OK Innholdslengde: 353 Dato: fre 11. desember 2015 11:48:31 GMT X-Powered-By: PHP/7.0.0RC6 Content-Type: text/html; charset=UTF-8

    Her har vi litt Unix (*BSD, Linux):

    Overføringskoding: chunked Dato: fre, 11. desember 2015 11:57:02 GMT Metode: HTTP/1.1 200 OK Keep-Alive: timeout=3, max=100 Tilkobling: keep-alive Innholdstype: text/html X- Powered-By: PHP/5.3.29 Server: Apache/2.2.31 (Unix)

    Og her har vi CentOS:

    Metode: HTTP/1.1 200 OK Utløper: Thu, 19 Nov 1981 08:52:00 GMT Set-Cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; path=/ Tilkobling: keep-alive X-Cache-Lookup: MISS fra t1.hoster.ru:6666 Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.4.37 X-Cache: MISS fra t1.hoster.ru Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Dato: Fre, 11 Des 2015 12:08:54 GMT Transfer-Encoding: chunked Content-Type: text/html; charset=WINDOWS-1251

    På Windows er en typisk mappe for nettsteder C:\Server\data\htdocs\. Men faktisk, hvis noen "tenkte på" å lage en server på Windows, så har denne personen svært sannsynlig ikke hørt noe om privilegier. Derfor bør du begynne å prøve direkte fra C:/Windows/-katalogen:

    Som du ser gikk alt bra første gang.

    Men selve jSQL Injection-skallene vekker tvil hos meg. Hvis du har filrettigheter, kan du enkelt laste opp noe med et nettgrensesnitt.

    8. Massekontroll av steder for SQL-injeksjoner

    Og til og med denne funksjonen er tilgjengelig i jSQL Injection. Alt er ekstremt enkelt - last ned en liste over nettsteder (du kan importere fra en fil), velg de du vil sjekke og klikk på riktig knapp for å starte operasjonen.

    Konklusjon fra jSQL Injection

    jSQL Injection er et godt, kraftig verktøy for å søke og deretter bruke SQL-injeksjoner som finnes på nettsteder. Dens utvilsomme fordeler: brukervennlighet, innebygde relaterte funksjoner. jSQL Injection kan være en nybegynners beste venn når de analyserer nettsteder.

    Blant manglene vil jeg merke meg umuligheten av å redigere databaser (i det minste fant jeg ikke denne funksjonaliteten). Som med alle GUI-verktøy, kan en av ulempene med dette programmet tilskrives dets manglende evne til å brukes i skript. Ikke desto mindre er en viss automatisering også mulig i dette programmet - takket være den innebygde funksjonen for massekontroll.

    etablert prøve og sertifikat. For en spesiell rabatt på alle fakulteter og kurs!

    I bloggartikkelen før sist skrev jeg om de interessante innovasjonene til den nyeste versjonen av WordPress - en spesiell mekanisme for å lage og administrere . Nå har det blitt mye mer praktisk og enklere for vanlige brukere å lage menyer med varierende kompleksitet, som ikke bare kan bestå av sider eller bloggkategorier, men også ha lenker til en hvilken som helst URL. For å vise menyen i malen, brukes en spesiell funksjon wp_nav_menu - jeg skal fortelle deg om det i dag.

    Hvis det ikke er noen menydel i WordPress admin, kan du aktivere den ved å legge til spesialkode i functions.php-filen

    Her er først navnet på menyen vi laget. Dette er bruken av en funksjon i det generelle tilfellet uten widgets; du må jobbe med dem litt annerledes der. Imidlertid kan wp_nav_menu-funksjonen sendes ut uten argumenter, som et resultat av at forskjellige situasjoner vil bli "sett gjennom" - først, en match etter menynavn, hvis minst ett menyelement er spesifisert for det, ellers en ikke-tom meny vil ganske enkelt vises osv. Men igjen, jeg anbefaler deg å ganske enkelt bruke koden ovenfor og ikke finne ut hva funksjonen uten argumenter skal sende ut. Syntaksen er som følger:

    Følgende parametere brukes her:

    $meny— valgt identifikator for menyen — ID, slug eller menynavn.

    $container- UL-menyen "pakkes" inn i en DIV-beholder som standard ved å bruke denne innstillingen.

    $container_class— indikerer klassen til beholderen, som standard er verdien menu-(menu slug)-container, det vil si at i vårt tilfelle, for eksempel, vil det være en klassemeny-first-container.

    $container_id— du kan legge til en ID til beholderen, ikke spesifisert som standard.

    $menu_class— klasse for UL-menyelementet, verdien er meny.

    $menu_id— ID for ul-elementet, standard til meny-(slug)

    $ekko— hvis du ikke vil vise menyen, men returnere verdien til funksjonen, bruk verdien 0 for denne innstillingen.

    $fallback_cb— hvis menyen ikke eksisterer, kalles wp_page_menu-funksjonen.

    $før— setter teksten som vises før lenke A.

    $link_before— viser uttrykket før lenketeksten, ikke spesifisert.

    $link_after— vises etter lenketeksten, også tom.

    $dybde— angir antall hierarkinivåer for å vise menyen; standardverdien 0 viser hele menyen.

    $walker- en slags uforståelig tilpasset "walker-objekt", sannsynligvis mer nødvendig av avanserte utviklere.

    $theme_location— temastedet hvor menyen skal brukes må aktiveres via register_nav_menu() for at brukeren skal kunne velge det. Også en slags ikke helt klar innstilling, tilsynelatende, når du arbeider med widgets.

    Eksempler på bruk av funksjonen wp_nav_menu

    Den enkleste koden gitt i koden er:

    Fjerne DIV-beholderen fra menyen

    "")); ?>

    I prinsippet er det ikke noe komplisert i å lage og administrere en WordPress 3.0-meny. Utviklerne har betydelig forenklet arbeidsprosedyren og utvidet mulighetene til dette navigasjonselementet. Løsningen brukes ofte i en rekke maloppgaver, for eksempel når du lager for mobil- og desktopversjoner. Litt senere vil jeg legge til et par utdrag til om emnet.

    P.S. Vakt. En interessant og nyttig blogg for webansvarlige om SEO, hvor du finner svar på dine spørsmål om SEO.
    Aweb-selskapet har lenge etablert seg svært godt innen nettstedspromotering, optimalisering og søkemotorpromotering på Internett.

    Fordi det avslører innholdet i menu.php-modulen. Nedenfor vil vi presentere vår egen menyutvikling i PHP, som ble skrevet fra bunnen av i en notisblokk.

    Denne koden vil være spesielt nyttig for dynamiske nettsteder som har tilpassede motorer. Jeg vil tilby to kodealternativer som har mindre forskjeller (forskjellene vil bli forklart senere).

    Til å begynne med vil jeg gi en omtrentlig struktur på nettstedet som denne menyen passer for. Nettstedstrukturen skal se slik ut (klassisk visning):

    /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

    Nettstedet kan også inneholde underseksjoner for seksjoner:

    /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

    Denne strukturen vil også fungere for menyen vår med bare mindre forskjeller.

    Jeg foreslår å lage en egen fil for menyen i php. For eksempel vil menu.php være et flott navn for en slik fil. For å implementere menyen er det også gitt en menystil i CSS for umiddelbart å gjøre den mer eller mindre vakker. Naturligvis er denne stilen kun gitt for referanse, siden designene til nettstedene er veldig forskjellige.

    Kode for menystil i CSS:

    .menu ( høyde:42px; polstring:0 0 0 16px; bakgrunn:url(images/spacer.png) gjenta; ) .menu li ( display:block; float:venstre; ) .menu li.active ( bakgrunn: #000011 ; ) .menu a (farge:#FFF; display:block; line-height:42px; text-decoration:none; padding:0 14px; ) .menu a:hover ( background:url(images/spacer.png) repeat ;)

    La oss nå se på det første alternativet for å implementere en meny i PHP, som er litt forenklet.

    Den første versjonen av menykoden i PHP

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

    Menyen kan deles inn i to deler. Den første inneholder informasjonsmatrisen $array_menu, som inneholder navnene på seksjonene våre med lenker til seksjoner. Det er en mulighet for å legge inn disse dataene i mySQL-databasen, men det er ikke noe spesielt poeng i dette, siden utvalget er veldig lite, så dette vil ikke påvirke hastigheten på arbeidet.

    Den andre delen inneholder utdata fra menyen gjennom en for-løkke. Syklusen sammenligner nettstedsadressen med adressen fra arrayen $array_menu. Hvis det er en match, viser vi neste menydel med en spesiell aktiv klasse:

  • , ellers bare
  • . Dette lar oss markere med litt farge den delen av menyen der brukeren befinner seg. Etter min mening er dette en nødvendig ting for ethvert nettsted, slik at brukeren kan forstå hvilken seksjon han er i.

    Rekkefølgen i matrisen vil bli bevart når menyen vises på nettstedet. Det vil si at matrisen må fylles ut i den rekkefølgen menyen skal vises i.

    Merk:
    Hvis nettadressene (adressene) til seksjonsoverskriftene ser slik ut:
    /seksjon 1
    eller som dette
    /razdel_1/nazvanie_razdela.html
    så må du skrive en eksakt match i array_menu:
    $array_menu[$i]["url"]="/razdel_1"
    eller for det andre tilfellet:
    $array_menu[$i]["url"]="/razdel_1/nazvanie_razdela.html";

    Hvordan fungerer det første menyvalget?
    Den fremhever bare menyen hvis du er på seksjonsoverskriftsadressen. Hvis for eksempel sideadressen er /razdel_1/articles_1.html, vil ikke menyen bli uthevet på noen måte.

    Den andre versjonen av koden er en modifisert versjon av den første og gir muligheten til å fremheve menyer selv i artikler som er plassert i seksjoner.

    Den andre versjonen av menykoden i PHP

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

    Hvis du er interessert i svaret på spørsmålet om hvordan du lager en nettsidemeny, så har du kommet til riktig adresse.

    Vi skal se på å lage en dynamisk meny i PHP, skrevet spesifikt for programmeringsdummier, så vel som for de som fortsatt er i tanken.

    Leksjon 3. Gjøre en meny i php for en nettside dynamisk - for dummies

    La oss lage den fremtidige layouten til nettstedet vårt. For å gjøre dette tegner vi en super vakker nettside i Photoshop og klipper den i biter. La oss forestille oss at overskriften, logoen, menyen og bunnteksten ikke er skrevet med ord, som i dette eksemplet, men disse er elegante og fargerikt utformede elementer på nettstedet.

    La oss lage tre sider for eksempel og kalle dem seksjon 1, seksjon 2, seksjon 3

    Denne teksten vil være forskjellig for forskjellige sider, men vi vil ikke bry oss med den og la den være som den er på alle sider.

    La oss begynne å lage et nettsted i PHP.

    1. Velg topptekst, logo, meny, bunntekstblokker i separate filer med php- eller html-utvidelsen

    header.html

    logo.html

    menu.html

    bunntekst.html

    La oss legge til en fil med denne teksten slik at vi kan se den på alle sider. La oss ringe ham text.html

    Merk. Fra nå av vil jeg oppbevare ytterligere poster direkte i filen. text.html

    2. La oss lage en mal for nettstedet vårt i PHP.

    For å gjøre dette vil vi gjøre en enkel ting - lagre den virkelige filen, men med php-utvidelsen og slett alt tekstinnholdet. Det er kanskje ikke profesjonelt, men det er forståelig, men vi vil komplisere alt senere. Nå er det viktigste å forstå prinsippet om layout.

    3. Nå trenger vi ikke filen template.html.

    Takket være ham har vi en ide om hvordan siden vår vil se ut.

    4. Vår mal er template.php-fil

    Vi vil nå sette inn alle sideelementene i den ved å bruke include-kommandoen.

    5. La oss lage tre sider, slik vi først skulle gjøre.

    Seksjon 1, la oss ringe 1.php

    Seksjon 2, la oss ringe 2.php

    Seksjon 3, la oss ringe 3.php

    For å gjøre dette kan du bruke den enkleste kommandoen lagre som...

    La meg forklare for de minste: åpne filen template.php, og trykk deretter på lagre som... og lagre den under navnet 1.php, gjenta prosedyren og lagre sidesidene sekvensielt 2.php, 3.php

    Vi endte opp med 3 sider med samme design. Bare lim den inn i stedet for en fil text.html en annen, suppler med forskjellige bilder eller noen html-koder, skript og innholdet på hver side vil være unikt.

    Merk følgende!

    Hvis filen ikke er opprettet index.php for hovedsiden, deretter i nettleseren, ved å skrive inn nettstedets adresse, vil vi ikke se selve nettstedet, men bare katalogstrukturen (liste over mapper).

    Du kan se i Denver og se selv. La oss fikse situasjonen - lag en fil index.php og la oss ringe uten videre hjem. La oss samtidig lage en fil text-home.html og bruke kommandoen inkludere sett den inn på den nyopprettede hovedsiden til nettstedet.

    6. Hvordan se en nettside i php?

    Vi vil bare ikke se hva som skjedde. Dette er ikke lenger en mal med en html-utvidelse.

    Men heller ikke noe problem. Vi trenger vår egen, d.v.s. lokal server på datamaskinen din. For å gjøre dette, installerer vi Denver og ser på resultatet av arbeidet vårt i en nettleser uten å gå online.

    Nå er det orden. Jeg skrev inn nettstedsadressen og så alt som nettopp var laget i vanlig form med design.

    La oss nå ta på nettstedets PHP-meny.

    1. Åpne filen menu.html og gjør avsnitt 1, 2 og 3 til lenker på nettstedet. Lenker i PHP lages på forskjellige måter.

    Vår oppgave er å lære hvordan du føler nettstedet opprettet i PHP. Derfor vil vi lage lenker som på en vanlig statisk side seksjon 1 osv.

    Jeg elsker absolutt denne koblingsprosessen i Macromedia Dreamweaver. Har tid til å høste OK og drikke kaffe.

    2. Hvordan gjøre en lenke i menyen inaktiv hvis den besøkende er på denne siden.

    Det vil være mer praktisk for den besøkende å navigere på nettstedet og vite hvilken side han er på.

    Hvis du har fulgt alle trinnene strengt tatt punkt for punkt, vil du se at alle lenkene i menyen alltid er aktive. Hvordan fikse det?

    Først, la oss huske definisjonen av hva det er Betingede uttalelser

    – dette er når en handling utføres eller ikke utføres avhengig av forholdene.

    La oss gjøre følgende:

    • Vi trenger variabler og en betinget operatør:

    if ($master == "Main")// denne tilstanden. Hvis det utføres, blir det satt inn vanlige HTML-tagger på dette stedet i menyen ved hjelp av ekko-kommandoen som viser påskriften "Hjem".

    ekko "

    hjem

    ";

    ellers// betyr "ellers" - hva vil skje hvis betingelsen ikke er oppfylt. I dette tilfellet, hvis betingelsen ikke er oppfylt, vil påskriften "Hjem" være en lenke som fører til hovedsiden.

    ekko "

    hjem

    ";

    • Vi kom opp med betingelsen, men så det sjekk variabeldu må spørre det.

    For å gjøre dette vil vi plassere følgende kodeblokker på alle sider:

    $master = "Hoved";

    $master = "Seksjon 1";

    $master = "Seksjon 2";

    $master = "Seksjon 3";

    Som du kan se, har hver side sin egen kode.

    Så våre praktiske trinn for å lage en PHP-meny vil være som følger:

    1) Åpne filen index.php

    og lim inn koden

    $master = "Hoved";

    til stedet der du setter inn koden som viser selve sidemenyen inkludere "menu.html";
    ?>

    2) Åpne filen menu.html og sett inn koden med betingelsen i stedet for en enkel html-lenke til hovedsiden.

    Vi ser i nettleseren og beundrer! Hvis vi går til hovedsiden, er lenken ikke lenger aktiv!

    3) Gjenta punkt 1 og 2 med sider 1.php, 2.php, 3.php

    Repetisjon 1:

    1) Åpne filen 1.php og sett inn før koden som viser en menyblokk med en gitt variabel

    $master = "Seksjon 1";

    2) Åpne menu.html-filen og sett inn koden med betingelsen i stedet for en enkel lenke Seksjon 1, gjør følgende endringer:

    if ($master == "Seksjon 1")// denne tilstanden. Hvis det utføres, blir det satt inn vanlige HTML-tagger på dette stedet i menyen ved hjelp av ekko-kommandoen som viser inskripsjonen "Seksjon 1".

    ekko "

    Seksjon 1

    ";

    ellers// betyr "ellers" - hva vil skje hvis betingelsen ikke er oppfylt. I dette tilfellet, hvis betingelsen ikke er oppfylt, vil påskriften "Seksjon 1" være en lenke som fører til hovedsiden.

    ekko "

    Seksjon 1

    ";

    Miraklet skjedde igjen! Nå hvis vi er på siden Seksjon 1, koblingen i menyen er ikke aktiv.

    Repetisjon er læringens mor! Eller for de i tanken! En gang til

    Repetisjon 2

    1) Åpne fil 2.php og lim inn koden.

    $master = "Seksjon 2";

    2) Åpne menu.html-filen igjen og lim inn koden med betingelsen

    if ($master == "Seksjon 2")// denne tilstanden. Hvis det utføres, blir det satt inn vanlige HTML-tagger på dette stedet i menyen ved hjelp av ekko-kommandoen som viser inskripsjonen "Seksjon 2".

    ekko "

    Seksjon 2

    ";

    ellers// betyr "ellers" - hva vil skje hvis betingelsen ikke er oppfylt. I dette tilfellet, hvis betingelsen ikke er oppfylt, vil påskriften "Seksjon 2" være en lenke som fører til hovedsiden.

    ekko "

    Seksjon 2

    ";

    Repetisjon 3

    1) Åpning fil 3.php og angi variabelen.

    $master = "Seksjon 3";

    2) I menu.html-filen setter vi inn koden med en betingelse i stedet for en lenke Seksjon 3, endringene er:

    if ($master == "Seksjon 3")// denne tilstanden. Hvis det utføres, blir det satt inn vanlige HTML-tagger på dette stedet i menyen ved hjelp av ekko-kommandoen som viser inskripsjonen "Seksjon 3".

    ekko "

    Seksjon 3

    ";

    ellers// betyr "ellers" - hva vil skje hvis betingelsen ikke er oppfylt. I dette tilfellet, hvis betingelsen ikke er oppfylt, vil inskripsjonen "Seksjon 3" være en lenke som fører til hovedsiden.

    ekko "

    Seksjon 3

    ";

    Bunnlinjen: i stedet for lenker i denne typen meny

    hjem


    Seksjon 1

    Seksjon 2


    Seksjon 3

    Denne leksjonen om php ble skrevet som svar på en rekke forespørsler fra besøkende på nettstedet og er en praktisk guide for å lære hvordan du lager en dynamisk meny for et nettsted i php.

    Den neste webmasterens jukseark vil fortelle deg hvordan du lager unike titler, beskrivelser og nøkkelord for hver side i PHP.

    Du kan laste ned arkivet med alle nettstedsmal og php-menyfiler. Anbefales for de som er nye innen programmering.

    Hvis du er klar til å studere PHP seriøst, er det vanskelig å finne et bedre videokurs fra Popov. Han har mye erfaring og en god stil.

    ]]> ]]>



  • 2024 | Datamaskiner for alle - Oppsett, installasjon, gjenoppretting