Používanie PHP na stránkach s príponou html. Formulár vo vašom rozložení Ako čítať html stránku php

Snažím sa vytvoriť prihlasovací formulár. Toto je môj kód HTML formulára

Osobne som to dostal za CHOP.

Body 4 a 5

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

Po prvé, toto poradie je nesprávne. Hašujete $_POST["heslo"] a potom pokúšať sa použiť lomítka - po jeho hash nebude mať žiadne lomky. Ak sa však snažíte zabrániť ľuďom používať lomky (alebo čokoľvek iné) v heslách, budete ich musieť pred hashovaním reťazca odstrániť.

Nasledujúci md5 by sa nemal používať ako algoritmus hashovania hesla, ktorý sa ukázal ako slabý a môže byť hrubou silou spôsobovať kolízie reťazcov oveľa častejšie, ako je potrebné.

Áno ty musieť ukladajte hashe alebo „odtlačky“ hesiel, nie heslá samotné, ale v ideálnom prípade tieto heslá chcete osoliť a hashovať (aspoň sha1), než ich len hodiť do funkcie md5().

A vyhľadajte „nastavenie hash hesla“ pomocou vyhľadávacieho nástroja podľa vlastného výberu.

Bod 6

SELECT id FROM $table WHERE username = "" . $username. "" a heslo = "" . $heslo. "";

Doplnil som = čo v pôvodnej otázke chýbalo, ale to je všetko nezodpovedalo používateľskému menu a heslu vo vašej žiadosti...ak sa niekomu podarilo dostať SQL injekciu do vášho používateľského mena, heslo nebude nikdy overené. Predstaviť:

VYBERTE user.id FROM user WHERE user.username = "fred" ALEBO 1 = 1 -- AND user.password = "abc123"

Je lepšie vybrať ID používateľa a heslo odtlačku prsta z databázy a potom heslo vyhodnotiť v aplikácii, než dôverovať overeniu hesla na úrovni databázy. To tiež znamená, že na overenie hesiel môžete použiť špeciálny algoritmus hashovania a soli v samotnej aplikácii.

Bod 7

$_SESSION["user"] = $_POST["používateľské meno"];

Je to len ukladanie používateľského mena v relácii? Toto by sa v žiadnom prípade nemalo používať ako „overovač prihlásenia“, najmä ak vo vašej relácii (zrejme) nie je nič, čo by zabránilo krádeži.

ID relácie možno ľahko vypočuť zo súboru cookie v reálnom čase a to je všetko, čo by bolo potrebné na „požičanie“ používateľského mena niekoho iného. Mali by ste sa aspoň pokúsiť znížiť pravdepodobnosť únosu relácie priradením IP adresy používateľa, reťazca UserAgent alebo inej kombinácie relatívne statických údajov, ktoré možno porovnať s každou stránkou... takmer každý prístup má však svoje nevýhody (najmä , ako som už zistil, ak máte návštevníkov, ktorí používajú AOL), ale reláciu odtlačkov prstov s 99% efektívnou účinnosťou môžete obmedziť na zníženie únosu s veľmi malou pravdepodobnosťou, že relácia používateľa bude omylom resetovaná.

V ideálnom prípade by ste tiež mohli vytvoriť token relácie na zmiernenie CSRF útoky keď používateľ potrebuje vykonať "privilegovanú" akciu v databáze (aktualizovať svoje údaje alebo niečo iné). Token môže byť úplne náhodný a jedinečný kód uložený v databáze a/alebo cookie SSL, keď sa používateľ prihlási (za predpokladu, že používateľ nemôže vykonávať žiadne akcie, ktoré aktualizujú databázu mimo HTTPS, pretože to jednoducho prenesie údaje vo forme čistého textu cez internet – čo by bolo zlý nápad).

Token sa umiestni do skrytého poľa formulára pre ľubovoľné/všetky formuláre a pri odoslaní formulára sa porovná s hodnotou uloženou v súbore cookie (alebo relácii alebo databáze). To zaisťuje, že osoba odosielajúca formulár bude mať na vašom webe prinajmenšom živú reláciu.

Problémov môže byť niekoľko.

po prvé, vo vašom $match výpise vám chýba operátor rovnosti hesla:

$match = "VYBERTE ID Z $tabuľky WHERE meno používateľa = ".$username."" a heslo"".$password."";";

By mala byť:

$match = "SELECT id FROM $table WHERE username = "".$username."" a heslo = "".$password."";";

Po druhé, vložíte heslo do databázy po jeho použitie pomocou md5?

Ak nie, potom sa vaša požiadavka pokúša priradiť md5 (heslo) k heslu.

Pri tvorbe čo i len osobnej webstránky nie každý dokáže zabezpečiť všetko možné spôsoby jeho ďalšie využitie. Je veľmi dôležité pripraviť pôdu pre ďalší rozvoj lokality. Ak ste si v minulosti vytvorili webovú stránku a všetkým stránkam ste predvolene priradili príponu .html a až potom ste sa rozhodli použiť PHP, čítajte ďalej.

Predtým na používanie SSI museli názvy stránok končiť príponou .shtml, ale dnes je väčšina internetových serverov nakonfigurovaná tak, aby sa SSI dalo použiť na stránkach s príponou .html, čo je celkom pohodlné. PHP je úplne iný príbeh – koncovka .php je predvolená koncovka. Vývojári webových stránok vopred vedia, čo sa bude používať daný jazyk programovanie, kamienok má priradené správne rozšírenie.

