Faqet dinamike në PHP. PHP. Krijimi dinamik i faqes Krijoni një komponent të rregullt të paraqitjes së faqeve

Në mësimin e fundit, ne kuptuam se nga cilat blloqe do të përbëhet modeli i udhëtimit, në mënyrë që të mund të shkojmë në punë. Së pari, le të krijojmë dy dosje:

imazhe - kjo dosje do të përmbajë çdo skedar grafik të përdorur për të dizajnuar shabllonin. Sepse Nuk kemi ende ndonjë zhvillim të dizajnit, pastaj hidhni ndonjë skedar grafik në këtë dosje, përndryshe Joomla nuk do ta instalojë shabllonin dhe do të japë një gabim nëse dosja është bosh.

KUJDES: Dosja e imazheve të shabllonit nuk përmban grafikë të përmbajtjes!

css - kjo dosje do të përmbajë skedarë kaskadë të fletës së stilit. Së pari, le të vendosim një skedar bosh template.css në të, i cili do të përdoret për të caktuar stile të ndryshme dizajni për elementët e faqes.

Më pas, mund të filloni të krijoni skedarin kryesor index.php, i cili do të përcaktojë rregullimin vizual të elementeve të faqes dhe do t'i tregojë Joomla CMS në cilin bllok të vendosë komponentë dhe module të ndryshme. Skedari është një kombinim i PHP dhe HTML.

Unë gjithmonë përdor vetëm Macromedia Dreamweaver kur shkruaj kod. Një program i shkëlqyer, ua rekomandoj fuqimisht fillestarëve, sepse... Nëse keni bërë një gabim gjatë punës me kodin, programi patjetër do të nxjerrë në pah gabimin tuaj.

Në sit do të gjeni një tutorial për Macromedia Dreamweaver. Nëse do të zhvilloni faqe interneti, atëherë duhet ta zotëroni këtë program, të paktën në nivelin fillestar, në mënyrë që të redaktoni kodet e shablloneve pa gabime.

Pozicionimi i elementeve të faqes (blloqeve) bëhet duke përdorur kodin HTML konkretisht, ne do të përdorim etiketat DIV; Por mënyra se si faqja jonë do të funksionojë në motorin Joomla, d.m.th. Do të jetë dinamike, atëherë do të duhet të përdorni edhe gjuhën PHP. Me ndihmën e tij, ne do të përcaktojmë se në cilat blloqe do të vendosen pozicionet për daljen e moduleve dhe si do të quhen këto pozicione, nëse blloqet do të shemben apo jo. Ne do të lidhim fletët e stilit nga skedarët e jashtëm, gjuhën e përmbajtjes, do të vendosim se si do të ndryshojë madhësia e faqes, etj.

indeks.php

Kreu i skedarit

Kreu i skedarit përbëhet nga disa pjesë. Pjesa e parë e kodit të kokës PHP është të sigurohet që skedari të mos aksesohet drejtpërdrejt, për arsye sigurie.

< ?php
definuar ("_JEXEC") ose die ;
JHtml::_("sjellje.kornizë" , true);
$app = JFactory::getApplication() ;
?>
< ?php echo "< ?" ; ?> versioni xml="1.0" kodimi=" < ?php echo $kjo-> _set ?> "?>

DOCTYPE është një parametër shumë i rëndësishëm në bazë të të cilit shfletuesi vendos se si të renderohet kjo faqe dhe si të interpretohet CSS.

< ! DOCTYPE html PUBLIC "- / / W3C/ / DTD XHTML 1.0 Strict/ / EN""http: // www.w3.org/ TR/ xhtml1/ DTD/ xhtml1- strict.dtd">

Fragmenti i mëposhtëm merr gjuhën e instaluar nga konfigurimi global.

< html xmlns= "http:// www.w3.org/ 1999/ xhtml" xml:lang = " < ?php echo $kjo-> gjuha; ?>" lang = " < ?php echo $kjo-> gjuha; ?>" dir = " < ?php echo $kjo-> drejtimi; ?>" >

Tjetra është një pjesë e kodit që përfshin informacion shtesë për kokën që është vendosur në konfigurimin global. Ju mund ta shihni këtë informacion duke parë kodin burimor të çdo faqe interneti. Në veçanti, këto janë etiketa meta, për të cilat ju tashmë dini.

< head>
< jdoc:include type= "head" / >

Linjat e mëposhtme të kokës përmbajnë lidhje me stilet kryesore të Joomla CSS.

< link rel= "stylesheet" href= "< ?php echo $kjo-> baseurl ?> / templates/ system / css/ system .css" tip = "tekst /css" / >
< link rel= "stylesheet" href= "< ?php echo $kjo-> baseurl ?> / shabllone/ system / css/ general.css" tip = "tekst /css" / >

Për të përdorur stilet e dizajnit të shablloneve, ne lidhemi me një skedar që përmban fletë stili kaskadë template.css, i cili ndodhet në dosjen CSS. Nuk ka rëndësi që ky skedar është bosh për momentin, gjëja kryesore është ta lidhni atë, do të merremi me dizajnin më vonë, kur të instalojmë shabllonin në Joomla. Kjo do ta bëjë më të lehtë vëzhgimin e rezultatit.

< link rel= "stylesheet" href= "< ?php echo $kjo-> baseurl ?> /templates/< ?php echo $kjo-> shabllon ?> /css/template.css" tip = "tekst /css" / >

Fragmenti i mëposhtëm i kodit na lejon të kolapsim kolonat majtas ose djathtas nëse nuk ka module të vendosura në pozicionet majtas dhe djathtas. Nëse të dyja kolonat janë palosur, përmbajtja zë 100% të gjerësisë së faqes. Nëse përfshihet vetëm një kolonë, atëherë përmbajtja zë 80%. Me dy kolona të aktivizuara, përmbajtja përbën 60% të gjerësisë së faqes.

< ?php
nëse ($ kjo-> countModules("majtas dhe djathtas" ) = = 0) $contentwidth = "100" ;
nëse ($ kjo-> countModules("majtas ose djathtas" ) = = 1) $contentwidth = "80" ;
nëse ($ kjo-> countModules("majtas dhe djathtas" ) = = 1) $contentwidth = "60" ;
?>

Kreu mbyllet

< / head>

< body>

Blloku "faqe" përmban dizajnin e vetëm faqes së faqes, e cila do të jetë 950 px e gjerë.

< div id= "page" >

Blloku "lart" ndodhet në krye të faqes dhe përmban dy blloqe "logo" dhe "user1".

< div id= "top" >

Në bokeh "logo" ne do të vendosim një skedar grafik të logos kjo do të specifikohet në fletët e stilit. Por ne shkruajmë shfaqjen automatike të emrit të faqes në skedarin index.php dhe vendosim emrin në etiketën H1, e cila është shumë e rëndësishme për optimizimin e motorëve të kërkimit.

< div id= "logo" >
< h1> < ?php echo $app - >getCfg("emri i faqes"); ?>< / h1>
< / div>

Le të përcaktojmë pozicionin "user1" në bllokun me të njëjtin emër për të shfaqur modulin e kërkimit të faqes.

< div id= "user1" >
< jdoc:include type= "modules" name= "user1" style= "xhtml" / >
< / div>
< / div> < ! - - конец блока top - - >

Dalja e modulit të menysë horizontale në bllokun "user2" në pozicionin "user2". Blloku do të shembet nëse nuk ka modul në atë pozicion.

< ?php if ($kjo-> countModules("user2" ) ): ?>
< div id= "user2 " >
< jdoc:include type= "modules" name= "user2" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Më pas vjen blloku i kokës së faqes. Në të do të përcaktojmë pozicionin "header" për shfaqjen e moduleve. Blloku do të shembet nëse nuk ka modul në atë pozicion. Zgjerova qëllimisht aftësitë e këtij blloku për të vendosur në të jo vetëm imazhin e kokës, por edhe rrotulluesit e imazhit.

< ?php if ($kjo-> countModules(" kokë") ) : ?>
< div id= "kokë">
< jdoc:include type= "modules" name= "kokë" style="xhtml" / >
< / div>
< ?php endif ; ?>

