Uporaba PHP na straneh s pripono html. Obrazec v vaši postavitvi Kako brati html stran php

Poskušam ustvariti obrazec za prijavo. To je moja koda obrazca HTML

Osebno sem ga dobil za ZOP.

Točki 4 in 5

$geslo = mysql_real_escape_string(stripslashes(md5($_POST["geslo"])));

Prvič, vrstni red tega je napačen. Zgoščite $_POST["geslo"] in potem poskušam uporabiti črtaste poševnice - po njegove zgoščene vrednosti ne bodo imele poševnic. Vendar, če poskušate ljudem preprečiti uporabo poševnic (ali česar koli drugega) v geslih, jih boste morali odstraniti, preden zgostite niz.

Naslednji md5 se ne bi smel uporabljati kot algoritem zgoščevanja gesel, za katerega je bilo ugotovljeno, da je šibek in ga je mogoče uporabiti za ustvarjanje trkov nizov veliko pogosteje, kot je potrebno.

Ja ti mora shranite zgoščene vrednosti ali "prstne odtise" gesel, ne gesel samih, vendar je idealno, da ta gesla solite in zgoščate (z vsaj sha1), namesto da jih samo vržete v funkcijo md5().

In poiščite "nastavitev zgoščene vrednosti gesla" z iskalnikom po vaši izbiri.

Točka 6

SELECT id FROM $table WHERE uporabniško ime = "" . $uporabniško ime. "" in geslo = "". $geslo. "";

Dodal sem =, kar je manjkalo v prvotnem vprašanju, a to je to se ni ujemalo z uporabniškim imenom in geslom v vaši zahtevi...če je nekomu uspelo dobiti SQL injekcijo v vaše uporabniško ime, geslo ne bo nikoli preverjeno. Predstavite:

SELECT user.id FROM uporabnik WHERE user.username = "fred" ALI 1 = 1 -- IN user.password = "abc123"

Bolje je izbrati ID uporabnika prstnega odtisa in geslo iz baze podatkov in nato oceniti geslo v aplikaciji, namesto da zaupate preverjanju gesla na ravni baze podatkov. To tudi pomeni, da lahko uporabite poseben algoritem zgoščevanja in soli znotraj same aplikacije za preverjanje svojih gesel.

Točka 7

$_SESSION["uporabnik"] = $_POST["uporabniško ime"];

Ali gre samo za shranjevanje uporabniškega imena v seji? Tega nikakor ne bi smeli uporabljati kot "preverjevalca prijave", še posebej, če na vaši seji (očitno) ni ničesar, kar bi preprečilo ugrabitev.

ID seje je mogoče preprosto prevohati iz piškotka v realnem času in to je vse, kar bi bilo potrebno za »izposojo« uporabniškega imena nekoga drugega. Poskusite vsaj zmanjšati verjetnost ugrabitve seje tako, da povežete uporabnikov naslov IP, niz UserAgent ali kakšno drugo kombinacijo razmeroma statičnih podatkov, ki jih je mogoče primerjati z vsako stranjo ... čeprav ima skoraj vsak pristop slabosti (zlasti , kot sem že ugotovil, če imate obiskovalce, ki uporabljajo AOL), lahko pa omogočite možno 99-odstotno učinkovito sejo prstnega odtisa, da zmanjšate ugrabitev z zelo majhno možnostjo, da bo uporabniška seja pomotoma ponastavljena.

V idealnem primeru bi lahko ustvarili tudi žeton seje za ublažitev CSRF napadi ko mora uporabnik izvesti "privilegirano" akcijo nad bazo podatkov (posodobiti svoje podatke ali kaj drugega). Žeton je lahko povsem naključna in edinstvena koda, shranjena v bazi podatkov in/ali piškotek SSL, ko se uporabnik prijavi (pod pogojem, da uporabnik ne more izvajati nobenih dejanj, ki posodabljajo zbirko podatkov zunaj HTTPS, saj bo to preprosto preneslo podatke v čistem besedilu prek interneta – kar bi bilo slaba ideja).

Žeton je postavljen v skrito polje obrazca za kateri koli/vse obrazce in se preveri glede na vrednost, shranjeno v piškotku (ali seji ali zbirki podatkov), ko je obrazec predložen. To zagotavlja, da bo oseba, ki odda obrazec, imela vsaj sejo v živo na vašem spletnem mestu.

Težav je lahko več.

Prvič, v izjavi $match vam manjka operator enakosti gesel:

$match = "SELECT id FROM $table WHERE uporabniško ime = "".$uporabniško ime."" in geslo"".$geslo."";";

Moral bi biti:

$match = "SELECT id FROM $table WHERE uporabniško ime = "".$uporabniško ime."" in geslo = "".$geslo."";";

Drugič, vstavite geslo v bazo podatkov po njegova uporaba z uporabo md5?

Če ne, potem vaša zahteva poskuša ujemati md5 (geslo) z geslom.

Tudi pri izdelavi osebne spletne strani ne more vsak zagotoviti vsega možne načine njegovo nadaljnjo uporabo. Zelo pomembno je pripraviti teren za nadaljnji razvoj mesta. Če ste v preteklosti ustvarili spletno stran in vsem stranem privzeto dodelili končnico .html in se šele nato odločili za uporabo PHP, berite dalje.