Čo však robiť, keď všetky stránky končia príponou .html?

Nahraďte rozšírenie HTML pomocou PHP

Dá sa to urobiť niekoľkými spôsobmi. Najzrejmejším spôsobom je dať všetkým stránkam príponu .php alebo zmeniť existujúce prípony (.html, .shtml atď.). Táto metóda má nevýhody. Napríklad už indexované stránky s príponou .html budú musieť byť znovu indexované vyhľadávače. Alebo ešte horšie - všetko vonkajšie odkazy, ktoré výslovne odkazujú na konkrétnu stránku, budú neplatné. O týchto zmenách budete musieť informovať vlastníkov každej lokality a vytvoriť ďalšiu stránku s chybami 301 pre každú stránku. Samozrejme, že zmena jedného rozšírenia na iné je prijateľná, ale čo ak má stránka už veľa stránok a veľa odkazov na rôzne stránky z iných stránok?

Z vedomého dôvodu tento moment všetky stránky tohto webu končia rozšírením html a nechcel som robiť vyššie uvedené zmeny, čím som si vytvoril zbytočné ťažkosti.

Môžete to urobiť inak. Ak server, ktorý je hostiteľom stránky, podporuje mod_rewrite (vo väčšine prípadov áno) a existuje prístup k súboru .htaccess, môžete do tohto súboru pridať nasledujúce riadky:

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

Pridaním tohto kódu do .htaccess sa nemusíte obávať. Všetky požadované neexistujúce stránky s príponou .html budú vďaka zázrakom Apache automaticky nahradené príponou .php. Ale táto metóda nie je jediná. Do toho istého súboru .htaccess môžete napísať nasledovné:

Aplikácia AddHandler/x-httpd-php .php .html .htm

Podľa mňa najúspešnejší spôsob. Vďaka tomu sa HTML stránky rovnajú stránkam PHP, čo znamená, že všetky funkcie PHP možno teraz použiť na stránkach s príponou HTML. Ak nemáte prístup k súboru .htaccess, môžete napísať list hostiteľskej spoločnosti a zdvorilo požiadať správcov, aby sa zaregistrovali Konfigurácie Apache(httpd.conf) požadovanú hodnotu pre stránku.

Mimochodom, ak predtým stránka používala SSI takto:

potom v novom stave PHP je potrebné tento kód nahradiť:

No, to je všetko, myslím, že jedna z vyššie uvedených metód pomôže.

PHP je vstavaný programovací jazyk na strane servera. Veľká časť jeho syntaxe je prevzatá z jazykov C, Java a Perl. A tiež pridal pár jedinečných vlastností len pre PHP funkcie. Hlavným účelom tohto jazyka je vytvárať dynamicky generované PHP HTML stránky.

PHP do HTML

Pri vytváraní zložitých webových stránok budete čeliť potrebe kombinovať PHP a HTML, aby ste splnili špecifické úlohy. Na prvý pohľad sa to môže zdať komplikované, keďže PHP a HTML sú dve nezávislé disciplíny, ale nie je to tak. PHP je navrhnuté na interakciu s HTML a jeho kód môže byť zahrnutý do označenia stránky.

PHP kód je súčasťou HTML stránok pomocou špeciálnych značiek. Keď používateľ otvorí stránku, server spracuje kód PHP a potom odošle výsledok spracovania (nie PHP kód) do prehliadača.

HTML a PHP sa dajú celkom ľahko kombinovať. Akákoľvek časť skriptu PHP mimo značiekje ignorovaný kompilátorom PHP a odovzdaný priamo prehliadaču. Ak sa pozriete na príklad nižšie, môžete vidieť, že úplný PHP skript môže vyzerať takto:

Ahoj dnes.

Vyššie uvedený kód je obyčajný HTML s trochou úryvok PHP ktoré výstupy aktuálny dátum pomocou vstavanej funkcie dátumu. V tomto prípade budú všetky HTML ignorované kompilátorom PHP a prenesené do prehliadača nezmenené.

Integrácia PHP do HTML je naozaj veľmi jednoduchá. Pamätajte, že skript je stránka HTML s nejakým PHP kódom. Môžete vytvoriť skript, ktorý bude obsahovať iba HTML (bez značiek), a bude to fungovať dobre.

Pokročilejšie metódy:

  • Položka menu

a výsledok:

PHP na HTML pomocou short_open_tag

Ak potrebujete pred vložením HTML do PHP skrátiť svoj kód čo najkratšie, môžete použiť short_tags. V dôsledku toho nebudete musieť zadávaťshort_tags"s" Vypnuté"zapnuté" Zapnuté". Aj keď väčšina serverov už má túto možnosť povolenú, vždy je najlepšie to skontrolovať manuálne. Problém, ktorý môže nastať pri používaní krátkych značiek, je konflikt pri používaní XML. Vo výraze syntaxe XML

PHP na HTML pomocou short__tag

Dobrý deň, dnes je.

Majte na pamäti, že ak chcete vytvoriť web, ktorý je kompatibilný s čo najväčším počtom platforiem, nemali by ste sa pri vkladaní PHP do HTML spoliehať na short_tags.

HTML do PHP pomocou echo

