Dinamičke stranice u PHP-u. Dinamičke stranice u PHP projektu: generator stranica

Napravite datoteku pod nazivom hello.php u korijenskom direktoriju web poslužitelja (DOCUMENT_ROOT) i u nju upišite sljedeće:

Primjer #1 Prva skripta u PHP-u: hello.php



Testiranje PHP-a


"

Pozdrav svijete!

" ; ?>

Otvorite ovu datoteku u svom pregledniku tako da upišete naziv svog web poslužitelja i /zdravo.php. Kada se razvija lokalno, ova veza bi mogla biti nešto poput http://localhost/hello.php ili http://127.0.0.1/hello.php, ali to ovisi o postavkama vašeg poslužitelja. Ako je sve ispravno konfigurirano, ovu će datoteku obraditi PHP i preglednik će ispisati sljedeći tekst:

PHP test

Pozdrav svijete

Ovaj program je izuzetno jednostavan, a za izradu tako jednostavne stranice ne morate čak ni koristiti PHP. Sve što ona radi je zaključivanje Pozdrav svijete koristeći PHP instrukcije jeka. Napominjemo da datoteka ne mora biti izvršna ili se nekako razlikuju od drugih datoteka. Poslužitelj zna da ovu datoteku treba obraditi PHP, budući da datoteka ima ekstenziju ".php", za koju postavke poslužitelja govore da takve datoteke treba prenijeti u PHP. Zamislite to kao običnu HTML datoteku koja je dovoljno sretna da ima hrpu posebnih oznaka (dostupnih i vama) koje mogu raditi hrpu cool stvari.

Ako ovaj primjer ne prikazuje ništa ili prikazuje prozor za preuzimanje, ili ako cijelu ovu datoteku vidite kao tekst, tada najvjerojatnije vaš web poslužitelj nema podršku za PHP ili je pogrešno konfiguriran. Zatražite od administratora poslužitelja da omogući ovu podršku. Ponudite mu upute za instalaciju: odjeljak Instalacija ove dokumentacije. Ako PHP skripte razvijate kod kuće (lokalno), također pročitajte ovo poglavlje kako biste bili sigurni da ste sve ispravno konfigurirali. Također provjerite tražite li datoteku od poslužitelja putem http protokola. Ako jednostavno otvorite datoteku iz svog datotečnog sustava, PHP je neće obraditi. Ako i dalje imate problema, nemojte se ustručavati zatražiti pomoć nekog od PHP tima za podršku.

Svrha primjera je pokazati format posebnih PHP oznaka. U ovom smo primjeru koristili kao početnu oznaku, nakon koje slijede PHP naredbe koje završavaju završnom oznakom ?> . Na ovaj način možete ulaziti i izlaziti iz PHP načina bilo gdje u HTML datoteci. Više o tome možete pročitati u odjeljku Osnovna sintaksa priručnika.

Komentar: Napomena o novim redovima

Prijelomi redaka ne znače mnogo u HTML-u, ali smatra se dobrom idejom da HTML bude čitljiv prelamanjem u novi redak. PHP automatski uklanja prijelome redaka odmah nakon završne oznake ?> . Ovo može biti iznimno korisno ako koristite puno blokova PHP koda ili uključite PHP datoteke koje ne bi trebale ispisivati ​​ništa. Istodobno, to može biti zbunjujuće. Nakon završne oznake možete staviti razmak ?> a zatim će razmak biti ispisan zajedno s novim retkom, ili možete posebno dodati novi red u zadnji poziv echo/print iz bloka PHP koda.

Komentar: Nekoliko riječi o uređivačima teksta

Postoje mnogi uređivači teksta i integrirana razvojna okruženja (IDE) u kojima možete stvarati i uređivati ​​PHP datoteke. Popis nekih uređivača nalazi se u odjeljku » Popis PHP uređivača . Ako želite preporučiti urednika, posjetite ovu stranicu i zatražite da vas se doda na popis. Korištenje uređivača s isticanjem sintakse može biti od velike pomoći u vašem radu.

Komentar: Nekoliko riječi o programima za obradu teksta

Programi za obradu teksta (StarOffice Writer, Microsoft Word, Abiword itd.) u većini slučajeva nisu prikladni za uređivanje PHP datoteka. Ako i dalje želite koristiti bilo što od ovoga za svoju testnu skriptu, svakako spremite datoteku kao jednostavan tekst(običan tekst), inače PHP neće moći pročitati i pokrenuti vašu skriptu.

Komentar: Nekoliko riječi o Windows Notepadu

Kada pišete PHP skripte pomoću ugrađenog Windows Notepada, morate spremati datoteke s nastavkom .php. (Bilježnica će automatski dodati ekstenziju .txt osim ako ne poduzmete sljedeće korake.) Kada budete upitani za naziv kada spremite datoteku, unesite naziv datoteke u dvostruke navodnike (na primjer, "hello.php"). Osim toga, možete kliknuti na padajući izbornik "Tekstualni dokumenti" u dijaloškom okviru za spremanje datoteke i odabrati "Sve datoteke" u njemu. Nakon toga možete unijeti naziv datoteke bez navodnika.

Sada kada ste uspješno izradili funkcionalnu PHP skriptu, vrijeme je da izradite najpoznatiju PHP skriptu! Pozovite funkciju phpinfo() i vidjet ćete mnogo korisnih informacija o vašem sustavu i postavkama, kao što su dostupne unaprijed definirane varijable, učitani PHP moduli i opcije konfiguracije. Odvojite malo vremena da pregledate ove važne informacije.

Primjer #2 Dohvaćanje informacija o sustavu iz PHP-a