Në bllokun "user3" ne përcaktojmë pozicionin "user3" për daljen e moduleve.

Blloku do të shembet nëse nuk ka dalje të modulit në këtë pozicion "user3".

< ?php if ($kjo-> countModules("user3" ) ): ?>
< div id= "user3" >
< jdoc:include type= "modules" name= "user3" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Hapet një bllok i kolonës së majtë, i cili do të shembet nëse nuk ka module në pozicionin "majtas".

< ?php if ($kjo-> countModules("majtas") ): ?>
< div id= "left" >
< jdoc:include type= "modules" name= "left" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Hapet blloku më i rëndësishëm i përmbajtjes, i cili mund të zërë 100% të gjerësisë së faqes, 80% dhe 60%, në varësi të numrit të kolonave të përfshira.

< div id= "content< ?php echo $contentwidth ; ?> " >

Shfaqja e mesazheve në komponentë

< jdoc:include type= "message" / >

Nxjerr përmbajtjen e përmbajtjes.

< jdoc:include type= "component" style= "xhtml" / >
< / div> < ! - - конец блока контента- - >

Hapet një bllok i kolonës së djathtë, i cili do të shembet nëse nuk ka module në pozicionin "e duhur".

< ?php if ($kjo-> countModules("djathtas" ) ): ?>
< div id= "rigth" >
< jdoc:include type= "modules" name= "right" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Prodhimi i bllokut "footer", i krijuar për të shfaqur modulin "HTML code" me informacione për të drejtat e autorit. Këtu mund të vendosni gjithashtu një menu horizontale të poshtme ose modul prezantimi të përmbajtjes. Blloku do të shembet nëse më shumë se një modul shfaqet në këtë pozicion "footer".

< ?php if ($kjo-> countModules("footer") ): ?>
< div id= "footer" >
< jdoc:include type= "modules" name= "footer" style= "xhtml" / >
< / div>
< ?php endif ; ?>

Blloku i faqes së faqes "faqe", trupi dhe i gjithë kodi janë të mbyllura.

< / div> < ! - - конец блока page- - >
< / body> < ! - - конец блока body - - >
< / html> < ! - - конец кода- - >

Ne kemi krijuar një skedar të plotë index.php. Tani e dini se cilat komanda përdoren dhe në çfarë sekuence shfaqen blloqet e shablloneve.

KUJDES: Në mënyrë që kodi i shabllonit të lexohet nga paneli i administratorit joomla, skedari index.php duhet të hapet në redaktuesin e AkelPad dhe të ruhet në kodimin UTF-8, ndërsa zgjidhni kutinë e kontrollit BOM. Nëse keni përdorur programin Macromedia Dreamweaver për të punuar me skedarin, atëherë duhet të zgjidhni "Edit"> "Page Properties" në menynë e sipërme dhe të zgjidhni dokumentin që kodon Unicode (utf-8) dhe zgjidhni "aktivizo nënshkrimet Unicode (BOM )”. Megjithatë, unë ju këshilloj fuqimisht që të mos e modifikoni kodin nga paneli i administratorit të Joomla-s, nëse ngatërroni diçka - nuk ka kthim prapa, ndryshe nga programi Macromedia Dreamweaver, ku gjithmonë mund të zhbëni ndryshimet e bëra.

Vetë dizajni i blloqeve do të përshkruhet në template.css. Por ne do të konfigurojmë fletët e stilit pasi të instalojmë shabllonin në Joomla 3 (joomla 2.5), dhe për këtë duhet të krijojmë

Shumë lexues në çdo libër për kompjuterët kalojnë mbi gjithçka që nuk është me interes të menjëhershëm dhe kalojnë tek ajo që u nevojitet vërtet. duan e di. Personalisht, kjo është ajo që bëj. Sidoqoftë, nuk ka asgjë të keqe me këtë - rrallëherë ka libra teknikë që duhet të lexohen nga fillimi në kopertinë. Apo ndoshta kjo është ajo që keni bërë - kapërceni tetë kapitujt fillestarë dhe zgjodhët këtë kapitull sepse kishte titullin më interesant? Dhe kush dëshiron të humbasë kohë në detaje kur një projekt tjetër është në flakë në punë?

Për fat të mirë, një nxitim i tillë nuk do t'ju pengojë të zotëroni siç duhet materialin në pjesën e dytë të librit, i cili i kushtohet përdorimit të PHP-së për të ndërtuar faqe dhe për të ndërvepruar me Ueb-in. Në këtë kapitull, do të mësoni se si të modifikoni lehtësisht përmbajtjen e faqeve të internetit dhe të lundroni në ueb duke përdorur lidhje dhe funksione të ndryshme standarde. Kapitulli tjetër do të plotësojë materialin e paraqitur - ai shqyrton në detaje mjetet e ndërveprimit me përdoruesin në format HTML. Kapitulli 11 përshkruan organizimin e ndërfaqes me bazat e të dhënave. Kapitujt e mbetur të pjesës së dytë diskutojnë aspekte jo të parëndësishme të programimit të ueb-it në PHP.

Sidoqoftë, duhet mbajtur mend se materiali në Pjesën 1 Absolutisht e nevojshme për njohuri normale të PHP. Supozohet se ju e keni lexuar tashmë Pjesën 1, kështu që shembujt do të përdorin shumë nga konceptet e përshkruara më parë. Pra, nëse kaloni nëpër një pjesë të librit, do t'ju duhet të ktheheni herë pas here te kapitujt e mëparshëm dhe të arrini.

Lidhje të thjeshta

<а href = "date.php">

$link = "data.php";

print"<а href = \"$link\">Shikoni datën e sotme
\n"