Ďalším spôsobom, ako integrovať HTML do súboru PHP, je príkaz echo:.

To ovplyvní zvýraznenie značiek vo väčšine editorov. Preto je potrebné selektovať všetko dvojité úvodzovky vnútri kódu HTML pomocou spätnej lomky.

PHP na HTML - prípony súborov

Pre štandardne nakonfigurovaný webový server:

AddHandler cgi-script .html .htm

Pre webový server so systémom FastCGI:

AddHandler fcgid-script .html .htm

HTML do PHP

HTML kód môžete použiť aj v PHP skriptoch. Všetko, čo musíte urobiť, je pri otváraní stránky pomocou PHP zmeniť poradie stránok, ktoré sa otvárajú HTML tagy a PHP.

Použitie HTML v PHP:

Osobné informácie

Krstné meno:
Priezvisko:
"; ?>

Vloženie PHP do HTML týmto spôsobom vám umožní použiť oveľa menej kódu. Tu používame $PHP_SELF globálne, čo umožňuje, aby sa hodnoty polí špecifikované pod nimi použili v rovnakom súbore. Pre takéto formuláre sa zvyčajne vytvoria dva súbory: prvým je samotný formulár HTML a druhým súbor PHP, ktorý vykonáva spracovanie.

Ak už máte zložité PHP aplikácie, ktoré používajú veľké množstvo súborov a chcete zjednodušiť, táto metóda vám môže pomôcť.

Táto publikácia je prekladom článku „PHP v HTML“, ktorý pripravil priateľský projektový tím

>

Php pre začiatočníkov

Na tejto stránke sa pokúsime vysvetliť logiku budovania dynamickej webovej stránky. Php je skript spustený na serveri. Čo to znamená? Server má nainštalovaný špeciálny tlmočník, ktorý rozumie určitým jazykovým konštrukciám. Samotný php súbor, číta ho riadok po riadku, akoby ním prechádzal zhora nadol. Ak nájde napr VÝCHOD, potom sa zastaví a ďalej už nič nečíta, ale napríklad vykoná to, čo našiel pred týmto slovom vytlačiť"Super!" Vytlačí sa skvele!

vytlačiť"Skvelé!";
VÝCHOD ;
?>

Toto je najjednoduchší súbor php, ale v skutočnosti sa v praxi musíte vysporiadať so zložitým súborom php. Na stránke je veľa stránok, momentálne ich máme 24 tisíc, museli by sme napísať rovnaký počet php súborov, alebo len html súborov. Ale php vám to všetko umožňuje urobiť v jednom spustiteľnom súbore. To znamená, že musíme usporiadať odkazy v tomto súbore samotnom ako, ak toto - urobte tamto, ak tamto - urobte tamto. PHP vám umožňuje veľmi dobre organizovať odkazy. Všeobecná schéma je:

V scenári vidíte, že priehradky sa páčia
Ak potom)
potom to urobíme
}

Čo sa potom stalo, ak bola splnená prvá podmienka, tj $uslovie 1== "áno", potom spustíme skript v zátvorkách ( ), ktoré súvisia s touto sekciou skriptu, potom v tejto sekcii je VÝCHOD- tu program končí. To znamená, že pomocou priehradiek môžeme rozdeliť súbor php na jeho časti. A aká je podmienka - if($uslovie == "áno")??? Táto sieť je rovnaký odkaz, v tomto prípade sa niečo vykoná, ak premenná $uslovie budú rovné Áno.

Pomenujeme súbor all.php. Ak chcete usporiadať odkazy naň v príkazovom riadku, jednoducho pridajte all.php?uslovie=áno. Ak na príkazovom riadku vidíte otáznik, v tomto prípade ide o tento odkaz, $uslovie == "áno". Následne si vytvoríme html súbor, do ktorého napíšeme odkazy na náš spustiteľný skript.



Nová stránka


uslovie1=yes" >Prvý odkaz
uslovie2=yes" >Druhý odkaz

Vidíte dva odkazy. Ak kliknete na odkazy, súbor sa spustí all.php a v prvom prípade bude skriptu povedané, že premenná $uslovie 1==áno a v druhom prípade $uslovie 2==áno. Z prvého odkazu prvé oddelenie bude dokončené a program sa zastaví, pomocou druhého prepojenia program prebehne cez prvú priehradku a niečo z druhej priehradky sa splní(viď vyššie). Upozorňujeme, že znak dolára sa v odkazoch nepíše, program z nich robí premenné pri ich odovzdávaní do skriptu, teda pri odovzdávaní do príkazového riadku.

Teraz vieme, ako organizovať odkazy na php súbor, ako ho rozdeliť do sekcií a ako organizovať odkazy v html texte do nášho súboru. Ale je tu ešte jedna vec... Faktom je, že ak si stránku usporiadate týmto spôsobom, tak v pôvodnej podobe, keď tam nie je príliš veľa odkazov, nebudete vidieť problémy. Povedzme, že priehradiek je 10, všetky sa pokojne zmestia do jedného šanónu. Ale ak je tam veľa odkazov, napríklad máme 24 000 stránok, tak je v princípe nemožné zmestiť všetky sekcie do jedného php súboru. Vy sami budete mučení hľadaním tej či onej priehradky v jednom súbore, napríklad na jej výmenu. Súbor bude navyše veľmi veľký, náš all.php by zabral 1 MB. Okrem toho musíte pochopiť ešte jednu vec: na mnohých serveroch existuje obmedzenie veľkosti spustiteľných súborov (napríklad 50 kB); ak sa prekročí, takýto súbor sa ignoruje a nespustí sa. V súvislosti s týmito výpočtami sme zmenšili veľkosť hlavného súboru na 8 kB, hoci nesie záťaž pri vykonávaní 1 MB. Ako na to? PHP poskytuje vynikajúcu príležitosť rozdeliť súbor php na časti pomocou príkazu zahrnuté....