Na Internetu postoji ogroman broj web stranica. Sva ova mjesta mogu se podijeliti u dvije vrste: statične i dinamičke. Danas ćemo govoriti o stvaranju dinamičkih stranica, ali prvo bih vam želio reći što je statična i dinamička stranica (stranica).

Statične stranice

Statičke stranice sastoje se od statičnih web stranica. To znači da bez obzira što korisnik radi, stranica uvijek izgleda isto. Takve se stranice pohranjuju na poslužitelju kao HTML dokumenti. Statičke stranice se upisuju ručno. Ako trebate promijeniti sadržaj stranice, morate urediti HTML kôd za svaku stranicu.

Prednosti:

  • Jednostavnost i niska cijena izrade, niski zahtjevi za hardverskim resursima;

Mane:

  • Velika količina vremena potrošena na uređivanje sadržaja;
  • Neprikladno za korištenje u velikim projektima.

Dinamičke stranice

Dinamička web-mjesta sastoje se od dinamičkih web-stranica koje mogu reagirati na radnje i promjene korisnika. Takve stranice oblikuje web poslužitelj iz nekoliko datoteka (predložaka). Sve informacije pohranjuju se u bazu podataka. Kada korisnik zatraži stranicu, relevantne informacije se dohvaćaju iz baze podataka, umeću u predložak kako bi se formirala web stranica, a web poslužitelj šalje korisnikovom pregledniku. Dakle, kada ažurirate sadržaj stranice, jednostavno trebate dodati tekst za novu stranicu, koji se zatim posebnim mehanizmom ubacuje u bazu podataka.

Prednosti:

  • Upravljanje sadržajem vrši se putem posebnih obrazaca na kojima možete jednostavno dodavati, uređivati ​​i brisati informacije;
  • Maksimalna učinkovitost pri dodavanju novog sadržaja na stranicu;
  • Prilikom dodavanja ili uređivanja sadržaja nisu potrebna posebna znanja iz područja web masteringa (HTML, CSS);
  • Sposobnost izrade velikih multifunkcionalnih projekata;
  • Velike mogućnosti za napredovanje.

Mane:

  • Visoki troškovi stvaranja i održavanja;
  • Za održavanje funkcionalnosti stranice morate imati odgovarajuće znanje.

Mislim da sada razumijete da je najbolje izraditi web stranicu pomoću dinamičkih stranica jer... to je najbolji i prikladan izbor. Pa, sada razgovarajmo o stvaranju dinamičkih stranica.

Jednostavne veze

Prije nego što naučite PHP jezik, mislim da biste već trebali znati HTML i, naravno, stvaranje hiperveza. Htio bih vas podsjetiti:

$link = "example.php"; ispis"<а href = \"$link\">Primjer dinamičke hiperveze.
\n"

Ovako je jednostavno stvoriti dinamičku hipervezu koristeći PHP jezik.

Dinamički proces izrade stranice

Proces izrade dinamičke stranice sastoji se od nekoliko faza:

Postavljanje okvira stranice. Nazovimo stranicu index.php - sastojat će se od dijelova: zaglavlje, podnožje, lijevi izbornik. U ovom primjeru ću pokazati kako je stranica postavljena na temelju tablica, ali možete koristiti i blok raspored.

1. Napravite datoteku zaglavlje.php.

Dinamička stranica u PHP-u.

Zaglavlje stranice


2. Napravite datoteku lijevi izbornik.php.

  • Link 1
  • Veza 2
  • Veza 3
  • Link 4
  • Veza 5

3. Izradite datoteku podnožje.php.

Podnožje stranice


Napravite mapu pod nazivom šablona, u koji kopirati primljene datoteke. Ako trebate urediti zaglavlje, lijevi izbornik ili podnožje stranice, znat ćete da se predlošci za ove dijelove stranice nalaze u ovoj mapi.

Povežimo primljene datoteke (predloške) sa web mjestom pomoću naredbe include koristeći stranicu index.php kao primjer.

Zdravo!

Ovo je prva dinamička stranica u PHP-u.

Ovako je stranica index.php dinamička stranica, formirana je od nekoliko datoteka (predložaka). Možete napraviti bilo koji broj takvih šablona. Ako trebate promijeniti bilo koji dio stranice, samo pronađite traženu datoteku predloška i uredite je.

Time je izrada dinamičkih stranica dovršena. Mislim da razumijete značenje i praktičnost dinamičkih stranica i da ćete na temelju mog primjera moći napraviti veliki projekt. I ne zaboravite komentirati svoj kod - ovo je vrlo važno, prijatelji! Sretno ti!

p.s. Manje izmjene od 06.07.2019.:

Budući da se programiranje uvijek razvija, stoga se mora razvijati brzinom svjetlosti. Gore prikazani tablični izgled rijetko se koristi u praksi danas i potreban je samo za učenje programera početnika.

Ako želite izraditi nove i učinkovite web stranice, preporučujemo korištenje blok rasporeda umjesto tabličnog izgleda. Pogledajmo pobliže.

Tablice su izmišljene posebno za prikaz tabličnih podataka, a ne za označavanje elemenata stranice. Što je u tablici:

tekst

može se prikazati u obliku blok (div) izgleda:

tekst

zauzima mnogo manje prostora na disku.

Razmotrimo prednosti blokovskog izgleda u usporedbi s tabličnim izgledom:

  1. Značajno smanjenje veličine stranice, obično 2-3 puta, što značajno smanjuje vrijeme učitavanja web stranice. U isto vrijeme, veličina -file će se malo povećati, ali zbog činjenice da se jednom sprema u predmemoriju od strane preglednika korisnika i kada pristupa drugim stranicama se čita s njegovog računala, kao rezultat toga stranica se učitava puno brže od tablični.
  2. Mnogo je praktičnije promijeniti dizajn stranica web stranice, staviti u CSS datoteku. U ovom slučaju praktički nema potrebe za uređivanjem koda.
  3. Zahvaljujući mogućnostima blok izgleda, možete osigurati da glavni sadržaj stranice bude prvi u kodu, a tek onda zaglavlje, lijevi i/ili desni stupci. Međutim, izgled stranice neće se nimalo promijeniti.
  4. Transparentnost koda blok stranice je vizualno ugodna - nema gomile oznaka, sve je vrlo lijepo i kompaktno.