Me siguri po pyesni veten pse ka një vijë të prapme (\) përpara thonjëzave (") në kodin e lidhjes? Fakti është se thonjëzat në PHP janë karaktere të veçanta dhe përdoren si ndarës të rreshtave. Prandaj, thonjëzat janë fjalë për fjalë në vargje duhet të jenë të mbrojtura .

Nëse duhet t'i shpëtoni thonjëzave ju mërzit, thjesht aktivizoni modalitetin magic_quotes_gpc në skedarin tuaj php.ini. Rezultati janë të gjitha apostrofat, thonjëzat, shenjat e prapme dhe karakteret zero. shmangen automatikisht në tekst!

Le të zhvillojmë shembullin e dhënë. Për të shfaqur shpejt një listë lidhjesh në shfletues, mund të përdorni një grup:

// Krijo një grup seksionesh

$contents - array("tutoriale", "artikuj", "skriptet", "kontakt");

// Përsëriteni dhe shfaqni në mënyrë sekuenciale çdo element të grupit

për ($i = 0; $i< sizeof($contents; $i++)

print" ".$contents[$i]."
\n";

// - përcaktim i veçantë për pikën e shënjimit endfor;

Komponentët e skedarit (shabllonet)

Kemi ardhur te një nga veçoritë e mia të preferuara të PHP-së. Një shabllon (në lidhje me programimin në ueb) është një pjesë e një dokumenti ueb që do ta përdorni në disa faqe. Modelet, si funksionet PHP, ju shpëtojnë nga kopjimi/ngjitja e panevojshme e përmbajtjes së faqes dhe kodit të programit. Me rritjen e shkallës së faqes, rëndësia e shablloneve rritet, pasi ato lejojnë modifikime të lehta dhe të shpejta në nivelin e të gjithë faqes. Ky seksion do të përshkruajë disa nga mundësitë që hapen kur përdorni shabllone të thjeshtë.

Në mënyrë tipike, pjesët e zakonshme të përmbajtjes/kodit (d.m.th. shabllonet) ruhen në skedarë të veçantë. Kur ndërtoni një dokument ueb, ju thjesht "përfshini" këta skedarë në vendet e duhura në faqe. Në PHP ekzistojnë dy funksione për këtë: include() dhe require().

përfshijnë() dhe kërkoj()

Një nga aspektet më të spikatura të PHP-së është aftësia për të ndërtuar shabllone dhe biblioteka programimi dhe më pas për t'i futur ato në skriptet e reja. Përdorimi i bibliotekave kursen kohë dhe përpjekje në përdorimin e funksionalitetit të përbashkët në faqet e internetit të ndryshme. Lexuesit me

përvojë programimi në gjuhë të tjera (si C, C++ ose Java), dhe janë të njohur me konceptin e bibliotekave të funksioneve dhe përdorimin e tyre në programe për të zgjeruar funksionalitetin.

Përfshirja e një ose më shumë skedarëve në një skript bëhet duke përdorur funksionet standarde të PHP-së Kërko () dhe include(). Siç do të tregohet në seksionin vijues, secili prej këtyre funksioneve zbatohet në një situatë specifike.

Funksione

Ekzistojnë katër funksione në PHP për përfshirjen e skedarëve në skriptet PHP:

  • përfshijnë();
  • përfshijnë_një herë();
  • kerkoj();
  • kerkoj_një herë().

Pavarësisht ngjashmërisë së emrave, këto funksione zgjidhin probleme të ndryshme.

Funksioni include() përfshin përmbajtjen e një skedari në skript. Sintaksa e funksionit include() është:

përfshijnë (skedarin e skedarit)

Funksioni include() ka një veçori interesante - mund të ekzekutohet me kusht. Për shembull, nëse një thirrje funksioni përfshihet në një bllok komanda if. atëherë skedari përfshihet në program vetëm nëse kushti i f është i vërtetë. Nëse funksioni includeO përdoret në një komandë të kushtëzuar, atëherë ai duhet të jenë të mbyllura në mbajtëse kaçurrelë ose kufizues alternativë. Krahasoni ndryshimet në sintaksë midis Listimeve 9.1 dhe 9.2.

Listimi 9.1. Përdorimi i gabuar i include()

nëse (disa_kushtëzuar)

përfshijnë ("tekst91a.txt"); tjetër

përfshijnë ("text91b.txt");

Listimi 9.2. Përdorimi i saktë i include()

nëse (disa_kushtëzuar) :

përfshijnë ("text91a.txt");

përfshijnë ("text91b.txt");

I gjithë kodi PHP në skedarin e përfshirë Domosdoshmërisht qëndron në etiketat PHP. Mos supozoni se thjesht ruajtja e një komande PHP në një skedar do të sigurojë që ajo të përpunohet në mënyrë korrekte:

Në vend të kësaj, ju duhet të mbështillni komandën në etiketat e duhura, siç tregon shembulli i mëposhtëm:

printoni "ky është një skedar i pavlefshëm i përfshirjes";

Funksioni include_once() bën të njëjtën gjë si include(), me një përjashtim: përpara se të përfshijë një skedar në program, ai kontrollon nëse është përfshirë tashmë. Nëse skedari është përfshirë tashmë, thirrja include_once() shpërfillet, dhe nëse jo, ndodh përfshirja standarde e skedarit. Në të gjitha aspektet e tjera, include_once() nuk ndryshon nga include(). Sintaksa e funksionit include_once() është:

include_once (skedari i skedarit)

Në përgjithësi, funksioni request() është i ngjashëm me include() - ai gjithashtu përfshin shabllonin në skedarin në të cilin ndodhet thirrja request(). Sintaksa e funksionit kerkese() eshte:

kërkoj (skedar skedari)

Sidoqoftë, ekziston një ndryshim i rëndësishëm midis funksioneve të kërkesave () dhe përfshirjes (). Skedari i specifikuar nga request() përfshihet në skript pavarësisht nga vendndodhja e require() në skript. Për shembull, nëse thërrisni requi re() në një bllok if, nëse kushti është false, skedari do të përfshihet ende në skript!

Në shumë situata, është e përshtatshme të krijoni një skedar me variabla dhe informacione të tjera që përdoren në të gjithë sitin, dhe më pas ta përfshini sipas nevojës. Megjithëse emri i këtij skedari është arbitrar, unë zakonisht e quaj atë init.tpl (shkurt për "initializaion.template"). Lista 9.3 tregon se si duket një skedar shumë i thjeshtë init.tpl. Në Listimin 9.4, përmbajtja e init.tpl përfshihet në skriptin me require().

Listimi 9.3. Shembull i një skedari inicializimi

$site_title = "PHP Receta";!}

$contact_email = " [email i mbrojtur]";

$contact_name = "WJ Gilmore";

Listimi 9.4. Duke përdorur skedarin init.tpl

<? print $site_title; ?>

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

Kalimi i një URL-je kur thirret kërkesa() lejohet vetëm nëse është aktivizuar modaliteti "URL fopen wrappers" (ky modalitet është i aktivizuar si parazgjedhje).

Ndërsa madhësia e faqes rritet, mund të rezultojë se disa skedarë janë përfshirë në skript disa herë. Ndonjëherë kjo nuk shkakton problem, por në disa raste, përfshirja e skedarit përsëri shkakton rivendosjen e vlerave të variablave të ndryshuar. Nëse skedari i përfshirjes përcakton funksionet, mund të ndodhin konflikte emërtimi. Me këtë thamë, vijmë te funksioni tjetër - request_once().

Funksioni request_once() siguron që skedari të përfshihet në skript vetëm një herë. Pasi thirret requi re_once(), të gjitha përpjekjet e mëtejshme për të përfshirë të njëjtin skedar injorohen. Sintaksa e funksionit request_once() është:

Ka të ngjarë të filloni të përdorni veçoritë e përfshirjes së skedarëve më shpesh pasi aplikacionet tuaja në internet fillojnë të rriten në madhësi. Këto funksione shfaqen shpesh në shembuj në këtë libër për të reduktuar tepricën e kodit. Shembujt e parë diskutohen në pjesën tjetër mbi parimet e ndërtimit të shablloneve bazë.

Komponentët e Ndërtimit

Kur përcaktoj strukturën e një ueb faqeje tipike, zakonisht e ndaj në tre pjesë: kokën, trupin dhe fundin. Si rregull, shumica e faqeve të internetit të organizuara siç duhet kanë një titull që mbetet praktikisht i pandryshuar; pjesa kryesore shfaq përmbajtjen e kërkuar të faqes, kështu që ajo ndryshon shpesh; Së fundi, fundi përmban informacione për të drejtat e autorit dhe lidhje lundrimi. Fundi, si kreu, zakonisht mbetet i pandryshuar. Mos më keqkuptoni - nuk po përpiqem të ndrydh aspiratat tuaja krijuese. Unë kam parë shumë faqe interneti të shkëlqyera që nuk ndjekin këto parime. Unë thjesht po përpiqem të krijoj një strukturë të përgjithshme që mund të shërbejë si pikënisje për punë të mëtejshme.

Drejtimi

Një skedar koke (si ai në Listimin 9.5) shfaqet pothuajse në çdo një nga faqet e mia të internetit të aktivizuara me PHP. Ky skedar përmban

informacione në të gjithë sitin, si titulli, informacioni i kontaktit dhe disa komponentë të kodit të faqes HTML.

Listimi 9.5. Shembull i skedarit të kokës

// Skedari: header.tpl

// Qëllimi: skedari i kokës për faqen e internetit PhpRecipes.

$site_name = "PHPRreceta";

$site_email = " [email i mbrojtur]";

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

<? print $site_name; ?>

// Printoni datën dhe kohën aktuale

data e printimit ("F d, h:i a");

Shumë shpesh, qasja në skedarët e përfshirë nga vizitorët është e kufizuar, veçanërisht nëse këto skedarë përmbajnë informacione të ndjeshme (për shembull, fjalëkalime). Në Apache, mund të parandaloni shikimin e skedarëve të caktuar duke redaktuar skedarët http.conf ose htaccess. Shembulli i mëposhtëm tregon se si të parandaloni shikimin e të gjithë skedarëve me një shtesë .tpl:

Urdhëro lejo, refuzo

Lejo nga 127.0.0.1

Çështjet e sigurisë së PHP dhe faqes së internetit janë trajtuar në detaje në Kapitullin 16.

Titulli i konkurrimit

Fundi është zakonisht informacioni i vendosur në fund të faqeve të një faqeje - informacioni i kontaktit, lidhjet dhe informacioni i të drejtave të autorit. Ky informacion mund të vendoset në një skedar të veçantë dhe të përfshihet si një shabllon në të njëjtën mënyrë si një kokë. Le të themi se me fillimin e vitit të ri ju duhet të ndryshoni informacionin e të drejtës së autorit dhe ta sillni atë në formën "E drejta e autorit © 2000-2001". Ka dy opsione: Kaloni natën e Krishtlindjes duke redaktuar furishëm qindra faqe statike. ose përdorni një shabllon si ai i paraqitur në Listën 9.6. Një ndryshim i thjeshtë dhe ju mund të ktheheni në rutinën tuaj të pushimeve.

Listimi 9.6. Shembull i skedarit të fundit të faqes (footer.tpl)

kontakt |

privatësinë tuaj

Vini re përdorimin e ndryshores globale $site_email në skedarin e fundit. Vlera e kësaj variabli është e gjerë në faqe dhe supozojmë se skedarët header.tpl dhe footer.tpl do të përfshihen në një faqe përfundimtare. Vini re gjithashtu praninë e $site_path në lidhjen e privatësisë. Unë gjithmonë përfshij shtegun e plotë për të gjitha lidhjet në shabllonet e mia - nëse URL-ja e lidhjes do të ishte thjesht privacy.php, skedari i fundores do të kodohej në një direktori të caktuar.

Pjesa kryesore

Pjesa kryesore e faqes përfshin përmbajtjen e kokës dhe këmbës. Në thelb, është pjesa kryesore që përmban informacionin që intereson vizitorët e faqes. Titulli duket mbresëlënës, fundi përmban informacione të dobishme, por është për pjesën kryesore të faqes që përdoruesit kthehen në sit përsëri dhe përsëri. Megjithëse nuk mund të jap asnjë këshillë për strukturën specifike të faqes, shabllonet si ai në Listimin 9.7 thjeshtojnë shumë administrimin e faqes.

Listimi 9.7. Shembull i pjesës kryesore të faqes (index_body.tpl)

/tutorials.php">tutorials

artikuj

skriptet

kontakt

Mirë se vini në PHPRecipes. vendi fillestar për skriptet PHP, mësimet,

dhe informacion rreth gatimit gustator!

Të gjitha së bashku: koka, fundi dhe trupi

Ndoshta disponimi im përmblidhet më së miri nga një rresht nga koloneli "Hannibal" Smith (George Peppard) nga seriali i famshëm televiziv "The A-Team": "Më pëlqen kur gjërat bien në vend". Unë jam duke përjetuar diçka të ngjashme ku modele të ndryshme bashkohen për të formuar një dokument të plotë në internet. Duke kombinuar tre seksione dokumenti: header.tpl, index_body.tpl dhe footer.tpl, mund të ndërtoni shpejt një faqe të thjeshtë si ajo e paraqitur në Listimin 9.8.

Listimi 9.8. Ndërtimi i një faqe index.php duke përfshirë disa skedarë

// Skedari: index.php

// Destinacioni: Faqja kryesore e PHPRecipes

// Printimi i titullit

përfshijnë ("header.tpl");

// Nxjerr pjesën kryesore

përfshijnë ("index_body.tpl");

// Shfaqni fundin

përfshijnë ("footer.tpl");

Pra, si? Tre komanda të thjeshta dhe ju keni një faqe të përfunduar. Teksti i faqes përfundimtare është paraqitur në Listën 9.9.

Listimi 9.9. Faqja HTML e ndërtuar në Listimin 9.8 (index.php)

PHPRrecipes

23 gusht, ora 03:17

tutoriale

artikuj

skriptet

kontakt

Mirë se vini në PHPRecipes, vendi fillestar për skriptet PHP, mësimet,

dhe këshilla dhe receta gatimi gustator!

E drejta e autorit 2000 PHPRecipes. Të gjitha të drejtat e rezervuara.

kontakt |

privatësinë tuaj

Në Fig. Figura 9.1 tregon se si duket faqja që rezulton në një shfletues. Edhe pse zakonisht nuk i përdor kufijtë e tabelave, këtë herë i vizatova për t'i bërë më të qarta në ilustrim tre pjesët e faqes.

Oriz. 9.1. Pamja e faqes së ndërtuar në Listimin 9.8

Optimizimi i shabllonit

Në opsionin e dytë (për mendimin tim, më i preferuar), shabllonet janë krijuar si funksione të vendosura në një skedar të veçantë. Kjo siguron strukturë shtesë për shabllonet tuaja. Unë e quaj këtë skedar skedari i inicializimit dhe ruaj informacione të tjera të dobishme në të. Meqenëse ne kemi parë tashmë shembuj relativisht të gjatë të kokës dhe fundores, Listimet 9.10 dhe 9.11 janë shkurtuar pak për të ilustruar idenë e re.

Listimi 9.10. Modeli i optimizuar i faqes (site_init.tpl)

// Skedari: site_init.tpl

// Qëllimi: Skedari i inicializimit të PhpRecipes

$site_name = "PHPRreceta";

$site_email = " [email i mbrojtur]";

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

funksioni show_header ($site_name) (

<? print $site_name: ?>

Ky është titulli

Funksioni i shfaqjes së fundit ()

Ky është fundi i faqes

Listimi 9.11. Përdorimi i një skedari inicializimi

// Përfshi skedarin e inicializimit

përfshijnë ("site_init.tpl");

// Printimi i titullit

shfaq kokën ($emri_site);

// Përmbajtja e trupit Ky është një informacion për trupin

// Shfaq futerin Show_footer();

Projekti: gjenerator i faqeve

Megjithëse shumica e faqeve të internetit që kam krijuar kanë gjeneruar përmbajtjen e faqes kryesore bazuar në informacionin e lexuar nga një bazë të dhënash, ka gjithmonë disa faqe që mbeten praktikisht të pandryshuara. Në veçanti, ata mund të shfaqin informacione për ekipin e zhvillimit, informacionin e kontaktit, reklamat, etj. Unë zakonisht e ruaj këtë informacion "statik" në një dosje të veçantë dhe përdor një skript PHP për ta ngarkuar atë kur vjen një kërkesë. Sigurisht, ju keni një pyetje - nëse ky është informacion statik, për çfarë është skripti PHP? Pse të mos ngarkoni faqet e rregullta HTML? Përfitimi i PHP është se ju mund të përdorni shabllone dhe të futni fragmente statike sipas nevojës.

<а href = "/static.php?content=$content">Emri i faqes statike

Le të fillojmë duke krijuar faqe statike. Për thjeshtësi, do të kufizohem në tre faqe që përmbajnë informacione për sitin (Lista 9.12), reklama (Lista 9.13) dhe informacione kontakti (Lista 9.14).

Listimi 9.12. Informacion rreth sajtit (about.html)

Rreth PHPRecipes

Cili programues nuk e përzien programimin gjatë gjithë natës me biskota të shijshme Këtu në PHPRecipes nuk kalon një natë pa përzier pak HTML me një pjatë të shijshme të Portobello Mushrooms apo edhe Fondue më e mira nga ajo që duam më shumë: PHP dhe ushqimi!

Kjo është e drejtë, lexuesit, skriptet, suffles dhe më shumë. 0 vetëm në PHPRecipes.

Informacione Reklamimi

Pavarësisht nëse vijnë për të mësuar teknikat më të fundit të PHP-së apo për të mësuar se si

për të pjekur pulë, mund të vini bast se lexuesit tanë janë vendimmarrës. Ata janë Industria

profesionistë që marrin vendime për atë që blen kompania e tyre.

Për informacione reklamimi, kontaktoni

">[email i mbrojtur].

Listimi 9.14. Detajet e kontaktit (contact.html)

Na kontaktoni

Keni një këshillë për kodim?

E dini mbushjen perfekte për ëmbëlsirat e ëmbëlsirave?

Na tregoni! Kontaktoni ekipin në [email i mbrojtur].

Le të kalojmë në ndërtimin e faqes static.php, e cila shfaq informacionin statik të kërkuar. Ky skedar (shih Listimin 9.15) përfshin komponentët e faqes së faqes sonë dhe skedarin e inicializimit site_init.tpl.

Listimi 9.15. Prodhimi i përgjithshëm i faqeve statike (static.php)

// Skedari: static.php

// Qëllimi: shfaqja e faqeve statike të kërkuara.

// PARALAJMËRIM: kjo supozon se skedari është "site_init.tpl" dhe kaq

// skedarët statikë janë në të njëjtën direktori.

// Funksionet dhe variablat e ngarkimit përfshijnë ("site_init.tpl"):

// Shfaq kokën show_header ($emri_site);

// Nxjerr përmbajtjen e kërkuar përfshi ("$content.html"):

// Afisho footer show footer();

Tani gjithçka është gati për të ndërtuar skenarin kryesor. Thjesht përfshijeni atë në faqe

<а href = "static.php?content=about">Emri i faqes statike

Informacione Reklamimi

Na kontaktoni

Nëse klikoni në ndonjë nga këto lidhje, shfletuesi juaj do të ngarkojë faqen statike përkatëse të ngulitur në static.php!

Rezultatet

Në këtë kapitull, ju u njohët me detyrën kryesore për të cilën u krijua PHP - ndërtimi dinamik i faqeve të internetit. U shqyrtuan çështjet e mëposhtme:

  • përpunimi i URL-ve;
  • ndërtimi i përmbajtjes dinamike;
  • përfshirja dhe ndërtimi i shablloneve bazë.

Kapitulli përfundon me një gjenerues faqesh, një program që ngarkon faqet statike në një shabllon dhe e bën të lehtë mbështetjen e një numri të madh faqesh statike HTML.

Kapitulli tjetër fokusohet në përdorimin e PHP-së në kombinim me format HTML për të rritur në masë të madhe interaktivitetin e faqes tuaj. Dhe pastaj - ndërveprimi me bazat e të dhënave! Keni shumë gjëra interesante për të mësuar.

Nga mësimet e mëparshme mësuam se duke përdorur metodën GET mund të kalojmë disa parametra direkt në URL. Sidoqoftë, asgjë nuk na ndalon ta bëjmë këtë pa formularë, thjesht duke i renditur ato në URL.

Mund t'i kalojmë parametrat përmes URL-së. Dhe ne mund t'i marrim këto parametra direkt në skenar. Pra, çfarë po na pengon t'i tregojmë përdoruesit faqe të ndryshme në varësi të parametrave në URL?

Krijimi i një faqeje dinamike

Për t'i shfaqur përdoruesit faqe të ndryshme, duhet të përgatisni përmbajtje. Lëreni të shtrihet në një grup shumëdimensional:

"Krijimi i faqeve dinamike", "përmbajtja" => "Teksti i artikullit për faqet dinamike." ], [ "title" => "Si të kapni një kotele", "content" => "Teksti i artikullit për kotelet." ] ]; ?>