Teraz je jasné, ako sme zmenšili náš hlavný súbor na 8 kB, pretože všetky ostatné zahrnuté súbory majú celkovú veľkosť 1 MB a skryli sme ich do samostatného priečinka a pripojili sme ich podľa potreby, to znamená v závislosti od odkazov v príkaze riadok. Príkaz include spája súbory, ako keby boli napísané v hlavnom skripte, takže ak vo vložených súboroch budete pristupovať k databázam alebo súborom html, potom bude potrebné počítanie vykonať presne z hlavného súboru, v našom prípade all.php. Napríklad existuje priečinok html, obsahuje súbor one.htm ako to vytlačiť. Potom súbor one.php vyzerá takto:

zahŕňajú"html/one.htm";
vytlačiť
VÝCHOD ;
?>

Obsah sme vytlačili one.htm, plus vytlačené Toto je prvá časť programu a zastavili program. To znamená, že na základe teórie html by sme museli súbor zahrnúť one.htm Takže: zahrnúť „../html/one.htm“, pretože priečinok html leží o jednu úroveň nad súborom one.php. Ale v php to tak nie je, príkaz include jednoducho pridá kód do skriptu a stane sa jeho integrálnou súčasťou, čo znamená, že všetky odkazy sa počítajú relatívne k hlavnému súboru a nie zahrnuté.



Nová stránka


uslovie1=yes" >Len prvý odkaz
uslovie1=áno& konať=áno" >
uslovie2=yes" >Len druhý odkaz
uslovie2=áno& konať=áno" >Druhý odkaz, ale aj konať=áno

Potom súbor php one.php transformovať na toto:

ak($act == "áno")(
zahŕňajú"html/one.htm";
VÝCHOD ;
}
vytlačiť"Toto je prvá časť programu";
VÝCHOD ;
?>

Ak ste klikli na odkaz uslovie1=yes" >Jednoducho Prvý odkaz, vytlačí sa Toto je prvá časť programu, ak ste klikli na odkaz uslovie1=áno& konať=yes" >Prvý odkaz, ale aj konať=áno, potom sa vytlačí obsah súboru html/one.htm a program sa zastaví.

403 kB

Stiahnite si archív, je urobený tak, že nepotrebujete poznať PHP, stačí vám vedieť HTML.

Áno.))

Pre mňa by bolo jednoduchšie urobiť kópiu index.php a premenovať ju napríklad na contact.php a potom zmeniť middle na middle2 s novým obsahom.

Varná kanvica som malý php


stale nechapem.
Mám webovú stránku.
indexový súbor v koreňovom adresári. V inom priečinku sú napríklad súbory hore uprostred dole.

K dispozícii je jedálny lístok. Chcem, aby sa po kliknutí na položku ponuky zobrazil iný stred.

Ako to urobiť a kam to dať???

Odpoveď: No, kdekoľvek. Je to veľmi jednoduché, ide o vytvorenie skriptu ponuky menus.html


niečo bez poľa $_GET ["uslovie"] ; tvoje príklady mi nefungujú

Odpoveď: podpora pre globálne premenné je na vašom serveri zakázaná, ak áno, potom môžete umiestniť riadok na začiatok všetkých vašich skriptov

ak (isset($_GET )) ( pre každý($_GET ako $key =>$val ) ( $$key =$val ; ) )

potom môžete použiť naše skripty bez použitia $_GET [ "uslovie" ] , ale stačí zadať $uslovie


Máš celkom zaujímavý zdroj..
Vďaka za informácie.

odpoveď:


Dlho ste sľúbili, že sa pozriete na to, ako vzniká web PHP. Prečo ste svoj sľub nedodržali? Možno na túto tému napíšete článok (a ak používate aj MySQL, všetko bude v poriadku).

odpoveď:


Veľmi áno. Len, tam to je, namiesto too.htm pravdepodobne potrebujete dva.htm
Nie je to nevyhnutné, ale udržať veci v poriadku))

odpoveď:


Povedzte mi, kde si môžem prečítať a naučiť sa naspamäť všetky operátory a kódy PHP, napríklad: ozvena , zahŕňajú , inak , ak , vytlačiť , pre každý , isset atď., čo znamenajú a na čo slúžia?

Odpoveď: Alexander, bol som mesiac na dovolenke a navyše práve dokončujem novú verziu celej stránky. Hneď ako skončím, urobím o tom malú stránku.


Mobilesfinks, keď som sa pripravoval na preinštalovanie php 4, už bola vydaná nová verzia stránky v php 5. A neboli žiadne problémy, všetko fungovalo %tashus%

odpoveď:


Ahoj!

Povedzte mi, prosím, ako zmeniť TITLE v hornej časti okna na každej stránke: to znamená: " Nová stránka" ...