Da biste stvorili obećavajuću, proširivu i učinkovitu web stranicu bilo koje složenosti, trebali biste početi s nečim jednostavnim. Ovaj proces nije jednostavan, zahtijeva određena osnovna znanja o PHP-u i MySQL-u, ali ako ga razmotrite točku po točku, možete napraviti svojevrsni “plan rada” koji će vam biti od koristi pri izradi novih stranica. Pripremimo “jezgru” i bazu za projekt. U početku će to biti obična web stranica s posjetnicama, no onda se, dodavanjem funkcionalnosti, može pretvoriti u bilo što. Pa počnimo.

1. Priprema baze podataka. Napravite prvu tablicu u MySQL bazi podataka

Stvorite novu bazu podataka, na primjer "mysite". Osobno sam navikao raditi s UTF-8 kodiranjem, pa ću odmah rezervirati: provjerite jesu li sve tekstualne datoteke na web mjestu, sama baza podataka, tablice i polja tablice u istom kodiranju.
U novoj bazi podataka kreiramo tablicu. Nazovimo to "stranicama". Ova tablica će pohraniti statične stranice buduće stranice i podatke o njima. Tablica mora sadržavati sljedeća polja:

  • page_id - identifikator stranice (SMALLINT, primarni ključ, auto_increment);
  • page_alias - alias stranice za redak CNC adrese (VARCHAR, 255);
  • page_title - naslov stranice u prozoru preglednika (VARCHAR, 255);
  • page_meta_d - meta opis stranice za oznaku meta description (VARCHAR, 255);
  • page_meta_k - meta ključne riječi za oznaku meta keywords (VARCHAR, 255);
  • page_h1 - naslov stranice (VARCHAR, 255);
  • page_s_desc - kratak opis materijala, na primjer, ako će materijali stranice biti u obliku bloga (TEKST);
  • page_content - glavni tekst stranice, koji će biti prikazan u središnjem stupcu stranice (TEKST);
  • page_publish - sadrži "Y" - ako je stranica objavljena ili "N" - ako je skrivena (CHAR, zadano "Y").

Odmah nakon izrade tablice, u nju umetnemo vrijednosti za glavnu stranicu web mjesta. Predlažem umetanje vrijednosti "home" u polje "page_alias" za glavnu stranicu. Meta oznake odgovaraju temi cijele stranice. Na isti način možete kreirati druge stranice, na primjer, "O tvrtki" s pseudonimom "o" i vlastitim meta oznakama ili "Kontakti" s pseudonimom "kontakti", itd.

2. Napravite konfiguracijsku datoteku stranice

U korijenskoj mapi stranice, koja bi u ovoj fazi trebala biti prazna, kreiramo “cfg” mapu iu njoj pomoću .htaccess zatvaramo pristup direktivom “deny from all”. Napravite datoteku core.php sa sljedećim sadržajem:

// MYSQL
klasa MyDB
{
var $dblogin = "root"; // VAŠA PRIJAVA U BAZU PODATAKA
var $dbpass = ""; // VAŠA LOZINKA ZA BAZU PODATAKA
var $db = "mysite"; // NAZIV BAZE PODATAKA ZA STRANICU
var $dbhost="localhost";

Var $link;
var $upit;
var $err;
var $rezultat;
var $podataka;
var $fetch;

Funkcija connect() (
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query("POSTAVI IMENA utf8");
}

Funkcija close() (
mysql_close($this->link);
}

Funkcija run($query) (
$ovo->upit = $upit;
$this->result = mysql_query($this->query, $this->link);
$this->err = mysql_error();
}
funkcija red() (
$this->data = mysql_fetch_assoc($this->result);
}
funkcija fetch() (
dok ($this->data = mysql_fetch_assoc($this->result)) (
$this->fetch = $this->data;
return $this->fetch;
}
}
funkcija stop() (
poništi($ovo->podaci);
poništi($ovo->rezultat);
poništi($ovo->dohvati);
poništi($ovo->pogreška);
poništi($ovo->upit);
}
}

Ova datoteka trenutačno sadrži samo jednostavnu klasu veze s bazom podataka, ali u budućnosti joj možete dodati razne korisne funkcije koje će biti dostupne s bilo kojeg mjesta u kodu stranice. Ne zaboravite promijeniti prijavu i lozinku za svoju bazu podataka.

Ako radite u Windows okruženju, mogu preporučiti korištenje . Ovaj uređivač ima numeriranje redaka i lako pretvara tekst iz jednog kodiranja u drugo. PAŽNJA! Ako radite u UTF-8 kodiranju, pretvorite datoteke u UTF-8 bez BOM-a - to će pomoći u izbjegavanju problema u budućnosti.

3. Napravite index.php - glavni kontroler stranice

Konfiguracijska datoteka je stvorena. Sada u korijenskoj mapi web mjesta stvaramo index.php - to će biti glavna skripta web mjesta, neka vrsta "glavnog kontrolera". Sadržaj datoteke index.php:

definiraj("INDEX", ""); // POSTAVLJANJE KONSTANTE GLAVNOG REGULATORA

Require_once($_SERVER."/cfg/core.php"); // POVEZIVANJE JEZGRE

// POVEZIVANJE NA DB
$db = nova MyDB();
$db->poveži();