Parametri dinamik në URL do të quhet id dhe ne do ta kapim atë në $_GET["id"] . Ne mund të shtonim një fushë id në secilin element të grupit, por më pas do të na duhej të përsërisim të gjithë elementët dhe të kërkojmë nëngrupin me ID-në e dëshiruar. Prandaj, është shumë më e lehtë të përdoren çelësat e grupit kryesor si id.

E thënë thjesht, marrim ID-në dhe përpiqemi të gjejmë një artikull me atë çelës në grupin $articles. Duket kështu:

E tëra që mbetet është të skiconi daljen e menysë dhe të kontrolloni ID-në për korrektësi. Rezulton të jetë një ruter i vërtetë PHP!

"Faqja kryesore", "përmbajtja" => "Teksti i artikullit për faqen tonë" ], [ "title" => "Krijimi i faqeve dinamike", "përmbajtja" => "Teksti i artikullit për faqet dinamike." ], [ "title" => "Si të kapni një kotele", "content" => "Teksti i artikullit për kotelet." ] ]; # Nëse ID-ja kalon, shkruani artikullin në $article ose null nëse nuk ka artikull me atë ID if(isset($_GET["id"])) $current_article = $articles[$_GET["id"]] ?? i pavlefshëm; # Nëse id nuk kalohet, atëherë kjo është faqja kryesore, ne mund ta shfaqim faqen me id = 0 else $current_article = $articles; ?> $article): ?> ">