Prej so se za uporabo SSI morala imena strani spletnih mest končati s pripono .shtml, danes pa je večina internetnih strežnikov konfiguriranih tako, da se SSI lahko uporablja na straneh s pripono .html, kar je precej priročno. PHP je povsem druga zgodba – končnica .php je privzeta končnica. Razvijalci spletnih strani vnaprej vedo, kaj bodo uporabili danem jeziku programiranja, se nosorogu dodeli pravilna razširitev.

Toda kaj storiti, ko se vse strani končajo s končnico .html?

Zamenjajte razširitev HTML s PHP

To lahko naredimo na več načinov. Najbolj očiten način je, da vsem stranem dodelite pripono .php ali spremenite obstoječe pripone (.html, .shtml itd.). Ta metoda ima slabosti. Na primer, že indeksirane strani s končnico .html bo treba ponovno indeksirati Iskalniki. Ali še huje – vse Zunanje povezave, ki izrecno povezujejo na določeno stran, bodo neveljavni. O teh spremembah boste morali obvestiti lastnike vsake strani in za vsako stran ustvariti drugo stran s 301 napako. Seveda je sprememba ene razširitve v drugo sprejemljiva, a kaj, če ima spletno mesto že veliko strani in veliko povezav do različnih strani z drugih spletnih mest?

Iz zavestnega razloga ta trenutek vse strani tega spletnega mesta se končajo s končnico html, zgoraj navedenih sprememb pa nisem želel narediti in si s tem povzročal nepotrebne težave.

Lahko narediš drugače. Če strežnik, ki gosti spletno mesto, podpira mod_rewrite (v večini primerov ga podpira) in obstaja dostop do datoteke .htaccess, potem lahko tej datoteki dodate naslednje vrstice:

RewriteEngine na RewriteRule ^(.*)\.html $1\.php

Če to kodo dodate v .htaccess, vam ni treba skrbeti. Vse zahtevane neobstoječe strani s pripono .html bodo samodejno zamenjane s pripono .php zahvaljujoč čudesom Apache. Vendar ta metoda ni edina. V isto datoteko .htaccess lahko zapišete naslednje:

Aplikacija AddHandler/x-httpd-php .php .html .htm

Po mojem mnenju najuspešnejši način. Zaradi tega so strani HTML enake stranem PHP, kar pomeni, da je zdaj mogoče vse funkcije PHP uporabljati na straneh z razširitvijo HTML. Če nimate dostopa do datoteke .htaccess, lahko napišete pismo gostiteljskemu podjetju in vljudno prosite skrbnike, da se registrirajo v Konfiguracije Apache(httpd.conf) zahtevana vrednost za spletno mesto.

Mimogrede, če je pred tem spletno mesto uporabljalo SSI na naslednji način:

potem je treba v novem stanju PHP to kodo nadomestiti z:

No, to je vse, mislim, da bo ena od zgornjih metod pomagala.

PHP je vdelan programski jezik na strani strežnika. Velik del sintakse je izposojen iz C, Jave in Perla. Dodali smo tudi nekaj edinstvenih lastnosti samo za PHP funkcije. Glavni namen tega jezika je ustvariti dinamično generirane strani PHP HTML.

PHP v HTML

Pri izdelavi kompleksnih spletnih strani se boste soočili s potrebo po kombinaciji PHP in HTML za izpolnitev določenih nalog. Na prvi pogled se morda zdi zapleteno, saj sta PHP in HTML dve neodvisni disciplini, vendar ni tako. PHP je zasnovan za interakcijo s HTML, njegovo kodo pa je mogoče vključiti v označevanje strani.

Koda PHP je vključena v strani HTML s posebnimi oznakami. Ko uporabnik odpre stran, strežnik obdela kodo PHP in nato pošlje rezultat obdelave (ne kode PHP koda) v brskalnik.

HTML in PHP je zelo enostavno kombinirati. Kateri koli del skripta PHP zunaj oznakprevajalnik PHP prezre in posreduje neposredno brskalniku. Če pogledate spodnji primer, lahko vidite, da bi lahko celoten skript PHP izgledal takole:

Pozdravljeni danes.

Zgornja koda je navaden HTML z malo PHP delček ki izhaja Trenutni datum z uporabo vgrajene funkcije datuma. V tem primeru bo prevajalnik PHP prezrl ves HTML in ga nespremenjen prenesel v brskalnik.

Integracija PHP v HTML je res zelo enostavna. Ne pozabite, da je skript stran HTML z vključeno nekaj kode PHP. Ustvarite lahko skript, ki bo vseboval samo HTML (brez oznak), in bo dobro delovalo.

Naprednejše metode:

  • Element menija

in rezultat:

PHP v HTML z uporabo short_open_tag

Če morate svojo kodo narediti čim krajšo, preden vstavite HTML v PHP, lahko uporabite short_tags. Posledično vam ne bo treba vstopitikratke_oznake" z " Izključeno" na " Vklopljeno". Čeprav ima večina strežnikov to možnost že omogočeno, je vedno najbolje, da to preverite ročno. Težava, ki lahko nastane pri uporabi kratkih oznak, je konflikt pri uporabi XML. V izrazu sintakse XML