// GLAVNI KONTROLER
prebaciti ($_GET) (
slučaj "stranica":
uključi($_SERVER."/com/stranica.php");
pauza;
zadano:
uključi($_SERVER."/com/home.php");
pauza;
}

Uključi($_SERVER."/template.php");
$db->zatvori();

Varijabla $_GET reći će glavnom kontroleru koju komponentu stranice treba učitati kada se to zatraži. Trenutno naša stranica ima samo dvije komponente: “stranica” i “glavna stranica” (u principu, možete se snaći s jednom komponentom za prikaz obične stranice, ali često se izgled glavne stranice stranice razlikuje od regularnih stranica sa stavkama izbornika) . Logika glavnog kontrolera je sljedeća: naziv tražene komponente izdvaja se iz niza URL-a (vrijednost varijable $option), a ovisno o njenoj vrijednosti uključuje se datoteka same komponente (koja se nalazi u /com mapa). Komponentna datoteka obavlja sav potreban posao, izvlači podatke iz baze podataka i zapisuje ih u varijable za prijenos u predložak dizajna. Na samom kraju povezuje se datoteka dizajna stranice u koju se prenose sve varijable i podaci ekstrahirani u komponentama. Ovo zvuči puno kompliciranije nego što funkcionira.

4. Napravite regularnu komponentu ispisa stranice

U korijenu web-mjesta stvorite mapu "com" - komponente komponenti bit će pohranjene u njoj. Komponenta stranice, prema mom razumijevanju, je datoteka u kojoj se obrađuju podaci za različite dijelove stranice. Na primjer, obična komponenta stranice dohvaća naslov, opis i tekst materijala iz baze podataka i zapisuje ih u varijable $title, $meta_d, $meta_k, $content itd. Ti se podaci zatim prenose u predložak dizajna ( možete izraditi vlastiti predložak dizajna za svaku komponentu) i prikazuju se korisniku kao HTML stranica. Primjerice, kataloška komponenta koja bi se mogla izraditi u budućnosti radila bi gotovo istu stvar, ali s podacima o proizvodima - i ima svoje specifičnosti, druga polja u tablici itd. Stoga je za svaki funkcionalni dio web mjesta vrijedno stvoriti zasebnu komponentu. U shemi MVC (Model-View-Controller), komponenta djeluje kao model.

Napravite datoteku “page.php” u mapi “com”. Sadržaj datoteke je sljedeći:

/* KOMPONENTA STRANICE */
$alias = $_GET;
$query = "SELECT * FROM pages WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->pokreni($upit);
$db->row();
// KOMPONENTNE VARIJABLE
$id = $db->podaci;
$alias = $db->podaci;
$naslov = $db->podaci;
$h1 = $db->podaci;
$meta_d = $db->podaci;
$meta_k = $db->podaci;
$s_desc = $db->podaci;
$component = $db->podaci;
//AKO STRANICA NE POSTOJI
ako (!$id) (
zaglavlje ("HTTP/1.1 404 nije pronađen");
$component = "GREŠKA 404! Ova stranica ne postoji";
}
$db->stop();

5. Napravite komponentu prikaza glavne stranice

Glavna stranica u našoj bazi podataka pohranjena je pod pseudonimom "dom" i do sada se njezina struktura ne razlikuje od običnih stranica stranice - to je samo članak. Ipak, napravit ćemo zasebnu komponentu za to - za budućnost, da tako kažem.


Sadržaj komponente "home.php" u mapi "com" gotovo je identičan sadržaju obične komponente stranice, s izuzetkom niza upita baze podataka i naziva komponente. Niz upita sada izgleda ovako:

$query = "SELECT * FROM wx_pages WHERE page_alias="home" LIMIT 1";

6. Napravite predložak dizajna za cijelu stranicu

U korijenu stranice kreiramo datoteku template.php. U biti, radi se o uobičajenom web dizajnu u HTML+CSS formatu, samo s PHP varijablama na pravim mjestima. Umetni između oznaka naslova, u središnjem stupcu stranice nalazi se umetaki tako kroz predložak postavljamo potrebne varijable koje su deklarirane u komponentama.

Korijenska mapa također treba imati mape "css" i "images" za elemente dizajna. U datoteci /css/style.css - možete prilagoditi stilove prema vlastitom nahođenju.

7. Očistite poveznice i .htaccess datoteku

Za stvaranje čistih veza koristim mod_rewrite s izravnim uputama za pravila za svaku komponentu zasebno, jer smatram da je analiziranje adresne trake pomoću samog kontrolera nepotrebna funkcija. Sadržaj .htaccess u ovoj fazi je:


RewriteEngine uključen
RewriteBase /

RewriteCond %(REQUEST_FILENAME) !-d
RewriteCond %(REQUEST_FILENAME) !-f

# ZABRANJENE DATOTEKE
RewriteRule .htaccess - [F]
RewriteRule template.php - [F]

# PRAVILA mod_rewrite
RewriteRule page/(+)([\/](0,1))\.htm$ index.php?option=page&alias=$1 [L]

U budućnosti ćemo dodati pravila za komponente pretraživanja, katalog, blog članaka itd. Postoji samo jedna stvar: pretvorite veze poput “mysite.com/index.php?option=pages&alias=about” u vezu poput “mysite.com/pages/about.htm” - izgleda prilično lijepo. Pokušajte izbjeći niz $_GET u razvoju iz sigurnosnih razloga i nemojte se oslanjati na njega. Preporučljivo je u njega pohraniti samo parametre za glavni kontroler (varijabla $option) i za komponentu (varijabla $alias).

Također, u svakoj mapi web-mjesta, "za svaki slučaj", stvorite praznu datoteku index.html - to je neophodno tako da se prilikom pristupa imeniku putem adresne trake ništa ne prikazuje.