Gabim 404: Faqja nuk u gjet

Tani mund të krijoni sajte dinamike ku numri i faqeve varet nga numri i elementeve të grupit, në vend të skedarëve PHP. :) Nëse faqja duhet të ketë lloje të ndryshme faqesh, për shembull, një artikull dhe një produkt, mund të kaloni llojin e faqes si parametër të dytë: site.ru?type=article&id=5 .

Sigurisht, ky sistem nuk është i përsosur. Pas një kohe do të mësoni se si të bëni një CNC normale (URL më të përshtatshme, për shembull site.ru/articles/5/) dhe të ruani artikujt në një skedar ose bazë të dhënash.

Për të krijuar një faqe interneti premtuese, të zgjerueshme dhe efektive të çdo kompleksiteti, duhet të filloni me diçka të thjeshtë. Ky proces nuk është i lehtë, kërkon njohuri të caktuara bazë të PHP dhe MySQL, por nëse e konsideroni pikë për pikë, mund të krijoni një lloj “plani pune” që do të jetë i dobishëm kur krijoni faqe të reja. Le të përgatisim "bërthamën" dhe bazën për projektin. Në fillim do të jetë një faqe interneti e rregullt e kartëvizitës, por më pas, duke shtuar funksionalitetin, mund të shndërrohet në çdo gjë. Pra, le të fillojmë.

1. Përgatitja e bazës së të dhënave. Krijoni tabelën e parë në bazën e të dhënave MySQL

Krijoni një bazë të dhënash të re, për shembull "mysite". Personalisht, unë jam mësuar të punoj me kodimin UTF-8, kështu që do të bëj një rezervim menjëherë: sigurohuni që të gjithë skedarët e tekstit në sit, vetë baza e të dhënave, tabelat dhe fushat e tabelave të jenë në të njëjtin kodim.
Ne krijojmë një tabelë në bazën e re të të dhënave. Le ta quajmë "faqe". Kjo tabelë do të ruajë faqet statike të faqes së ardhshme dhe informacione rreth tyre. Tabela duhet të përmbajë fushat e mëposhtme:

  • page_id - identifikuesi i faqes (SMALLINT, çelësi primar, auto_increment);
  • page_alias - pseudonimi i faqes për linjën e adresës CNC (VARCHAR, 255);
  • page_title - titulli i faqes në dritaren e shfletuesit (VARCHAR, 255);
  • page_meta_d - meta përshkrimi i faqes për etiketën e përshkrimit meta (VARCHAR, 255);
  • faqe_meta_k - fjalë kyçe meta për etiketën meta fjalë kyçe (VARCHAR, 255);
  • faqe_h1 - titulli i faqes (VARCHAR, 255);
  • page_s_desc - një përshkrim i shkurtër i materialit, për shembull, nëse materialet e faqes do të jenë në formën e një blogu (TEXT);
  • page_content - teksti kryesor i faqes, i cili do të shfaqet në kolonën qendrore të faqes (TEXT);
  • page_publish - përmban "Y" - nëse faqja publikohet, ose "N" - nëse është e fshehur (CHAR, "Y" i paracaktuar).

Menjëherë pas krijimit të tabelës, ne futim në të vlerat për faqen kryesore të faqes. Unë sugjeroj të futni vlerën "home" në fushën "page_alias" për faqen kryesore. Meta etiketat korrespondojnë me temën e të gjithë faqes. Në të njëjtën mënyrë, mund të krijoni faqe të tjera, për shembull, "Rreth kompanisë" me pseudonimin "rreth" dhe meta etiketat tuaja, ose "Kontaktet" me pseudonimin "kontaktet", etj.

2. Krijo një skedar konfigurimi të faqes

Në dosjen rrënjë të faqes, e cila në këtë fazë duhet të jetë bosh, krijojmë një dosje "cfg" dhe në të, duke përdorur .htaccess, mbyllim aksesin me direktivën "mohoni nga të gjithë". Krijoni një skedar core.php me përmbajtjen e mëposhtme:

// MYSQL
klasa MyDB
{
var $dblogin = "rrënjë"; // HYRJA JUAJ NË BAZA E TË DHËNAVE
var $dbpass = ""; // FAQJA TUAJ NË BAZA E TË DHËNAVE
var $db = "mysite"; // EMRI I BAZAVE TË TË DHËNAVE PËR Sajtin
var $dbhost="localhost";

Var $lidhje;
var $query;
var $err;
var $rezultat;
var $të dhëna;
var $fetch;

Funksioni lidh () (
$this->link = mysql_connect($this->dbhost, $this->dblogin, $this->dbpass);
mysql_select_db($this->db);
mysql_query ("SET EMRAVE utf8");
}

Funksioni mbyll () (
mysql_close($this->link);
}

Funksioni ekzekutohet ($query) (
$this->query = $query;
$this->rezultat = mysql_query($this->query, $this->link);
$this->gabim = mysql_error();
}
rreshti i funksionit () (
$this->data = mysql_fetch_assoc($this->rezultat);
}
Funksioni fetch() (
ndërsa ($this->data = mysql_fetch_assoc($this->rezultat)) (
$this->fetch = $this->të dhëna;
ktheje $this->fetch;
}
}
ndalimi i funksionit () (
unset($this->data);
unset($this->rezultat);
unset($this->fetch);
unset($this->gabim);
unset($this->query);
}
}

Ky skedar aktualisht përmban vetëm një klasë të thjeshtë lidhjeje të bazës së të dhënave, por në të ardhmen mund t'i shtoni funksione të ndryshme të dobishme që do të jenë të aksesueshme nga kudo në kodin e faqes. Mos harroni të ndryshoni hyrjen dhe fjalëkalimin për bazën tuaj të të dhënave.

Nëse jeni duke punuar në një mjedis Windows, unë mund të rekomandoj përdorimin e . Ky redaktues ka numërimin e rreshtave dhe konverton lehtësisht tekstin nga një kodim në tjetrin. KUJDES! Nëse punoni në kodimin UTF-8, konvertoni skedarët në UTF-8 pa BOM - kjo do të ndihmojë në shmangien e problemeve në të ardhmen.

3. Krijoni index.php - kontrolluesin kryesor të faqes

Skedari i konfigurimit është krijuar. Tani në dosjen rrënjë të faqes ne krijojmë index.php - ky do të jetë skenari kryesor i faqes, një lloj "kontrollues kryesor". Përmbajtja e skedarit index.php:

define("INDEX", ""); // VENDOSJA E KONSTANTËS SË KONTROLLUESIT KRYESOR

Require_once ($_SERVER."/cfg/core.php"); // LIDHJA E Bërthamës

// LIDHUR ME DB
$db = MyDB e re();
$db->connect();

// KONTROLLUESI KRYESOR
kaloni ($_GET) (
rasti "faqe":
përfshijnë ($_SERVER."/com/page.php");
pushim;
default:
përfshijnë ($_SERVER."/com/home.php");
pushim;
}

Include($_SERVER."/template.php");
$db->close();

Ndryshorja $_GET do t'i tregojë kontrolluesit kryesor se cilin komponent të faqes duhet të ngarkojë kur kërkohet. Aktualisht, faqja jonë ka vetëm dy komponentë: "faqe" dhe "faqe kryesore" (në parim, ju mund të arrini me një komponent për të shfaqur një faqe të rregullt, por shpesh pamja e faqes kryesore të faqes ndryshon nga faqet e artikujve të rregullt të menusë) . Logjika e kontrolluesit kryesor është si më poshtë: emri i komponentit të kërkuar nxirret nga vargu i URL-së (vlera e variablit $option), dhe në varësi të vlerës së tij, përfshihet skedari i vetë komponentit (përmbahet në / dosje com). Skedari i komponentit bën të gjithë punën e nevojshme, nxjerr të dhëna nga baza e të dhënave dhe i shkruan ato në variabla për t'i transferuar në shabllonin e dizajnit. Në fund, lidhet skedari i dizajnit të faqes, në të cilin transferohen të gjitha variablat dhe të dhënat e nxjerra në komponentë. Kjo tingëllon shumë më e ndërlikuar sesa funksionon.

4. Krijoni një komponent të rregullt të daljes së faqes

Në rrënjën e faqes, krijoni një dosje "com" - skedarët përbërës do të ruhen në të. Një komponent i faqes, sipas mendimit tim, është një skedar në të cilin të dhënat përpunohen për seksione të ndryshme të faqes. Për shembull, një komponent i rregullt i faqes merr titullin, përshkrimin dhe tekstin e materialit nga baza e të dhënave dhe i shkruan ato në variablat $title, $meta_d, $meta_k, $content, etj. Këto të dhëna më pas transferohen në shabllonin e dizajnit ( ju mund të krijoni modelin tuaj të dizajnit për secilin komponent ) dhe i shfaqen përdoruesit si një faqe HTML. Për shembull, një komponent i katalogut që mund të krijohet në të ardhmen do të bënte pothuajse të njëjtën gjë, por me të dhëna për produktet - dhe ai ka specifikat e veta, fusha të tjera në tabelë, etj. Prandaj, për çdo seksion funksional të faqes ia vlen të krijoni një komponent të veçantë. Në skemën MVC (Model-View-Controller), komponenti vepron si model.

Krijo një skedar "page.php" në dosjen "com". Përmbajtja e skedarit është si më poshtë:

/* KOMPONENTI I FAQES */
$alias = $_GET;
$query = "ZGJIDH * NGA faqet WHERE page_alias="".$alias."" AND page_publish="Y" LIMIT 1";
$db->run($query);
$db->rresht();
// NDRYSHORE KOMPONENTE
$id = $db->të dhëna;
$alias = $db->të dhëna;
$title = $db->të dhëna;
$h1 = $db->të dhëna;
$meta_d = $db->të dhëna;
$meta_k = $db->të dhëna;
$s_desc = $db->të dhëna;
$komponent = $db->të dhëna;
//NËSE FAQJA NUK EKZISTON
nëse (!$id) (
header ("HTTP/1.1 404 Nuk u gjet");
$component = "GABIM 404! Kjo faqe nuk ekziston";
}
$db->stop();

5. Krijoni komponentin e daljes së faqes kryesore

Faqja kryesore në bazën tonë të të dhënave ruhet nën pseudonimin "shtëpi", dhe deri më tani struktura e saj nuk ndryshon nga faqet e zakonshme të faqes - është thjesht një artikull. Sidoqoftë, ne do të krijojmë një komponent të veçantë për të - për të ardhmen, si të thuash.


Përmbajtja e komponentit "home.php" në dosjen "com" është pothuajse identike me përmbajtjen e komponentit të rregullt të faqes, me përjashtim të vargut të pyetjes së bazës së të dhënave dhe emrit të komponentit. Vargu i pyetjes tani duket si ky:

$query = "ZGJEDH * NGA wx_pages WHERE page_alias="home" LIMIT 1";

6. Krijoni një model dizajni për të gjithë faqen

Në rrënjën e faqes ne krijojmë një skedar template.php. Në thelb, ky është një plan urbanistik i rregullt i dizajnit të uebit në formatin HTML+CSS, vetëm me variabla PHP në vendet e duhura. Futni midis etiketave të titullit, në kolonën qendrore të faqes ka një insertdhe kështu përgjatë shabllonit vendosim variablat e nevojshëm që deklarohen në komponentë.

Dosja rrënjë duhet të ketë gjithashtu dosje "css" dhe "images" për elementët e dizajnit. Në skedarin /css/style.css - ju mund të personalizoni stilet sipas gjykimit tuaj.

7. Pastroni lidhjet dhe skedarin .htaccess

Për të krijuar lidhje të pastra, unë përdor mod_rewrite me udhëzime të drejtpërdrejta për rregullat për secilin komponent veç e veç, pasi e konsideroj analizimin e shiritit të adresave duke përdorur vetë kontrolluesin si funksionalitet të panevojshëm. Përmbajtja e .htaccess në këtë fazë janë:


RewriteEngine Aktiv
RewriteBase /

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

# SKIDA TË NDALUARA
RewriteRule .htaccess - [F]
RewriteRule template.php - [F]

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

Në të ardhmen, ne do të shtojmë rregulla për komponentët e kërkimit, katalogun, blogun e artikujve, etj. Ekziston vetëm një pikë: konvertoni lidhje si "mysite.com/index.php?option=pages&alias=about" në një lidhje si "mysite.com/pages/about.htm" - duket shumë bukur. Përpiquni të shmangni grupin $_GET në zhvillim për arsye sigurie dhe mos u mbështetni në të. Këshillohet që në të të ruhen vetëm parametrat për kontrolluesin kryesor (ndryshorja $option) dhe për komponentin (ndryshorja $alias).

Gjithashtu, në secilën dosje të faqes, "vetëm në rast", krijoni një skedar bosh index.html - kjo është e nevojshme në mënyrë që kur të hyni në drejtori përmes shiritit të adresave, të mos shfaqet asgjë.

Etiketa: php, mysql, motori i faqes, kontrolluesi, krijimi i faqes, mvc

2017-01-10


Krijoni një faqe interneti dinamike duke përdorur php

Përshëndetje i dashur vizitor!

Sot, nga faqja kryesore, duke përdorur gjuhën e programimit PHP, do të krijojmë një faqe dinamike, e cila më pas do të gjenerohet në server me çdo kërkesë të përdoruesit.

Kështu, duke ndryshuar strukturën e faqes dhe duke e mbushur me faqe të ngjashme në ndryshim, do të fitojmë një faqe dinamike, e cila në të ardhmen do të thjeshtojë shumë mbështetjen dhe zhvillimin e saj teknik në krahasim me versionin statik.

  • Pse keni nevojë për një faqe interneti dinamike?
  • Si të konvertohet një faqe statike në një dinamike
  • Ne formojmë blloqe të një siti dinamik
  • Shndërrimi i një faqe interneti nga statike në dinamike
  • Skedarët e burimit të sitit

Pse keni nevojë për një faqe interneti dinamike?

Pse nevojitet një faqe interneti dinamike u diskutua në fillim të udhëzimeve hap pas hapi në artikullin Instalimi i një serveri lokal të internetit Denwer, ku u shpjegua nevoja për të instaluar një server lokal në internet. Prandaj, ne mund të kthehemi dhe ta rifreskojmë këtë pyetje.

Gjithashtu, nëse doni të merrni në konsideratë më tej avantazhet dhe disavantazhet e faqeve statike dhe dinamike, ne mund t'ju këshillojmë të lexoni faqet e drejtorisë online "Puzzleweb.ru" me seksionin Llojet e faqeve, ku në mënyrë mjaft të përmbledhur, por në të njëjtën kohë koha e dhënë qartë shpjegime për opsionet e ndryshme të faqes.

pamje nga ekrani 12

Ne mund t'i shtojmë kësaj vetëm se për të marrë një burim të vërtetë të plotë të Internetit, është e pamundur të kaloni këtë hap dhe të qëndroni me opsionin e faqes statike.

Prandaj, ne nuk do të thellohemi më në diskutimet teorike të nevojës për të krijuar një faqe dinamike, por do të vazhdojmë të shqyrtojmë pyetjen se si do ta bëjmë këtë.

Si të konvertohet një faqe statike në një dinamike

Siç e dini, ndryshimi thelbësor midis një faqeje dinamike dhe asaj statike është se në një sajt statik, faqet e gatshme të internetit shtrihen në server dhe presin radhën e tyre për t'u dërguar në shfletuesin e përdoruesit. Për më tepër, nëse faqet kanë dallime edhe të vogla, të themi se ndryshimi është vetëm në një frazë apo edhe në një fjalë, atëherë këto do të jenë ende faqe të veçanta.

Në versionin dinamik, formimi i faqeve ndodh në server me çdo kërkesë të përdoruesit, në varësi të informacionit të kërkuar.

E thënë thjesht, kjo mund të krahasohet me një grup ndërtimi, ku një numër i madh formash të ndryshme mund të bëhen nga një numër i kufizuar elementësh. Për më tepër, nëse bëni ndonjë ndryshim në një nga elementët, ai do të pasqyrohet në të gjithë strukturën që përfshin këtë element.

Bazuar në këtë, ne do të bëjmë nga faqja jonë kryesore e krijuar diçka si një konstruktor, i përbërë nga elementë të caktuar (në rastin tonë, këto do të jenë skedarë), nga të cilat faqet e internetit më pas do të mblidhen sipas kërkesave të përdoruesit.

Për të shpjeguar veprimet që do të kryejmë për këtë, do të përdorim kodin HTML të kornizës së faqes kryesore të marrë në një nga fazat e krijimit të një siti në artikull.

  1. "utf-8" >

    <span><b>Titulli i faqes</b> </span>

    "Përshkrim" përmbajtje = "Përshkrim i shkurtër i përmbajtjes së faqes" >

  2. "mbështjellës" >

    Një kapak

    Rotator

    Përmbajtja kryesore

    Shiriti anësor

    Bodrum

Siç mund ta shihni nga kodi HTML, kontejneri , i projektuar për të akomoduar pjesën e dukshme të faqes së internetit, përmban blloqet kryesore të mëposhtme:

  • Një kapak;
  • Rotator;
  • Përmbajtja kryesore;
  • Shiriti anësor;
  • Bodrum.

Sidoqoftë, duhet t'i kushtoni vëmendje faktit që katër nga pesë blloqet janë të zakonshme dhe vetëm një bllok "Përmbajtja kryesore" do të jetë i ndryshëm për secilën faqe.

Për të marrë elementë të një faqeje dinamike, ne do të ndajmë përmbajtjen nga këto blloqe në skedarë të veçantë, të cilët do t'i përfshijmë më vonë kur të montojmë faqe të ndryshme ueb bazuar në kërkesat e përdoruesve.

Tani, në këtë fazë do të ketë vetëm pesë nga këto skedarë. Por në të ardhmen, kur faqet ose funksionalitetet shtesë të shtohen në sajt, skedarët e rinj do të lidhen dhe kështu me radhë, sipas nevojës.

Ky ndërtim i strukturës së faqes do t'ju lejojë në të ardhmen të mos keni nevojë të merreni me punën rutinë të ndryshimit të kodit HTML të të gjitha faqeve në rast të zëvendësimit ose shtimit të ndonjë fragmenti të përbashkët për to. Në raste të tilla, do të mjaftojë të bëni ndryshime vetëm në një skedar specifik dhe e gjithë procedura e zëvendësimit do të përfundojë. Siç mund ta shihni, ka një avantazh.

Por për ta bërë këtë, do të na duhet gjuha PHP, me të cilën faqet e internetit do të mund të kenë akses në këto blloqe të zgjedhura dhe të transferojnë përmbajtjen e tyre tek vetja.

Nëse dikujt nuk i është dashur të merret kurrë me gjuhën PHP, atëherë këshillohet ta njohë më mirë atë, pasi PHP është një nga mjetet më të rëndësishme për zhvillimin e faqeve të internetit. Kjo mund të bëhet duke përdorur lloje të ndryshme të literaturës referuese, të cilat mund të gjenden në sasi të mëdha në internetin rus.

Si opsion, libri referencë i përmendur tashmë "Puzzleweb.ru", në të cilin një nga pjesët e tij i kushtohet temës së PHP. Për një studim më të thelluar të PHP-së, mund të përdorni gjithashtu një libër referimi të specializuar të përshtatur posaçërisht për këtë gjuhë, të postuar në faqen e internetit "php.ru". Duke përdorur lidhjen "https://php.ru/manual/control-structures.intro.html" mund të shkoni në faqen e saj "Hyrje", nga ku mund të zgjidhni lehtësisht çdo seksion të drejtorisë që ju intereson.