PHP v HTML z uporabo short__tag

Pozdravljeni, danes je.

Upoštevajte, da če želite ustvariti spletno mesto, ki je združljivo s čim več platformami, se pri vstavljanju PHP v HTML ne smete zanašati na short_tags.

HTML v PHP z uporabo echo

Drug način za integracijo HTML v datoteko PHP je ukaz echo:.

To bo vplivalo na označevanje v večini urejevalnikov. Zato je treba izbrati vse dvojni narekovaji znotraj kode HTML s poševnico nazaj.

PHP v HTML – razširitve datotek

Za standardno konfiguriran spletni strežnik:

AddHandler cgi-script .html .htm

Za spletni strežnik, ki izvaja FastCGI:

AddHandler fcgid-script .html .htm

HTML v PHP

Kodo HTML lahko uporabite tudi v skriptih PHP. Vse kar morate storiti je, da pri odpiranju strani s PHP spremenite vrstni red strani, ki se odprejo oznake HTML in PHP.

Uporaba HTML v PHP:

Osebne INFO

Ime:
Priimek:
"; ?>

Če na ta način vstavite PHP v HTML, lahko uporabite veliko manj kode. Tukaj uporabljamo $PHP_SELF globalno, kar omogoča uporabo vrednosti polj, navedenih pod njimi, v isti datoteki. Običajno se za takšne obrazce ustvarita dve datoteki: prva je sam obrazec HTML, druga pa datoteka PHP, ki izvaja obdelavo.

Če že imate zapletene aplikacije PHP, ki uporabljajo veliko število datotek in jih želite poenostaviti, vam lahko ta metoda pomaga.

Ta publikacija je prevod članka “PHP v HTML”, ki ga je pripravila prijazna projektna ekipa

>

Php za začetnike

Na tej strani bomo poskušali razložiti logiko gradnje dinamične spletne strani. Php je skript, ki ga izvaja strežnik. Kaj to pomeni? Strežnik ima nameščen poseben tolmač, ki razume določene jezikovne konstrukte. Sama datoteka php jo bere vrstico za vrstico, kot da bi šla po njej od zgoraj navzdol. Če najde npr. besedo izhod, potem se ustavi in ​​ne bere ničesar naprej, ampak izvrši tisto, kar je našel pred to besedo, npr. tiskanje"Super!" Bo natisnjeno Super!

tiskanje"Super!";
izhod ;
?>

To je najpreprostejša datoteka php, v praksi pa se morate soočiti s kompleksno datoteko php. Strani na strani je veliko, trenutno jih imamo 24 tisoč, morali bi napisati prav toliko php datotek ali samo html datotek. Toda php vam omogoča, da vse to naredite v eni izvedljivi datoteki. To pomeni, da moramo organizirati povezave v sami datoteki, kot če je to - naredi to, če ono - naredi to. Php vam omogoča zelo dobro organiziranje povezav. Splošna shema je:

V scenariju vidite, da so predelki všeč
če, potem)
potem to storimo
}

Kaj se je potem zgodilo, če je bil izpolnjen prvi pogoj, tj $uslovie 1== "da", potem izvedemo skript v oklepajih ( ), ki se nanašajo na ta del skripta, potem je v tem razdelku izhod- tu se program konča. To pomeni, da lahko s pomočjo razdelkov razdelimo datoteko php na sestavne dele. In kakšen je pogoj - if($uslovie == "da")??? To omrežje je ista povezava, v tem primeru se bo nekaj izvedlo, če spremenljivka $uslovie bo enakovreden ja.

Poimenujmo datoteko vse.php. Če želite organizirati povezave do njega v ukazni vrstici, preprosto dodajte all.php?uslovie=yes. Če v ukazni vrstici vidite vprašaj, je to v tem primeru povezava, $uslovie == "da". Nato bomo ustvarili html datoteko, v katero bomo zapisali povezave do naše izvedljive skripte.



Nova stran


uslovie1=da" >Prva povezava
uslovie2=da" >Druga povezava

Vidite dve povezavi. Če kliknete na povezave, se bo datoteka zagnala vse.php in v prvem primeru bo skript povedal, da spremenljivka $uslovie 1==da, v drugem primeru pa $uslovie 2==da. Iz prve povezave prvi oddelek bo dokončan in program se bo ustavil, z uporabo druge povezave bo program potekal skozi prvi predel in nekaj iz drugega predelka bo izpolnjeno(glej zgoraj). Upoštevajte, da znak za dolar ni zapisan v povezavah, program jih naredi spremenljivke, ko jih posreduje skriptu, torej ko jih posreduje v ukazno vrstico.