Oznake: php, mysql, motor stranice, kontroler, izrada stranice, mvc

Zadnja izmjena: 1.11.2015

Sada ćemo izraditi malu web stranicu koja je dizajnirana da pruži početno razumijevanje rada s PHP-om.

Za izradu programa u PHP-u potreban nam je uređivač teksta. Najpopularniji program danas je Notepad++.

Prijeđimo na prethodno kreirani direktorij C:\localhost, koji će pohraniti sve dokumente stranice. Kreirajmo tekstualnu datoteku i dajmo joj naziv index.html. Otvorimo ga u uređivaču teksta i dodamo mu sljedeći kod:

Prva web stranica u PHP-u

Unesite svoje podatke:

Unesite svoje ime:

Unesite prezime:

Html kod sadrži obrazac s dva tekstualna polja. Kada se klikne na gumb, podaci ovog obrasca šalju se skripti display.php, kao što je navedeno u atributu akcije.

Kreirajmo sada ovu skriptu koja će obraditi podatke. Dodaj u mapu C:\localhost nova tekstualna datoteka. Preimenujmo ga u display.php. Prema zadanim postavkama, php programske datoteke imaju nastavak .php. Dakle, dodajmo sljedeći kod u datoteku display.php:

Prva web stranica u PHP-u ".$ime. " ". $prezime. ""; ?>

Ovdje, u html označavanju, postoje uključenja PHP koda. Oznake se koriste za dodavanje PHP izraza na stranicu, između kojih se nalaze upute u PHP-u. U php kodu primamo podatke obrasca i prikazujemo ih na stranici.

Svaki pojedinačni PHP izraz mora završavati točkom i zarezom. U ovom slučaju imamo tri izraza. Dva od njih primaju poslane podatke obrasca, na primjer $name = $_POST["ime"]; .

$name je varijabla koja će pohraniti neku vrijednost. Svim varijablama u PHP-u prethodi znak $. Budući da obrazac na stranici index.html koristi POST metodu za slanje, pomoću izraza $_POST["firstname"] možemo dobiti vrijednost koja je unesena u tekstualno polje s atributom name="firstname". I ova vrijednost ide u varijablu $name.

Pomoću operatora echo možete na stranici prikazati bilo koju vrijednost ili tekst koji dolazi nakon operatora. U ovom slučaju (eho "Vaše ime: ".$ime. " ". $prezime. "") pomoću znaka točke, tekst u navodnicima povezuje se s vrijednostima varijabli $name i $prezime i prikazuje se na stranici.

Sada idemo na obrazac za unos tako što ćemo otići na adresu http://localhost:8080:

Unesite neke podatke i kliknite na gumb Pošalji:

Dakle, naš scenarij je uspio prikaz.php, koji je primio i prikazao poslane podatke na stranici.

Mnogi čitatelji u bilo kojoj knjizi o računalima prelete preko svega što nije od neposrednog interesa i prijeđu na ono što im stvarno treba. željeti znati. Osobno, to je ono što radim. No, u tome nema ništa loše – rijetko postoje tehničke knjige koje treba pročitati od korica do korica. Ili ste možda to učinili - preskočili početnih osam poglavlja i uzeli ovo poglavlje jer je imalo najzanimljiviji naslov? A tko želi gubiti vrijeme na detalje kada još jedan projekt gori na poslu?

Srećom, takva vas žurba neće spriječiti da ispravno savladate materijal u drugom dijelu knjige, koji je posvećen korištenju PHP-a za izradu stranica i interakciju s webom. U ovom poglavlju naučit ćete kako jednostavno mijenjati sadržaj web stranica i kretati se webom pomoću poveznica i raznih standardnih funkcija. Sljedeće poglavlje će nadopuniti prezentirani materijal - detaljno ispituje načine interakcije s korisnikom u HTML obrascima. Poglavlje 11 opisuje organizaciju sučelja s bazama podataka. Preostala poglavlja drugog dijela raspravljaju o netrivijalnim aspektima web programiranja u PHP-u.

Međutim, treba imati na umu da materijal u 1. dijelu apsolutno potrebno za normalno poznavanje PHP-a. Pretpostavlja se da ste već pročitali 1. dio, tako da će primjeri koristiti mnoge od prethodno opisanih koncepata. Dakle, ako preletite dijelom knjige, morat ćete se s vremena na vrijeme vratiti na prethodna poglavlja i nadoknaditi propušteno.

Jednostavne veze

<а href = "date.php">

$link = "datum.php";

ispis"<а href = \"$link\">Pogledajte današnji datum
\n"