Napríklad, ak budete nasledovať odkaz "1", potom by sa okno malo volať "Prvá sekcia. Matematika" - to znamená, že HTML kód by mal byť Prvá sekcia. Matematika...
A ak je odkaz napríklad „2“, potom by sa okno malo nazývať „Druhá sekcia. Geografia“ – to znamená, že kód HTML by mal byť Druhá sekcia. Geografia...

Ako to môžem zmeniť pomocou PHP?

Odpoveď: html.html


Potrebujeme nainštalovať PHP4 pre Denver. Inštalačný skript vykoná všetky zmeny sám.
Potom v priečinku, kde máte vytvorený súbor all.php
súbor s názvom „.htaccess“ a pridajte doň riadok
strana: 1
Aktuálna stránka: 1 Celkový počet správ: 22

Mnohí čitatelia v ktorejkoľvek knihe o počítačoch prelistujú všetko, čo ich bezprostredne nezaujíma, a prejdú k tomu, čo skutočne potrebujú. chcieť vedieť. Osobne to tak robím. Na tom však nie je nič zlé – málokedy existujú odborné knihy, ktoré treba čítať od začiatku do konca. Alebo ste to možno urobili vy – preskočili ste úvodných osem kapitol a vybrali ste si túto kapitolu, pretože mala najzaujímavejší názov? A kto chce strácať čas detailmi, keď v práci horí ďalší projekt?

Našťastie vám takýto zhon nezabráni v správnom zvládnutí materiálu v druhej časti knihy, ktorá je venovaná používaniu PHP na vytváranie stránok a interakciu s webom. V tejto kapitole sa naučíte, ako jednoducho upravovať obsah webových stránok a pohybovať sa na webe pomocou odkazov a rôznych štandardných funkcií. Nasledujúca kapitola doplní prezentovaný materiál – podrobne skúma prostriedky interakcie s používateľom v HTML formulároch Kapitola 11 popisuje organizáciu rozhrania s databázami. Zostávajúce kapitoly druhej časti rozoberajú netriviálne aspekty programovania webu v PHP.

Malo by sa však pamätať na to, že materiál v časti 1 absolútne potrebný pre bežnú znalosť PHP. Predpokladá sa, že ste si už prečítali 1. časť, takže príklady budú využívať mnohé z pojmov opísaných vyššie. Ak teda prelúskate časť knihy, budete sa musieť z času na čas vrátiť k predchádzajúcim kapitolám a dobehnúť zameškané.

Jednoduché odkazy

<а href = "date.php">

$link = "date.php";

vytlačiť "<а href = \"$link\">Pozrite si dnešný dátum
\n"