Zdaj vemo, kako organizirati povezave do datoteke php, kako jo razdeliti na razdelke in kako organizirati povezave v besedilu html do naše datoteke. Ampak, obstaja še ena stvar ... Dejstvo je, da če spletno mesto organizirate na ta način, potem v izvirni obliki, ko ni veliko povezav, ne boste videli težav. Recimo, da je 10 predelkov, vsi se bodo tiho prilegali v eno datoteko. Če pa je povezav veliko, na primer imamo 24.000 strani, potem je načeloma nemogoče spraviti vse razdelke v eno datoteko php. Sami boste mučeni z iskanjem tega ali onega razdelka v eni datoteki, da bi ga na primer spremenili. Poleg tega bo datoteka zelo velika, naš all.php bi zavzel 1 MB. Poleg tega morate razumeti še eno stvar: na mnogih strežnikih obstaja omejitev velikosti izvedljivih datotek (na primer 50 Kb); če je presežena, se taka datoteka prezre in ne izvede. V povezavi s temi izračuni smo zmanjšali velikost glavne datoteke na 8 Kb, čeprav nosi 1 MB izvedbene obremenitve. Kako to narediti? Php nudi odlično priložnost za razdelitev datoteke php na dele z ukazom vključeno....

Zdaj postane jasno, kako smo našo glavno datoteko zmanjšali na 8 Kb, saj imajo vse ostale vključene datoteke skupno 1 MB, skrili pa smo jih v posebno mapo in jih povezali po potrebi, torej glede na povezave v ukazu linija. Ukaz include povezuje datoteke, kot da bi bile napisane v glavnem skriptu, zato, če boste v vstavljenih datotekah dostopali do podatkovnih baz ali datotek html, bo treba štetje izvesti natančno iz glavne datoteke, v našem primeru vse.php. Na primer, obstaja mapa html, vsebuje datoteko ena.htm kako ga natisniti. Potem je datoteka one.php videti takole:

vključujejo"html/one.htm";
tiskanje
izhod ;
?>

Vsebino smo natisnili ena.htm, plus natisnjen To je prvi del programa in ustavil program. To pomeni, da bi morali na podlagi teorije html vključiti datoteko ena.htm Torej: vključi "../html/one.htm", saj mapa html leži en nivo nad datoteko ena.php. Toda v php temu ni tako, ukaz include preprosto doda kodo v skript in ta postane njen sestavni del, kar pomeni, da se vse povezave štejejo glede na glavno datoteko in ne vključene.



Nova stran


uslovie1=yes" >Samo prva povezava
uslovie1=da& dejanje=da" >
uslovie2=yes" >Samo druga povezava
uslovie2=da& dejanje=yes" >Druga povezava, ampak tudi act=yes

Nato datoteko php ena.php spremenite v tole:

če($act == "da")(
vključujejo"html/one.htm";
izhod ;
}
tiskanje"To je prvi del programa";
izhod ;
?>

Če ste kliknili na povezavo uslovie1=yes" >Povezava Simply First bo natisnjena To je prvi del programa,če ste kliknili na povezavo uslovie1=da& dejanje=yes" >Prva povezava, pa tudi act=yes, potem bo natisnjena vsebina datoteke html/one.htm in program se bo ustavil.

403 KB

Prenesi arhiv, narejen je tako, da ti ni treba znati Php, ampak samo HTML.

Ja.))

Zame bi bilo lažje narediti kopijo index.php in jo preimenovati na primer v contact.php in nato spremeniti Middle v Middle2 z novo vsebino.

Kotliček sem malo php


Še vedno ne razumem.
Imam spletno stran.
indeksna datoteka v korenu. V drugi mapi so na primer datoteke zgoraj na sredini.

Obstaja meni. Želim, da se prikaže drugačna sredina, ko kliknete element menija.

Kako to narediti in kam to postaviti???

Odgovor: No, kjer koli. Je zelo preprosto, gre za izdelavo skripta menija menus.html


nekaj brez matrike $_GET ["uslovie"] ; tvoji primeri mi ne ustrezajo

Odgovor: podpora za globalne spremenljivke je na vašem strežniku onemogočena, če je tako, potem lahko postavite vrstico na začetek vseh vaših skriptov

če (isset($_GET )) ( za vsakogar($_GET kot $key =>$val) ($$key =$val;))

potem lahko uporabljate naše skripte brez uporabe $_GET [ "uslovie" ] , ampak preprosto vstavite $uslovie


Zelo zanimiv vir imate..
Hvala za informacije.

odgovor:


Dolgo ste obljubljali, da boste preučili, kako nastane PHP spletna stran. Zakaj niste držali obljube? Mogoče napišite članek na to temo (in če uporabljate tudi MySQL, bo vse v redu).

odgovor:


Zelo da. Samo, tukaj je, namesto preveč.htm verjetno potrebujete dva.htm
Ni nujno, ampak za vzdrževanje reda))

odgovor:


Povej mi, kje lahko preberem in se naučim na pamet vse operatorje in PHP kode, na primer: odmev , vključujejo , drugače , če , tiskanje , za vsakogar , isset itd., kaj pomenijo in čemu služijo?

Odgovor: Aleksander, en mesec sem bil na dopustu, poleg tega pa trenutno dokončam novo različico celotne strani. Takoj ko končam, bom naredil majhno stran o tem.


Mobilesfinks, ko sem se pripravljal na ponovno namestitev php 4, je bila že izdana nova verzija strani v php 5. In ni bilo nobenih težav, vse je delovalo %tashus%

odgovor:


Zdravo!

Prosim, povejte mi, kako spremeniti NASLOV na vrhu okna na vsaki strani: to je, " Nova stran" ...