Por në mënyrë që tani të krijoni një faqe interneti dinamike dhe të siguroni mundësinë për të lidhur skedarë me faqet HTML, mjafton të përdorni vetëm një udhëzim gjuhësor (në PHP, çdo skript përbëhet nga një sekuencë udhëzimesh). Ky mund të jetë një nga katër udhëzimet e mundshme për lidhjen e skedarëve:

  • përfshijnë;
  • kërkojnë;
  • përfshijnë_një herë;
  • kërkojnë_një herë.

Nuk ka kuptim të përshkruani veçoritë e tyre këtu, pasi kjo shpjegohet në detaje në librat e referencës, për shembull, duke përdorur lidhjen "http://www.puzzleweb.ru/php/26_inc_files.php" mund ta kuptoni mirë këtë.

Kur krijojmë një faqe, ne do të përdorim udhëzimin "require_once" Unë zakonisht e përdor këtë opsion, për mua është më i përshtatshmi.

Epo, tani që kemi kuptuar se çfarë do të bëjmë, le të kalojmë në veprime praktike.

Ne formojmë blloqe të një siti dinamik

Për të formuar blloqe që më pas do të marrin pjesë në montimin e faqeve të internetit, së pari duhet t'i krijoni ato. Kjo bëhet në redaktuesin e tekstit Notepad++ në të njëjtën mënyrë siç krijuam skedarin e parë të faqes "index.html" në artikull Krijoni një faqe në internet dhe vendoseni atë në një server lokal në internet. Vetëm në këtë rast zgjerimi duhet të specifikohet jo "html", por "php". Në këtë rast, patjetër që duhet t'i kushtoni vëmendje kodimit në mënyrë që të shmangni shfaqjen e llojeve të ndryshme të karaktereve të pakuptueshme në faqe në të ardhmen.

Ne do t'i krijojmë skedarët në një dosje "blloqe" të veçantë, të krijuar rishtazi. Për skedarët që janë të zakonshëm për të gjitha faqet, ne do të caktojmë emra duke marrë parasysh emrat e blloqeve përkatëse. Dhe për bllokun "kryesor" do të tregojmë një emër specifik për secilën faqe të faqes.

Kështu, për faqen kryesore do të lidhim një skedar të quajtur "block_glavnaya" me bllokun "kryesor". Për pjesën tjetër: "header", "section", "aside" dhe "footer".

Kur krijoni skedarë, mund të merrni parasysh gjithashtu se për të thjeshtuar këtë procedurë, mund t'i kopjoni ato duke përdorur menynë "File", duke specifikuar emrin e ri të skedarit kur ruani "Ruaj si".

Në përgjithësi, krijimi i skedarëve është një procedurë standarde, kështu që nuk duhet të ketë ndonjë vështirësi. Në fund duhet të duket kështu.


Pastaj kopjojmë përmbajtjen e secilit bllok dhe e transferojmë atë në skedarin përkatës. Duke përdorur "header.php" si shembull, le ta shohim këtë në më shumë detaje.

1. Hapni skedarin "index.html" në redaktorin e Notepad++, zgjidhni zonën e dëshiruar të bllokut "header" dhe klikoni në mënyrë alternative butonat e djathtë dhe të majtë të miut dhe kopjoni atë në clipboard.

Duhet të theksohet se këtu po kopjojmë të gjithë përmbajtjen e bllokut me përjashtim të menysë. Kjo është për shkak se për të pasqyruar butonin aktiv të menusë në atributet e etiketës

  • është e nevojshme t'i caktohet një vlerë klasës së klasës për secilën faqe "aktiv". E njëjta gjë vlen edhe për një fragment të ngjashëm në bllokun "footer".

    Në të ardhmen, ne gjithashtu do t'i zhvendosim këto fragmente të menusë në blloqet "header" dhe "footer" në skedarë të veçantë, por tani për tani nuk do t'i ndërlikojmë gjërat dhe do t'i lëmë në të njëjtin vend.

    Si të zgjidhni dhe kopjoni një fragment të bllokut "header" në kujtesën e fragmenteve tregohet në pamjen e ekranit më poshtë.



    3. Dhe së fundi, për të zhvendosur përmbajtjen e një skedari në Notepad++ në të majtë, duhet të shtypni "Tab" disa herë duke mbajtur të shtypur butonin "Shift". Si rezultat, ne do të marrim skedarin e krijuar "header.php" në formën e mëposhtme.


    Ne do të bëjmë të njëjtën gjë për skedarët e tjerë. Më poshtë, pamjet e ekranit tregojnë se si do të duket përmbajtja e tyre pas përfundimit të të gjithë hapave të nevojshëm.


    Fig.6 Skedari "section.php"


    Fig.7 Skedari "block_glavnaya.php"


    Fig. 8 Skedari "aside.php"


    Fig.9 Skedari "footer.php"

    Kështu, ne kemi marrë të gjithë skedarët për të krijuar një faqe dinamike dhe tani mund të shkojmë drejtpërdrejt në kodin e saj HTML.

    Shndërrimi i një faqe interneti nga statike në dinamike

    Për t'u siguruar që faqja jonë kryesore ngarkon skedarët që u krijuan në seksionin e mëparshëm, së pari duhet të ndryshojmë shtrirjen e skedarit "index" nga "html" në "php", dhe më pas ta hapim përsëri në redaktorin e Notepad++ dhe bëni ndryshimet e mëposhtme:

    • Fshini përmbajtjen e blloqeve që janë transferuar më parë në skedarët e krijuar rishtazi.
    • Në hapësirën e lirë, shkruani udhëzimet "require_once" në PHP, duke treguar rrugën drejt skedarëve përkatës.
    • Në etiketat e menysë
    • , të cilat tregojnë rrugën drejt faqeve, për faqen kryesore zëvendësoni shtrirjen nga "html" në "php", dhe për të tjerat tregoni emrat e faqeve të reja të krijuara.
    • Shënoni "Home" në titull.

    Pas përfundimit të këtyre operacioneve, faqja jonë kryesore duhet të duket kështu.


    Nga pamja e mësipërme e ekranit mund të shihni se të gjitha udhëzimet PHP janë theksuar me një etiketë hapëse. Ky emërtim përdoret për të treguar se kur të fillojë dhe të ndalohet përpunimi i kodit të shkruar në PHP. Prandaj, në të ardhmen, të gjitha kodet PHP do të theksohen me këtë përcaktim.

    Ju gjithashtu mund të vini re se emrat e faqeve të reja janë bërë duke marrë parasysh qëllimin e tyre, kështu që struktura dhe kodi i faqes perceptohet më mirë.

    Këtu përfunduan të gjitha transformimet tona. Dhe tani, nëse hapim përsëri faqen kryesore në shfletues, nuk duhet të shohim asnjë ndryshim me versionin e mëparshëm të faqes, ai duhet të hapet njësoj si më parë. Por, nëse rezultati rezulton të jetë diçka e gabuar, atëherë duhet të kërkoni gabimin në operacionet e mësipërme.

    Le të përditësojmë shfletuesin tani dhe të përpiqemi të hapim faqen kryesore.


    Siç mund ta shihni, në rastin tonë faqja kryesore u hap pa asnjë problem. Por, ndryshe nga puna e mëparshme e faqes, faqja e fitoi këtë pamje si rezultat i formimit të saj në server gjatë përpunimit të kërkesës.

    Kështu, faqja jonë tani ka faqen e saj të parë dinamike. Dhe pas shtimit të faqeve të tjera të ngjashme në të, kjo faqe me të drejtë mund të quhet dinamike me të gjitha pasojat që pasojnë, d.m.th. do të ketë të gjitha avantazhet e qenësishme në faqet dinamike. Dhe ne do të jemi në gjendje ta verifikojmë këtë kur ta mbushim me lloje të ndryshme funksionesh në të ardhmen.

    Me këtë do të përfundojmë këtë fazë të rëndësishme të zhvillimit të faqes së internetit dhe në artikullin e ardhshëm do të krijojmë faqe të reja dinamike për të. Kodet burimore për versionin më të fundit të faqes mund të shkarkohen, si zakonisht, nga lidhja në fund të artikullit.

    Skedarët e burimit të sitit

    Skedarët burimor të faqes me përditësimet që janë bërë në këtë artikull mund të shkarkohen nga bashkëngjitur materiale shtesë.