Pravdepodobne sa čudujete, prečo je pred úvodzovkami (") v kóde odkazu spätná lomka (\)? Faktom je, že úvodzovky v PHP sú špeciálne znaky a používajú sa ako oddeľovače riadkov. Preto úvodzovky sú literály v reťazcoch, musia byť chránené .

Ak vás obťažuje únik z úvodzoviek, jednoducho povoľte režim magic_quotes_gpc v súbore php.ini. Výsledkom sú všetky apostrofy, úvodzovky, spätné lomky a nulové znaky. sú v texte automaticky vynechané!

Rozviňme daný príklad. Na rýchle zobrazenie zoznamu odkazov v prehliadači môžete použiť pole:

// Vytvorte pole sekcií

$contents - array("návody", "články", "skripty", "kontakt");

// Iterácia a postupné zobrazenie každého prvku poľa

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

vytlačiť " ".$contents[$i]."
\n";

// - špeciálne označenie pre značkovací bod endfor;

Komponenty súboru (šablóny)

Dostali sme sa k jednej z mojich obľúbených funkcií PHP. Šablóna (vo vzťahu k programovaniu webu) je súčasťou webového dokumentu, ktorý sa chystáte použiť na viacerých stránkach. Šablóny, podobne ako funkcie PHP, vás ušetria zbytočného kopírovania/vkladania obsahu stránky a programového kódu. So zväčšujúcim sa rozsahom stránky rastie význam šablón, pretože umožňujú jednoduché a rýchle úpravy na úrovni celej stránky. Táto časť popíše niektoré z možností, ktoré sa otvárajú pri používaní jednoduchých šablón.

Bežné časti obsahu/kódu (t.j. šablóny) sa zvyčajne ukladajú do samostatných súborov. Pri vytváraní webového dokumentu jednoducho tieto súbory „zahrniete“ na príslušné miesta na stránke. V PHP sú na to dve funkcie: include() a require().

zahrnúť() a vyžadovať()

Jedným z najvýznamnejších aspektov PHP je schopnosť vytvárať šablóny a programovacie knižnice a potom ich vkladať do nových skriptov. Používanie knižníc šetrí čas a námahu pri používaní spoločných funkcií na rôznych webových stránkach. Čitatelia s

skúsenosti s programovaním v iných jazykoch (napríklad C, C++ alebo Java) a sú oboznámení s konceptom knižníc funkcií a ich používaním v programoch na rozšírenie funkčnosti.

Zahrnutie jedného alebo viacerých súborov do skriptu sa vykonáva pomocou štandardných funkcií PHP require() a include(). Ako bude ukázané v ďalšej časti, každá z týchto funkcií platí v konkrétnej situácii.

Funkcie

V PHP sú štyri funkcie na vkladanie súborov do PHP skriptov:

  • include();
  • include_once();
  • vyžadovať();
  • require_once().

Napriek podobnosti názvov tieto funkcie riešia rôzne problémy.

Funkcia include() zahrnie obsah súboru do skriptu. Syntax funkcie include() je:

zahrnúť(súbor súboru]

Funkcia include() má jednu zaujímavú vlastnosť – môže byť vykonaná podmienečne. Napríklad, ak je volanie funkcie zahrnuté v príkazovom bloku if. potom je súbor zahrnutý do programu iba vtedy, ak je podmienka i f pravdivá. Ak sa funkcia includeO použije v podmienenom príkaze, potom ju musieť byť vložené do zložených zátvoriek alebo alternatívnych oddeľovačov. Porovnajte rozdiely v syntaxi medzi výpismi 9.1 a 9.2.

Výpis 9.1. Nesprávne použitie include()

ak (nejaká_podmienená)

include("text91a.txt"); inak

include("text91b.txt");

Výpis 9.2. Správne použitie include()

if (nejaká_podmienená) :

include("text91a.txt");

include("text91b.txt");

Všetok PHP kód v zahrnutom súbore Nevyhnutne spočíva v PHP tagoch. Nepredpokladajte, že jednoduché uloženie príkazu PHP do súboru zaistí jeho správne spracovanie:

Namiesto toho musíte príkaz zabaliť do vhodných značiek, ako ukazuje nasledujúci príklad:

vytlačte "toto je neplatný súbor na začlenenie";

Funkcia include_once() robí to isté ako include(), s jednou výnimkou: pred zahrnutím súboru do programu skontroluje, či už bol zahrnutý. Ak už bol súbor zahrnutý, volanie include_once() sa ignoruje, a ak nie, dôjde k štandardnému zahrnutiu súboru. Vo všetkých ostatných ohľadoch sa include_once() nelíši od include(). Syntax funkcie include_once() je:

include_once (súbor súboru)

Vo všeobecnosti je funkcia require() podobná funkcii include() – obsahuje aj šablónu v súbore, v ktorom sa nachádza volanie require(). Syntax funkcie require() je:

vyžadovať (súbor)

Medzi funkciami require() a include() je však jeden dôležitý rozdiel. Súbor špecifikovaný pomocou require() je zahrnutý v skripte bez ohľadu na umiestnenie require() v skripte. Napríklad, ak zavoláte requi re() v bloku if, ak je podmienka nepravda, súbor bude stále zahrnutý do skriptu!

V mnohých situáciách je vhodné vytvoriť súbor s premennými a ďalšími informáciami, ktoré sa používajú na celom webe, a potom ho podľa potreby zahrnúť. Hoci názov tohto súboru je ľubovoľný, zvyčajne ho nazývam init.tpl (skratka pre "initialzaion.template"). Výpis 9.3 ukazuje, ako vyzerá veľmi jednoduchý súbor init.tpl. Vo výpise 9.4 je obsah init.tpl zahrnutý v skripte s require().

Výpis 9.3. Príklad inicializačného súboru

$site_title = "PHP recepty";!}

$contact_email = " [chránený e-mailom]";

$contact_name = "WJ Gilmore";

Výpis 9.4. Pomocou súboru init.tpl

<? print $site_title; ?>

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

Odovzdanie adresy URL pri volaní require() je povolené len vtedy, ak je povolený režim „URL fopen wrappers“ (tento režim je predvolene povolený).

S rastúcou veľkosťou stránky sa môže ukázať, že niektoré súbory sú v skripte zahrnuté niekoľkokrát. Niekedy to nespôsobí problém, ale v niektorých prípadoch opätovné zahrnutie súboru spôsobí vynulovanie hodnôt zmenených premenných. Ak zahrnutý súbor definuje funkcie, môže dôjsť ku konfliktom názvov. Tým sa dostávame k ďalšej funkcii – require_once().

Funkcia require_once() zaisťuje, že súbor bude zahrnutý do skriptu iba raz. Po zavolaní requi re_once() sa všetky ďalšie pokusy o zahrnutie rovnakého súboru ignorujú. Syntax funkcie require_once() je:

Funkcie začleňovania súborov pravdepodobne začnete používať častejšie, keď sa vaše webové aplikácie začnú zväčšovať. Tieto funkcie sa často vyskytujú v príkladoch v tejto knihe, aby sa znížila redundancia kódu. Prvými príkladmi sa zaoberáme v ďalšej časti o princípoch vytvárania základných šablón.

Stavebné komponenty

Pri definovaní štruktúry typickej webovej stránky ju zvyčajne rozdelím na tri časti: hlavičku, telo a pätu. Väčšina správne organizovaných webových stránok má spravidla hlavičku, ktorá zostáva prakticky nezmenená; hlavná časť zobrazuje požadovaný obsah stránky, takže sa často mení; Nakoniec päta obsahuje informácie o autorských právach a navigačné odkazy. Päta, podobne ako hlavička, zvyčajne zostáva nezmenená. Nechápte ma zle – nesnažím sa potlačiť vaše tvorivé túžby. Videl som veľa skvelých webových stránok, ktoré nedodržiavajú tieto zásady. Snažím sa len vymyslieť všeobecnú štruktúru, ktorá môže slúžiť ako východisko pre ďalšiu prácu.

Smerovanie