Na primer, če sledite povezavi "1", se mora okno imenovati "Prvi razdelek. Matematika" - to pomeni, da mora biti koda HTML Prvi del. Matematika...
In če je povezava na primer "2", potem se mora okno imenovati "Drugi razdelek. Geografija" - to pomeni, da mora biti koda HTML Drugi del. Geografija...

Kako ga lahko spremenim s PHP?

Odgovor: html.html


Moramo namestiti PHP4 za Denver. Namestitveni skript bo sam naredil vse spremembe.
Nato v mapi, kjer imate datoteko all.php, ki jo ustvarite
datoteko z imenom ".htaccess" in ji dodajte vrstico
stran: 1
Trenutna stran: 1 Skupaj sporočil: 22

Mnogi bralci v kateri koli knjigi o računalnikih preletijo vse, kar jih ne zanima takoj, in preidejo na tisto, kar resnično potrebujejo. želim vedeti. Osebno to počnem. Vendar s tem ni nič narobe – redke so tehnične knjige, ki jih je treba prebrati od konca do konca. Ali pa ste morda to naredili - preskočili prvih osem poglavij in izbrali to poglavje, ker je imelo najbolj zanimiv naslov? In kdo želi izgubljati čas s podrobnostmi, medtem ko na delu gori še en projekt?

Na srečo vam takšna naglica ne bo preprečila, da bi ustrezno obvladali gradivo v drugem delu knjige, ki je posvečen uporabi PHP za izdelavo spletnih mest in interakcijo s spletom. V tem poglavju se boste naučili enostavno spreminjati vsebino spletnih strani in krmariti po spletu s povezavami in različnimi standardnimi funkcijami. Naslednje poglavje bo dopolnilo predstavljeno gradivo - podrobno obravnava načine interakcije z uporabnikom v oblikah HTML, 11. poglavje pa opisuje organizacijo vmesnika z bazami podatkov. Preostala poglavja drugega dela obravnavajo netrivialne vidike spletnega programiranja v PHP.

Vendar je treba zapomniti, da gradivo v 1. delu nujno potrebno za normalno znanje PHP-ja. Predvidevamo, da ste že prebrali 1. del, zato bodo primeri uporabljali veliko prej opisanih konceptov. Torej, če preletite del knjige, se boste morali občasno vrniti na prejšnja poglavja in nadoknaditi zamujeno.

Preproste povezave

<а href = "date.php">

$link = "datum.php";

natisni "<а href = \"$link\">Oglejte si današnji datum
\n"