Vjerojatno se pitate zašto postoji obrnuta kosa crta (\) prije navodnika (") u kodu veze? Činjenica je da su navodnici u PHP-u posebni znakovi i koriste se kao graničnici redaka. Stoga navodnici literali u nizovima moraju biti zaštićeni .

Ako vas smeta izbjegavanje navodnika, jednostavno omogućite način rada magic_quotes_gpc u svojoj datoteci php.ini. Rezultat su svi apostrofi, navodnici, obrnute kose crte i nulti znakovi. u tekstu su automatski escaped!

Razvijmo navedeni primjer. Za brzi prikaz popisa veza u pregledniku, možete koristiti niz:

// Kreirajte niz odjeljaka

$contents - array("tutorijali", "članci", "skripte", "kontakt");

// Iteracija i uzastopni prikaz svakog elementa niza

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

ispis" ".$sadržaj[$i]."
\n";

// - posebna oznaka za točku markera endfor;

Komponente datoteke (predlošci)

Došli smo do jedne od mojih omiljenih PHP značajki. Predložak (u odnosu na web programiranje) je dio web dokumenta koji ćete koristiti na nekoliko stranica. Predlošci, poput PHP funkcija, spašavaju vas od nepotrebnog kopiranja/lijepljenja sadržaja stranice i programskog koda. Kako se skala stranice povećava, važnost predložaka raste, budući da vam omogućuju jednostavno i brzo unošenje izmjena na razini cijele stranice. Ovaj odjeljak će opisati neke od mogućnosti koje se otvaraju korištenjem jednostavnih predložaka.

Obično se uobičajeni dijelovi sadržaja/koda (tj. predlošci) spremaju u zasebne datoteke. Kada izrađujete web dokument, te datoteke jednostavno "uključujete" na odgovarajuća mjesta na stranici. U PHP-u za to postoje dvije funkcije: include() i require().

uključi() i zahtijevaj()

Jedan od najistaknutijih aspekata PHP-a je mogućnost izrade predložaka i programskih biblioteka te njihovog umetanja u nove skripte. Korištenje knjižnica štedi vrijeme i trud u korištenju zajedničkih funkcija na različitim web stranicama. Čitatelji sa

Iskusite programiranje na drugim jezicima (kao što su C, C++ ili Java) i upoznati ste s konceptom knjižnica funkcija i njihovom upotrebom u programima za proširenje funkcionalnosti.

Uključivanje jedne ili više datoteka u skriptu vrši se pomoću standardnih PHP funkcija require() i include(). Kao što će biti prikazano u sljedećem odjeljku, svaka od ovih funkcija primjenjuje se u specifičnoj situaciji.

Funkcije

U PHP-u postoje četiri funkcije za uključivanje datoteka u PHP skripte:

  • uključi();
  • uključi_jednom();
  • zahtijevati();
  • zahtijevaj_jednom().

Unatoč sličnosti naziva, ove funkcije rješavaju različite probleme.

Funkcija include() uključuje sadržaj datoteke u skriptu. Sintaksa funkcije include() je:

uključi (datoteka datoteka]

Funkcija include() ima jednu zanimljivu značajku - može se izvršiti uvjetno. Na primjer, ako je poziv funkcije uključen u blok naredbe if. tada je datoteka uključena u program samo ako je uvjet i f istinit. Ako se funkcija includeO koristi u uvjetnoj naredbi, tada je mora biti u vitičastim zagradama ili alternativnim graničnicima. Usporedite razlike u sintaksi između Ispisa 9.1 i 9.2.

Listing 9.1. Neispravna upotreba uključi()

ako (neki_uvjetni)

uključi("tekst91a.txt"); drugo

uključi("tekst91b.txt");

Listing 9.2. Ispravna upotreba funkcije include()

ako (neki_uvjetni) :

uključi("tekst91a.txt");

uključi("tekst91b.txt");

Sav PHP kod u uključenoj datoteci Obavezno leži u PHP oznakama. Nemojte pretpostavljati da će jednostavno spremanje PHP naredbe u datoteku osigurati da se ispravno obradi:

Umjesto toga, trebate zamotati naredbu u odgovarajuće oznake, kao što pokazuje sljedeći primjer:

print "ovo je nevažeća uključena datoteka";

Funkcija include_once() radi isto što i include(), s jednom iznimkom: prije uključivanja datoteke u program, provjerava je li već uključena. Ako je datoteka već uključena, poziv include_once() se zanemaruje, a ako nije, događa se standardno uključivanje datoteke. U svim drugim aspektima, include_once() se ne razlikuje od include(). Sintaksa funkcije include_once() je:

uključi_jednom (datoteka datoteke)

Općenito, funkcija require() slična je include() - također uključuje predložak u datoteci u kojoj se nalazi poziv require(). Sintaksa funkcije require() je:

zahtijevati (file file)

Međutim, postoji jedna važna razlika između funkcija require() i include(). Datoteka koju specificira require() uključena je u skriptu bez obzira na lokaciju require() u skripti. Na primjer, ako pozovete requi re() u if bloku, ako je uvjet lažan, datoteka će i dalje biti uključena u skriptu!

U mnogim je situacijama zgodno stvoriti datoteku s varijablama i drugim informacijama koje se koriste na cijelom mjestu, a zatim je uključiti prema potrebi. Iako je naziv ove datoteke proizvoljan, obično je zovem init.tpl (skraćeno od "initializaion.template"). Ispis 9.3 pokazuje kako izgleda vrlo jednostavna init.tpl datoteka. U ispisu 9.4, sadržaj init.tpl je uključen u skriptu s require().

Listing 9.3. Primjer inicijalizacijske datoteke

$site_title = "PHP recepti";!}

$contact_email = " [e-mail zaštićen]";

$contact_name = "WJ Gilmore";

Listing 9.4. Korištenje datoteke init.tpl

<? print $site_title; ?>

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

Prosljeđivanje URL-a pri pozivanju require() dopušteno je samo ako je omogućen način rada "URL fopen wrappers" (ovaj način je omogućen prema zadanim postavkama).

Kako se veličina stranice povećava, može se ispostaviti da su neke datoteke nekoliko puta uključene u skriptu. Ponekad to ne uzrokuje problem, ali u nekim slučajevima ponovno uključivanje datoteke uzrokuje poništavanje vrijednosti promijenjenih varijabli. Ako uključena datoteka definira funkcije, može doći do sukoba imenovanja. Uz to, dolazimo do sljedeće funkcije - require_once().

Funkcija require_once() osigurava da je datoteka uključena u skriptu samo jednom. Nakon što se pozove requi re_once(), svi daljnji pokušaji uključivanja iste datoteke se ignoriraju. Sintaksa funkcije require_once() je:

Vjerojatno ćete češće početi koristiti značajke uključivanja datoteka kako vaše web aplikacije počnu rasti. Ove se funkcije često pojavljuju u primjerima u ovoj knjizi kako bi se smanjila redundantnost koda. O prvim primjerima raspravlja se u sljedećem odjeljku o načelima konstruiranja osnovnih predložaka.

Građevinske komponente

Kada definiram strukturu tipične web stranice, obično je rastavljam na tri dijela: zaglavlje, tijelo i podnožje. U pravilu, većina pravilno organiziranih web stranica ima zaglavlje koje ostaje gotovo nepromijenjeno; glavni dio prikazuje traženi sadržaj stranice, tako da se često mijenja; Konačno, podnožje sadrži informacije o autorskim pravima i navigacijske veze. Podnožje, kao i zaglavlje, obično ostaje nepromijenjeno. Nemojte me krivo shvatiti - ne pokušavam potisnuti vaše kreativne težnje. Vidio sam mnogo izvrsnih web stranica koje ne slijede ta načela. Samo pokušavam osmisliti opću strukturu koja može poslužiti kao polazište za daljnji rad.

Naslov

Datoteka zaglavlja (poput one u ispisu 9.5) pojavljuje se na gotovo svakoj od mojih web stranica s omogućenim PHP-om. Ova datoteka sadrži

informacije na cijelom web-mjestu, kao što su naslov, podaci za kontakt i neke komponente koda HTML stranice.

Listing 9.5. Primjer datoteke zaglavlja

// Datoteka: zaglavlje.tpl

// Svrha: datoteka zaglavlja za web stranicu PhpRecipes.

$site_name = "PHPRecipes";

$site_email= " [e-mail zaštićen]";

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

<? print $site_name; ?>

// Ispis trenutnog datuma i vremena

ispis datuma ("F d, h:i a");

Posjetiteljima je često ograničen pristup uključenim datotekama, osobito ako te datoteke sadrže osjetljive informacije (na primjer, lozinke). U Apacheu možete spriječiti pregledavanje određenih datoteka uređivanjem datoteka http.conf ili htaccess. Sljedeći primjer pokazuje kako spriječiti gledanje svih datoteka s nastavkom .tpl:

Narudžba dopusti, odbij

Dopusti od 127.0.0.1

Sigurnosna pitanja PHP-a i web stranice detaljno su obrađena u 16. poglavlju.

Tekući naslov

Podnožje je obično informacija koja se nalazi na dnu stranica stranice - podaci o kontaktu, poveznice i informacije o autorskim pravima. Te se informacije mogu smjestiti u zasebnu datoteku i uključiti kao predložak na isti način kao i zaglavlje. Recimo da s početkom nove godine trebate promijeniti podatke o autorskim pravima i dovesti ih u obrazac “Copyright © 2000-2001”. Postoje dvije mogućnosti: Provedite Badnjak bjesomučno uređujući stotine statičnih stranica. ili koristite predložak poput onog prikazanog u ispisu 9.6. Jedna jednostavna promjena i možete se vratiti svojoj blagdanskoj rutini.

Listing 9.6. Primjer datoteke podnožja (footer.tpl)

kontakt |

vaša privatnost

Obratite pažnju na upotrebu globalne varijable $site_email u datoteci podnožja. Vrijednost ove varijable odnosi se na cijelu stranicu i pretpostavljamo da će datoteke header.tpl i footer.tpl biti uključene u jednu posljednju stranicu. Također primijetite prisutnost $site_path u vezi privatnosti. Uvijek uključujem punu stazu do svih veza u svojim predlošcima - da je URL veze samo privacy.php, datoteka podnožja bila bi kodirana u određeni direktorij.

Glavni dio

Glavni dio stranice uključuje sadržaj zaglavlja i podnožja. U biti, to je glavni dio koji sadrži informacije koje zanimaju posjetitelje stranice. Zaglavlje izgleda impresivno, podnožje sadrži korisne informacije, ali zbog glavnog dijela stranice korisnici se uvijek iznova vraćaju na stranicu. Iako ne mogu dati nikakav savjet o specifičnoj strukturi stranice, predlošci poput onog u Ispisu 9.7 uvelike pojednostavljuju administraciju stranice.

Listing 9.7. Primjer glavnog dijela stranice (index_body.tpl)

/tutorials.php">tutorijali

članci

skripte

kontakt

Dobrodošli u PHPRecipes. početno mjesto za PHP skripte, upute,

i informacije o gurmanskom kuhanju!

Sve zajedno: zaglavlje, podnožje i tijelo

Možda moje raspoloženje najbolje opisuje rečenica pukovnika “Hannibala” Smitha (George Peppard) iz poznate TV serije “The A-Team”: “Volim kad stvari sjednu na svoje mjesto.” Doživljavam nešto slično gdje se različiti predlošci spajaju u cjeloviti web-dokument. Kombiniranjem tri odjeljka dokumenta: header.tpl, index_body.tpl i footer.tpl, možete brzo izgraditi jednostavnu stranicu poput one prikazane u ispisu 9.8.

Listing 9.8. Izrada index.php stranice uključivanjem nekoliko datoteka

// Datoteka: index.php

// Odredište: PHPRecipes početna stranica

// Ispis naslova

uključi("zaglavlje.tpl");

// Ispis glavnog dijela

uključi("tijelo_indeksa.tpl");

// Prikaz podnožja

uključi("podnožje.tpl");

Pa kako? Tri jednostavne naredbe i imate gotovu stranicu. Tekst završne stranice prikazan je u ispisu 9.9.

Listing 9.9. HTML stranica izgrađena u Ispisu 9.8 (index.php)

PHPRecipes

23. kolovoza, 15:17

tutoriali

članci

skripte

kontakt

Dobrodošli u PHPRecipes, početno mjesto za PHP skripte, upute,