Súbor hlavičky (ako vo výpise 9.5) sa zobrazuje takmer na každej z mojich webových stránok s podporou PHP. Tento súbor obsahuje

informácie o celej lokalite, ako je názov, kontaktné informácie a niektoré komponenty kódu HTML stránky.

Výpis 9.5. Príklad súboru hlavičky

// Súbor: header.tpl

// Účel: súbor hlavičky pre webovú stránku PhpRecipes.

$site_name = "PHPRecepty";

$site_email=" [chránený e-mailom]";

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

<? print $site_name; ?>

// Tlač aktuálneho dátumu a času

vytlačiť dátum("F d, h:i a");

Pomerne často je prístup návštevníkov k zahrnutým súborom obmedzený, najmä ak tieto súbory obsahujú citlivé informácie (napríklad heslá). V Apache môžete zabrániť zobrazovaniu určitých súborov úpravou súborov http.conf alebo htaccess. Nasledujúci príklad ukazuje, ako zabrániť zobrazovaniu všetkých súborov s príponou .tpl:

Objednávka povoliť, zamietnuť

Povoliť od 127.0.0.1

Problémy s PHP a bezpečnosťou webových stránok sú podrobne opísané v kapitole 16.

Bežecký titul

Päta je zvyčajne informácia umiestnená v spodnej časti stránok – kontaktné informácie, odkazy a informácie o autorských právach. Tieto informácie možno umiestniť do samostatného súboru a zahrnúť ako šablónu rovnakým spôsobom ako hlavičku. Povedzme, že s nástupom nového roka musíte zmeniť informácie o autorských právach a uviesť ich do podoby „Copyright © 2000-2001“. Sú dve možnosti: Stráviť Štedrý večer horúčkovitým upravovaním stoviek statických stránok. alebo použite šablónu, ako je tá vo výpise 9.6. Jedna jednoduchá zmena a môžete sa vrátiť k svojej dovolenkovej rutine.

Výpis 9.6. Príklad súboru päty (footer.tpl)

kontakt |

vaše súkromie

Všimnite si použitie globálnej premennej $site_email v súbore päty. Hodnota tejto premennej je celostránková a predpokladáme, že súbory header.tpl a footer.tpl budú zahrnuté na jednej poslednej stránke. Všimnite si tiež prítomnosť $site_path v odkaze na ochranu osobných údajov. Vo svojich šablónach vždy uvádzam úplnú cestu ku všetkým odkazom - ak by adresa URL odkazu bola len privacy.php, súbor päty by bol pevne zakódovaný do konkrétneho adresára.

Hlavná časť

Hlavná časť stránky obsahuje obsah hlavičky a päty. V podstate ide o hlavnú časť, ktorá obsahuje informácie, ktoré návštevníkov stránky zaujímajú. Hlavička vyzerá efektne, päta obsahuje užitočné informácie, no používatelia sa na stránku opakovane vracajú práve pre hlavnú časť stránky. Aj keď nemôžem poskytnúť žiadnu radu týkajúcu sa konkrétnej štruktúry stránky, šablóny, ako je tá vo výpise 9.7, výrazne zjednodušujú správu stránky.

Výpis 9.7. Príklad hlavnej časti stránky (index_body.tpl)

/tutorials.php">návody

články

skripty

kontaktovať

Vitajte v PHPRecipes. východiskové miesto pre PHP skripty, návody,

a informácie o gurmánskom varení!

Všetko spolu: hlavička, päta a telo

Moju náladu možno najlepšie vystihuje veta plukovníka „Hannibala“ Smitha (George Peppard) zo slávneho televízneho seriálu „A-Team“: „Milujem, keď veci zapadajú do seba.“ Zažívam niečo podobné, keď sa rôzne šablóny spájajú a tvoria kompletný webový dokument. Kombináciou troch sekcií dokumentu: header.tpl, index_body.tpl a footer.tpl môžete rýchlo vytvoriť jednoduchú stránku, ako je tá vo výpise 9.8.

Výpis 9.8. Vytvorenie stránky index.php zahrnutím niekoľkých súborov

// Súbor: index.php

// Cieľ: Domovská stránka PHPRecipes

// Tlač názvu

include("header.tpl");

// Výstup hlavnej časti

include("index_body.tpl");

// Zobrazenie päty

include("footer.tpl");

Tak ako? Tri jednoduché príkazy a máte hotovú stránku. Text poslednej strany je uvedený vo výpise 9.9.

Výpis 9.9. HTML stránka vytvorená vo výpise 9.8 (index.php)

PHPRecepty

23. augusta, 15:17 hod

tutoriály

články

skripty

kontakt

Vitajte v PHPRecipes, východiskovom mieste pre PHP skripty, návody,

a gurmánske tipy a recepty na varenie!

Copyright 2000 PHPRecipes. Všetky práva vyhradené.

kontakt |

vaše súkromie

Na obr. Obrázok 9.1 ukazuje, ako výsledná stránka vyzerá v prehliadači. Aj keď zvyčajne nepoužívam okraje tabuľky, tentoraz som ich nakreslil, aby na ilustrácii lepšie vynikli tri časti strany.

Ryža. 9.1. Vzhľad stránky zabudovanej vo výpise 9.8

Optimalizácia šablóny