Verjetno se sprašujete, zakaj je pred narekovaji (") v kodi povezave poševnica nazaj (\)? Dejstvo je, da so narekovaji v PHP posebni znaki in se uporabljajo kot ločila vrstic. Zato morajo biti narekovaji literali v nizih zaščiteni .

Če vas moti umik iz narekovajev, preprosto omogočite način magic_quotes_gpc v datoteki php.ini. Rezultat so vsi apostrofi, narekovaji, poševnice nazaj in ničelni znaki. se samodejno ubežijo v besedilu!

Razvijmo navedeni primer. Za hiter prikaz seznama povezav v brskalniku lahko uporabite niz:

// Ustvari niz odsekov

$contents - array("vadnice", "članki", "skripte", "kontakt");

// Ponovi in ​​zaporedno prikaže vsak element matrike

za ($i = 0; $i< sizeof($contents; $i++)

natisni " ".$vsebina[$i]."
\n";

// - posebna oznaka za označevalno točko endfor;

Komponente datoteke (predloge)

Prišli smo do ene mojih najljubših funkcij PHP. Predloga (v povezavi s spletnim programiranjem) je del spletnega dokumenta, ki ga boste uporabili na več straneh. Predloge, tako kot funkcije PHP, vas rešijo pred nepotrebnim kopiranjem/lepljenjem vsebine strani in programske kode. Z večanjem obsega strani se povečuje tudi pomen predlog, saj omogočajo enostavno in hitro spreminjanje na ravni celotne strani. V tem razdelku bodo opisane nekatere možnosti, ki se odprejo pri uporabi preprostih predlog.

Običajno so običajni deli vsebine/kode (tj. predloge) shranjeni v ločenih datotekah. Ko sestavljate spletni dokument, preprosto "vključite" te datoteke na ustrezna mesta na strani. V PHP sta za to na voljo dve funkciji: include() in require().

include() in require()

Eden najbolj izjemnih vidikov PHP je zmožnost izdelave predlog in programskih knjižnic ter njihovega vstavljanja v nove skripte. Uporaba knjižnic prihrani čas in trud pri uporabi skupnih funkcij na različnih spletnih mestih. Bralci z

izkušnje s programiranjem v drugih jezikih (kot so C, C++ ali Java) in so seznanjeni s konceptom funkcijskih knjižnic in njihovo uporabo v programih za razširitev funkcionalnosti.

Vključitev ene ali več datotek v skript se izvede s standardnima funkcijama PHP require() in include(). Kot bo prikazano v naslednjem razdelku, se vsaka od teh funkcij uporablja v določeni situaciji.

Funkcije

V PHP obstajajo štiri funkcije za vključitev datotek v skripte PHP:

  • vključi();
  • vključi_enkrat();
  • zahtevaj();
  • zahtevaj_enkrat().

Kljub podobnosti imen te funkcije rešujejo različne probleme.

Funkcija include() vključi vsebino datoteke v skript. Sintaksa funkcije include() je:

vključi (datoteka datoteka]

Funkcija include() ima eno zanimivo lastnost - lahko se izvede pogojno. Na primer, če je klic funkcije vključen v ukazni blok if. potem je datoteka vključena v program le, če je pogoj i f resničen. Če je funkcija includeO uporabljena v pogojnem ukazu, potem je mora biti v zavitih oklepajih ali nadomestnih ločilih. Primerjajte razlike v sintaksi med seznamoma 9.1 in 9.2.

Seznam 9.1. Nepravilna uporaba funkcije include()

če (nekaj_pogojno)

include("text91a.txt"); drugače

include("text91b.txt");

Seznam 9.2. Pravilna uporaba funkcije include()

če (nekaj_pogojno) :

include("text91a.txt");

include("text91b.txt");

Vsa koda PHP v vključeni datoteki Nujno leži v oznakah PHP. Ne predpostavljajte, da preprosto shranjevanje ukaza PHP v datoteko zagotovi pravilno obdelavo:

Namesto tega morate ukaz zaviti v ustrezne oznake, kot prikazuje naslednji primer:

natisni "to je neveljavna vključena datoteka";

Funkcija include_once() naredi isto kot include(), z eno izjemo: preden datoteko vključi v program, preveri, ali je že vključena. Če je datoteka že vključena, je klic include_once() prezrt, če ni, se izvede standardna vključitev datoteke. V vseh drugih pogledih se include_once() ne razlikuje od include(). Sintaksa funkcije include_once() je:

include_once(datoteka datoteka)

Na splošno je funkcija require() podobna include() – vključuje tudi predlogo v datoteko, v kateri se nahaja klic require(). Sintaksa funkcije require() je:

zahtevaj (datoteka datoteka)

Vendar obstaja ena pomembna razlika med funkcijama require() in include(). Datoteka, ki jo podaja require(), je vključena v skript ne glede na lokacijo require() v skriptu. Na primer, če pokličete requi re() v bloku if, če je pogoj napačen, bo datoteka še vedno vključena v skript!

V mnogih primerih je priročno ustvariti datoteko s spremenljivkami in drugimi informacijami, ki se uporabljajo na celotnem spletnem mestu, in jo nato po potrebi vključiti. Čeprav je ime te datoteke poljubno, jo običajno imenujem init.tpl (okrajšava za "initializaion.template"). Listing 9.3 prikazuje, kako izgleda zelo preprosta datoteka init.tpl. V seznamu 9.4 je vsebina init.tpl vključena v skript z require().

Seznam 9.3. Primer inicializacijske datoteke

$site_title = "PHP recepti";!}

$contact_email = " [e-pošta zaščitena]";

$contact_name = "WJ Gilmore";

Seznam 9.4. Uporaba datoteke init.tpl

<? print $site_title; ?>

\"mai1 to:$contact_email\">$contact_name."; ?>

Posredovanje URL-ja pri klicu require() je dovoljeno samo, če je omogočen način »URL fopen wrappers« (ta način je privzeto omogočen).

Ko se velikost mesta poveča, se lahko izkaže, da so nekatere datoteke večkrat vključene v skript. Včasih to ne povzroča težav, v nekaterih primerih pa ponovna vključitev datoteke povzroči ponastavitev vrednosti spremenjenih spremenljivk. Če vključena datoteka definira funkcije, lahko pride do sporov pri poimenovanju. S tem smo prišli do naslednje funkcije - require_once().

Funkcija require_once() zagotavlja, da je datoteka vključena v skript samo enkrat. Ko je requi re_once() enkrat poklican, so vsi nadaljnji poskusi vključitve iste datoteke prezrti. Sintaksa funkcije require_once() je:

Funkcije za vključevanje datotek boste verjetno začeli uporabljati pogosteje, ko bodo vaše spletne aplikacije začele naraščati. Te funkcije se pogosto pojavljajo v primerih v tej knjigi za zmanjšanje odvečnosti kode. Prvi primeri so obravnavani v naslednjem razdelku o načelih konstruiranja osnovnih predlog.

Gradbene komponente

Ko definiram strukturo tipične spletne strani, jo običajno razdelim na tri dele: glavo, telo in nogo. Praviloma ima večina pravilno organiziranih spletnih mest glavo, ki ostane skoraj nespremenjena; glavni del prikazuje zahtevano vsebino spletnega mesta, zato se ta pogosto spreminja; Končno noga vsebuje informacije o avtorskih pravicah in navigacijske povezave. Noga, tako kot glava, običajno ostane nespremenjena. Ne razumite me narobe – ne poskušam zatreti vaših ustvarjalnih želja. Videl sem veliko odličnih spletnih mest, ki ne sledijo tem načelom. Poskušam le oblikovati splošno strukturo, ki bi lahko služila kot izhodišče za nadaljnje delo.

Naslov

Datoteka glave (kot je tista v seznamu 9.5) se pojavi na skoraj vseh mojih spletnih mestih, ki podpirajo PHP. Ta datoteka vsebuje

informacije o celotnem spletnem mestu, kot so naslov, kontaktni podatki in nekatere komponente kode strani HTML.

Seznam 9.5. Primer datoteke glave

// Datoteka: header.tpl

// Namen: datoteka glave za spletno mesto PhpRecipes.

$site_name = "PHPRecipes";

$site_email= " [e-pošta zaščitena]";

$site_path = "http://localhost/phprecipes";

<? print $site_name; ?>

// Natisni trenutni datum in čas

natisni datum ("F d, h:i a");

Precej pogosto je dostop obiskovalcev do vključenih datotek omejen, zlasti če te datoteke vsebujejo občutljive podatke (na primer gesla). V aplikaciji Apache lahko preprečite ogled določenih datotek z urejanjem datotek http.conf ali htaccess. Naslednji primer prikazuje, kako preprečiti ogled vseh datotek s pripono .tpl:

Naročilo dovoli, zavrni

Dovoli od 127.0.0.1

Vprašanja varnosti PHP in spletnega mesta so podrobno obravnavana v 16. poglavju.

Tekaški naslov

Noga je običajno informacija, ki se nahaja na dnu strani spletnega mesta – kontaktni podatki, povezave in informacije o avtorskih pravicah. Te informacije lahko postavite v ločeno datoteko in vključite kot predlogo na enak način kot glavo. Recimo, da morate z nastopom novega leta spremeniti podatke o avtorskih pravicah in jih prenesti v obrazec »Copyright © 2000-2001«. Obstajata dve možnosti: Preživite božični večer z mrzličnim urejanjem na stotine statičnih strani. oz uporabite predlogo, kot je prikazana v seznamu 9.6. Ena preprosta sprememba in lahko se vrnete v počitniško rutino.

Seznam 9.6. Primer datoteke z nogo (footer.tpl)

stik |

vaša zasebnost

Upoštevajte uporabo globalne spremenljivke $site_email v datoteki noge. Vrednost te spremenljivke je za celotno stran in predvidevamo, da bosta datoteki header.tpl in footer.tpl vključeni v eno zadnjo stran. Opazite tudi prisotnost $site_path v povezavi Zasebnost. V svojih predlogah vedno vključim celotno pot do vseh povezav – če bi bil URL povezave samo privacy.php, bi bila datoteka z nogo trdo kodirana v določen imenik.

Glavni del

Glavni del strani vključuje vsebino glave in noge. V bistvu je glavni del, ki vsebuje informacije, ki zanimajo obiskovalce spletnega mesta. Glava je videti impresivno, noga vsebuje uporabne informacije, vendar se uporabniki znova in znova vračajo na spletno mesto zaradi glavnega dela strani. Čeprav ne morem dati nobenega nasveta o določeni strukturi strani, predloge, kot je ta v seznamu 9.7, močno poenostavijo upravljanje strani.

Seznam 9.7. Primer glavnega dela strani (index_body.tpl)

/tutorials.php">vadnice

članki

skripte

kontakt

Dobrodošli v PHPRecipes. izhodišče za skripte PHP, vadnice,

in informacije o gurmanski kuhinji!

Vse skupaj: glava, noga in telo

Morda moje razpoloženje najbolje povzame stavek polkovnika »Hannibala« Smitha (George Peppard) iz slavne televizijske serije »The A-Team«: »Všeč mi je, ko se stvari postavijo na svoje mesto.« Doživljam nekaj podobnega, ko se različne predloge združijo v celoten spletni dokument. Če združite tri razdelke dokumenta: header.tpl, index_body.tpl in footer.tpl, lahko hitro sestavite preprosto stran, kot je prikazana na seznamu 9.8.

Seznam 9.8. Izdelava strani index.php z vključitvijo več datotek

// Datoteka: index.php

// Cilj: domača stran PHPRecipes

// Natisni naslov

include("header.tpl");

// Izpis glavnega dela

include("index_body.tpl");

// Prikaži nogo

include("footer.tpl");

Torej, kako? Trije preprosti ukazi in imate končano stran. Besedilo končne strani je prikazano na seznamu 9.9.

Seznam 9.9. Stran HTML, zgrajena v seznamu 9.8 (index.php)

PHPRecipes

23. avgust, 15:17

vadnice

članki

skripte

stik

Dobrodošli v PHPRecipes, izhodišču za PHP skripte, vadnice,

ter gurmanske kuharske nasvete in recepte!

Copyright 2000 PHPRecipes. Vse pravice pridržane.

stik |

vaša zasebnost

Na sl. Slika 9.1 prikazuje, kako je končna stran videti v brskalniku. Čeprav običajno ne uporabljam robov tabele, sem jih tokrat izrisal, da bodo trije deli strani bolj jasno izstopali na ilustraciji.

riž. 9.1. Videz strani, zgrajene v listingu 9.8

Optimizacija predloge

Pri drugi (po mojem mnenju bolj zaželeni) možnosti so predloge zasnovane kot funkcije, ki se nahajajo v ločeni datoteki. To zagotavlja dodatno strukturo vašim predlogam. To datoteko imenujem inicializacijska datoteka in vanjo shranjujem druge koristne informacije. Ker smo si že ogledali relativno dolge primere glave in noge, sta bila seznama 9.10 in 9.11 nekoliko skrajšana za ponazoritev nove ideje.

Seznam 9.10. Optimizirana predloga spletnega mesta (site_init.tpl)

// Datoteka: site_init.tpl

// Namen: inicializacijska datoteka PhpRecipes

$site_name = "PHPRecipes";

$site_email = " [e-pošta zaščitena]";

$site_path = "http://localhost/phprecipes/";

funkcija show_header($site_name) (

<? print $site_name: ?>

To je glava

funkcija pokaži nogo()

To je noga

Seznam 9.11. Uporaba inicializacijske datoteke

// Vključi inicializacijsko datoteko

include("site_init.tpl");

// Natisni naslov

pokaži glavo ($site_name);

// Vsebina telesa To je nekaj informacij o telesu

// Prikaži nogo Show_footer();

Projekt: generator strani

Čeprav je večina spletnih mest, ki sem jih ustvaril, vsebino glavne strani ustvarila na podlagi informacij, prebranih iz baze podatkov, je vedno nekaj strani, ki ostanejo praktično nespremenjene. Predvsem lahko prikažejo informacije o razvojni ekipi, kontaktne podatke, oglaševanje itd. Te "statične" informacije običajno shranim v ločeno mapo in jih s skriptom PHP naložim, ko pride zahteva. Seveda imate vprašanje - če so to statične informacije, čemu služi PHP skript? Zakaj ne naložite običajnih strani HTML? Prednost PHP je, da lahko uporabite predloge in po potrebi vstavite statične delčke.

<а href = "/static.php?content=$content">Statično ime strani

Začnimo z ustvarjanjem statičnih strani. Zaradi poenostavitve se bom omejil na tri strani, ki vsebujejo informacije o spletnem mestu (izpis 9.12), oglaševanje (izpis 9.13) in kontaktne informacije (izpis 9.14).

Seznam 9.12. Informacije o spletnem mestu (about.html)

O PHPRecipes

Kateri programer ne zmeša celonočnega programiranja z gurmanskimi piškotki. Tukaj na PHPRecipes. skoraj ne mine noč, ne da bi kateri od naših koderjev zmešal malo HTML-ja z okusnim krožnikom gob Portobello ali celo fondu. Zato smo se odločili, da vam ponudimo najboljše od tega, kar imamo najraje: PHP in hrana!

Tako je, bralci. Vadnice, skripte, sufleji in še več. 0le na PHPRecipes.

Informacije o oglaševanju

Ne glede na to, ali pridejo, da bi se naučili najnovejših tehnik PHP ali da bi osvežili svoje znanje

speči piščanca, lahko stavite, da naši bralci sprejemajo odločitve. Oni so industrija

strokovnjaki, ki odločajo o tem, kaj bo njihovo podjetje kupilo.

Za informacije o oglaševanju kontaktirajte

">[e-pošta zaščitena].

Seznam 9.14. Kontaktni podatki (contact.html)

Kontaktiraj nas

Imate nasvet za kodiranje?

Poznate popoln preliv za kandiran jam?

Sporočite nam! Kontaktirajte ekipo na [e-pošta zaščitena].

Preidimo na izdelavo strani static.php, ki prikazuje zahtevane statične informacije. Ta datoteka (glejte seznam 9.15) vključuje komponente strani našega spletnega mesta in inicializacijsko datoteko site_init.tpl.

Seznam 9.15. Splošni izpis statičnih strani (static.php)

// Datoteka: static.php

// Namen: prikaz zahtevanih statičnih strani.

// OPOZORILO: to predvideva, da je datoteka "site_init.tpl" in to je to

// statične datoteke so v istem imeniku.

// Nalaganje funkcij in spremenljivk include("site_init.tpl"):

// Prikaži glavo show_header($site_name);

// Izpis zahtevane vsebine include("$content.html"):

// Prikaži nogo show footer();

Zdaj je vse pripravljeno za izdelavo glavnega scenarija. Samo vključite ga na stran

<а href = "static.php?content=about">Statično ime strani

Informacije o oglaševanju

Kontaktiraj nas

Če kliknete katero koli od teh povezav, bo vaš brskalnik naložil ustrezno statično stran, vdelano v static.php!

Rezultati

V tem poglavju ste se seznanili s primarno nalogo, za katero je bil ustvarjen PHP - dinamično gradnjo spletnih strani. Obravnavana so bila naslednja vprašanja:

  • obdelava URL-jev;
  • gradnja dinamičnih vsebin;
  • vključitev in izdelava osnovnih predlog.

Poglavje se konča z generatorjem strani, programom, ki naloži statične strani v predlogo in olajša podporo velikemu številu statičnih strani HTML.

Naslednje poglavje se osredotoča na uporabo PHP v kombinaciji z obrazci HTML za močno izboljšanje interaktivnosti vašega spletnega mesta. In potem - interakcija z bazami podatkov! Naučiti se moraš veliko zanimivih stvari.


Svet brezplačnih programov in koristnih nasvetov
2024 whatsappss.ru