i gurmanske kuharske savjete i recepte!

Autorska prava 2000 PHPRecipes. Sva prava pridržana.

kontakt |

svoju privatnost

Na sl. Slika 9.1 prikazuje kako rezultirajuća stranica izgleda u pregledniku. Iako obično ne koristim obrube tablice, ovaj put sam ih istaknuo kako bi se tri dijela stranice jasnije istaknula na ilustraciji.

Riža. 9.1. Izgled stranice izgrađene u listingu 9.8

Optimizacija predloška

U drugoj (po mom mišljenju, poželjnijoj) opciji, predlošci su dizajnirani kao funkcije smještene u zasebnoj datoteci. Ovo daje dodatnu strukturu vašim predlošcima. Ovu datoteku nazivam inicijalizacijskom datotekom i u nju spremam druge korisne informacije. Budući da smo već pogledali relativno duge primjere zaglavlja i podnožja, popisi 9.10 i 9.11 malo su skraćeni kako bi ilustrirali novu ideju.

Listing 9.10. Optimizirani predložak web mjesta (site_init.tpl)

// Datoteka: site_init.tpl

// Svrha: datoteka za inicijalizaciju PhpRecipes

$site_name = "PHPRecipes";

$site_email = " [e-mail zaštićen]";

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

funkcija show_header($site_name) (

<? print $site_name: ?>

Ovo je zaglavlje

funkcija prikaži podnožje()

Ovo je podnožje

Listing 9.11. Korištenje inicijalizacijske datoteke

// Uključi inicijalizacijsku datoteku

uključi("site_init.tpl");

// Ispis naslova

prikaži zaglavlje($site_name);

// Sadržaj tijela Ovo su neke informacije o tijelu

// Prikaz podnožja Show_footer();

Projekt: generator stranica

Iako je većina web stranica koje sam izradio generirala sadržaj glavne stranice na temelju informacija pročitanih iz baze podataka, uvijek postoji nekoliko stranica koje ostaju gotovo nepromijenjene. Konkretno, mogu prikazati informacije o razvojnom timu, podatke za kontakt, oglašavanje itd. Ja obično pohranjujem ove "statične" informacije u zasebnu mapu i koristim PHP skriptu da ih učitam kada stigne zahtjev. Naravno, imate pitanje - ako je ovo statična informacija, čemu služi PHP skripta? Zašto ne učitate obične HTML stranice? Prednost PHP-a je u tome što možete koristiti predloške i po potrebi umetati statične isječke.

<а href = "/static.php?content=$content">Statični naziv stranice

Počnimo s izradom statičnih stranica. Radi jednostavnosti, ograničit ću se na tri stranice koje sadrže informacije o web lokaciji (Ispis 9.12), oglašavanje (Ispis 9.13) i podatke za kontakt (Ispis 9.14).

Listing 9.12. Informacije o stranici (about.html)

O PHPRecipes

Koji programer ne miješa cjelovečernje programiranje s gurmanskim kolačićima, gotovo da ne prođe nijedna noć, a da neki od naših programera ne pomiješa malo HTML-a s ukusnim tanjurom Portobello Mushrooms najbolje od onoga što najviše volimo: PHP i hrana!

Tako je, čitatelji, skripte, soufflei i drugo. 0samo na PHPRecipes.

Informacije o oglašavanju

Bez obzira na to dolaze li naučiti najnovije PHP tehnike ili osvježiti kako

ispeći piletinu, možete se kladiti da naši čitatelji donose odluke. Oni su industrija

profesionalci koji donose odluke o tome što njihova tvrtka kupuje.

Za informacije o oglašavanju obratite se

">[e-mail zaštićen].

Listing 9.14. Kontakt detalji (contact.html)

Kontaktirajte nas

Imate li savjet za kodiranje?

Znate koji je savršeni preljev za kandirani batat?

Javite nam! Kontaktirajte tim na [e-mail zaštićen].

Prijeđimo na izradu stranice static.php, koja prikazuje tražene statičke informacije. Ova datoteka (vidi ispis 9.15) uključuje komponente stranice naše stranice i inicijalizacijsku datoteku site_init.tpl.

Listing 9.15. Opći izlaz statičnih stranica (static.php)

// Datoteka: static.php

// Svrha: prikazivanje traženih statičnih stranica.

// UPOZORENJE: ovo pretpostavlja da je datoteka "site_init.tpl" i to je to

// statičke datoteke su u istom direktoriju.

// Učitaj funkcije i varijable include("site_init.tpl"):

// Prikaz zaglavlja show_header($site_name);

// Izlaz traženog sadržaja include("$content.html"):

// Prikaz podnožja show footer();

Sada je sve spremno za izradu glavnog scenarija. Samo ga uključite na stranicu

<а href = "static.php?content=about">Statički naziv stranice

Informacije o oglašavanju

Kontaktirajte nas

Ako kliknete bilo koju od ovih poveznica, vaš preglednik će učitati odgovarajuću statičnu stranicu ugrađenu u static.php!

Rezultati

U ovom poglavlju ste se upoznali s primarnim zadatkom za koji je PHP stvoren - dinamičkom izgradnjom web stranica. Razmotrena su sljedeća pitanja:

  • URL obrada;
  • izgradnja dinamičkog sadržaja;
  • uključivanje i konstrukcija osnovnih predložaka.

Poglavlje završava generatorom stranica, programom koji učitava statične stranice u predložak i olakšava podržavanje velikog broja statičkih HTML stranica.

Sljedeće se poglavlje fokusira na korištenje PHP-a u kombinaciji s HTML obrascima kako bi se znatno poboljšala interaktivnost vaše stranice. A onda - interakcija s bazama podataka! Imate puno zanimljivih stvari za naučiti.