V druhej (podľa mňa vhodnejšej) možnosti sú šablóny navrhnuté ako funkcie umiestnené v samostatnom súbore. To poskytuje dodatočnú štruktúru pre vaše šablóny. Tento súbor nazývam inicializačný súbor a ukladám doň ďalšie užitočné informácie. Keďže sme sa už pozreli na pomerne dlhé príklady hlavičky a päty, výpisy 9.10 a 9.11 boli mierne skrátené, aby ilustrovali novú myšlienku.

Výpis 9.10. Šablóna optimalizovanej lokality (site_init.tpl)

// Súbor: site_init.tpl

// Účel: Inicializačný súbor PhpRecipes

$site_name = "PHPRecepty";

$site_email = " [chránený e-mailom]";

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

function show_header($site_name) (

<? print $site_name: ?>

Toto je hlavička

funkcia zobraziť pätu()

Toto je päta

Výpis 9.11. Použitie inicializačného súboru

// Zahrnúť inicializačný súbor

include("site_init.tpl");

// Tlač názvu

show header($site_name);

// Obsah tela Toto sú niektoré informácie o tele

// Zobrazenie päty Show_footer();

Projekt: generátor stránok

Hoci väčšina webových stránok, ktoré som vytvoril, vygenerovala obsah hlavnej stránky na základe informácií načítaných z databázy, vždy sa nájde niekoľko stránok, ktoré ostanú prakticky nezmenené. Predovšetkým môžu zobrazovať informácie o vývojárskom tíme, kontaktné informácie, reklamu atď. Tieto „statické“ informácie zvyčajne ukladám do samostatného priečinka a pomocou PHP skriptu ich načítam, keď príde požiadavka. Samozrejme, máte otázku – ak ide o statickú informáciu, na čo slúži PHP skript? Prečo nenačítavať bežné HTML stránky? Výhodou PHP je, že môžete použiť šablóny a vkladať statické úryvky podľa potreby.

<а href = "/static.php?content=$content">Statický názov stránky

Začnime vytvorením statických stránok. Pre jednoduchosť sa obmedzím na tri stránky obsahujúce informácie o lokalite (Výpis 9.12), inzerciu (Výpis 9.13) a kontaktné informácie (Výpis 9.14).

Výpis 9.12. Informácie o stránke (about.html)

O PHPRecipes

Ktorý programátor nemieša celú noc programovanie s gurmánskymi koláčikmi. Tu na PHPRecipes. Sotva prejde noc bez toho, aby jeden z našich programátorov nezmiešal trochu HTML s chutným tanierom húb Portobello alebo dokonca Fondue. Preto sme sa rozhodli priniesť vám to najlepšie z toho, čo milujeme najviac: PHP a jedlo!

Správne, čitatelia. Návody, skriptá, suflé a ďalšie. 0 len v PHPRecipes.

Informácie o reklame

Bez ohľadu na to, či sa prídu naučiť najnovšie techniky PHP alebo si oprášiť ako

piecť kura, môžete sa staviť, že naši čitatelia majú rozhodovaciu právomoc. Oni sú Priemysel

profesionálov, ktorí rozhodujú o tom, čo ich spoločnosť nakupuje.

Pre informácie o reklame kontaktujte

">[chránený e-mailom].

Výpis 9.14. Kontaktné údaje (contact.html)

Kontaktuj nás

Máte tip na kódovanie?

Poznáte perfektnú polevu pre kandizované džemy?

Dajte nám vedieť! Kontaktujte tím na [chránený e-mailom].

Prejdime k vytvoreniu stránky static.php, ktorá zobrazuje požadované statické informácie. Tento súbor (pozri Výpis 9.15) obsahuje súčasti stránky našej lokality a inicializačný súbor site_init.tpl.

Výpis 9.15. Všeobecný výstup statických stránok (static.php)

// Súbor: static.php

// Účel: zobrazenie požadovaných statických stránok.

// UPOZORNENIE: toto predpokladá, že súbor je "site_init.tpl" a to je všetko

// statické súbory sú v rovnakom adresári.

// Načítanie funkcií a premenných include("site_init.tpl"):

// Zobrazenie hlavičky show_header($site_name);

// Výstup požadovaného obsahu include("$content.html"):

// Zobrazenie päty show footer();

Teraz je všetko pripravené na zostavenie hlavného scenára. Stačí ho zahrnúť na stránku

<а href = "static.php?content=about">Statický názov stránky

Informácie o reklame

Kontaktuj nás

Ak kliknete na ktorýkoľvek z týchto odkazov, váš prehliadač načíta príslušnú statickú stránku vloženú do static.php!

Výsledky

V tejto kapitole ste sa oboznámili s primárnou úlohou, pre ktorú bolo PHP vytvorené – dynamicky budovať webové stránky. Zvažovali sa tieto problémy:

  • spracovanie URL;
  • vytváranie dynamického obsahu;
  • zahrnutie a konštrukcia základných šablón.

Kapitola končí generátorom stránok, programom, ktorý načíta statické stránky do šablóny a uľahčuje podporu veľkého počtu statických stránok HTML.

Nasledujúca kapitola sa zameriava na používanie PHP v kombinácii s HTML formulármi na výrazné zlepšenie interaktivity vašej stránky. A potom - interakcia s databázami! Máte veľa zaujímavých vecí, ktoré sa musíte naučiť.


Svet bezplatných programov a užitočných tipov
2024 whatsappss.ru