PHP izmantošana lapās ar html paplašinājumu. Veidlapa jūsu izkārtojumā Kā lasīt html lapu php

Mēģinu izveidot pieteikšanās formu. Šis ir mans HTML formas kods

Personīgi es to ieguvu par ACVN.

4. un 5. punkts

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

Pirmkārt, šī kārtība ir nepareiza. Jūs sajaucat $_POST["parole"] un tad mēģinot izmantot svītras - pēc tās hashēm nebūs slīpsvītru. Tomēr, ja mēģināt neļaut cilvēkiem parolēs izmantot slīpsvītras (vai jebko citu), pirms virknes jaukšanas tās ir jānoņem.

Šo md5 nevajadzētu izmantot kā paroles jaukšanas algoritmu, kas ir atzīts par vāju un var būt rupjš spēks, lai radītu virkņu sadursmes daudz biežāk nekā nepieciešams.

Jā, tu obligāti glabājiet paroļu jaucējus vai "pirkstu nospiedumus", nevis pašas paroles, bet ideālā gadījumā jūs vēlaties šīs paroles sālīt un jaukt (vismaz sha1), nevis vienkārši iemest tās funkcijā md5().

Un meklējiet "paroles jaukšanas iestatījumu", izmantojot izvēlēto meklētājprogrammu.

6. punkts

SELECT id FROM $table WHERE lietotājvārds = "" . $lietotājvārds. "" un parole = "" . $parole. "";

Es pievienoju = kas trūka sākotnējā jautājumā, bet tas tā neatbilst jūsu pieprasījumā norādītajam lietotājvārdam un parolei...ja kādam izdevās ievadīt jūsu lietotājvārdu SQL, parole nekad netiks pārbaudīta. Iepazīstināt:

SELECT user.id FROM user WHERE user.username = "fred" VAI 1 = 1 -- UN user.password = "abc123"

Labāk ir izvēlēties pirkstu nospiedumu lietotāja ID un paroli no datu bāzes un pēc tam novērtēt paroli lietojumprogrammā, nevis uzticēties datu bāzes līmeņa paroles pārbaudei. Tas nozīmē arī to, ka varat izmantot īpašu jaukšanas un sālīšanas algoritmu pašā lietotnē, lai pārbaudītu savas paroles.

7. punkts

$_SESSION["lietotājs"] = $_POST["lietotājvārds"];

Vai sesijā tiek saglabāts tikai lietotājvārds? To nekādā veidā nevajadzētu izmantot kā "pieteikšanās verificētāju", it īpaši, ja jūsu sesijā (acīmredzot) nav nekā, kas novērstu nolaupīšanu.

Sesijas ID var viegli izsūknēt no sīkfaila reāllaikā, un tas ir viss, kas būtu nepieciešams, lai “aizņemtos” kāda cita lietotājvārdu. Jums vajadzētu vismaz mēģināt samazināt sesijas nolaupīšanas iespējamību, saistot lietotāja IP adresi, UserAgent virkni vai kādu citu salīdzinoši statisku datu kombināciju, ko var salīdzināt ar katru lapu... tomēr gandrīz jebkurai pieejai ir trūkumi (jo īpaši , kā jau esmu atklājis, ja jums ir apmeklētāji, kas izmanto AOL), taču varat izveidot iespējamu 99% efektīvu pirkstu nospiedumu sesiju, lai samazinātu nolaupīšanu ar ļoti mazu iespēju, ka lietotāja sesija tiks kļūdaini atiestatīta.

Ideālā gadījumā jūs varētu izveidot arī sesijas marķieri, lai mazinātu CSRF uzbrukumi kad lietotājam datu bāzē ir jāveic "priviliģēta" darbība (jāatjaunina savi dati vai kas cits). Tokens var būt pilnīgi nejaušs un unikāls kods, kas tiek glabāts datu bāzē un/vai cepums SSL, kad lietotājs piesakās (ar nosacījumu, ka lietotājs nevar veikt nekādas darbības, kas atjaunina datu bāzi ārpus HTTPS, jo tas vienkārši pārsūtīs datus skaidrā tekstā pa internetu - kas būtu slikta ideja).

Marķieris tiek ievietots slēptā veidlapas laukā jebkurai/visām veidlapām un tiek pārbaudīta ar sīkfailā (vai sesijā vai datubāzē) saglabāto vērtību, kad šī veidlapa tiek iesniegta. Tas nodrošina, ka personai, kas iesniedz veidlapu, jūsu vietnē būs vismaz tiešraides sesija.

Var būt vairākas problēmas.

Pirmkārt, jūsu $match paziņojumā trūkst paroles vienlīdzības operatora:

$match = "SELECT id FROM $table WHERE lietotājvārds = "".$lietotājvārds."" un parole"".$parole."";";

Vajadzētu būt:

$match = "SELECT id FROM $table WHERE lietotājvārds = "".$lietotājvārds."" un parole = "".$parole."";";

Otrkārt, jūs ievietojat paroli datu bāzē pēc tā izmantošana, izmantojot md5?

Ja nē, jūsu pieprasījums mēģina saskaņot md5 (paroli) ar paroli.

Veidojot pat personīgo vietni, ne visi var nodrošināt visu iespējamie veidi tā turpmāka izmantošana. Ir ļoti svarīgi sagatavot augsni turpmākai vietnes attīstībai. Ja iepriekš esat izveidojis vietni un pēc noklusējuma visām lapām piešķīris paplašinājumu .html un tikai pēc tam nolēmis izmantot PHP, tad lasiet tālāk.

Iepriekš, lai izmantotu SSI, vietņu lapu nosaukumiem bija jābeidzas ar paplašinājumu .shtml, taču mūsdienās lielākā daļa interneta serveru ir konfigurēti tā, lai SSI varētu izmantot lapās ar paplašinājumu .html, kas ir diezgan ērti. PHP ir pavisam cits stāsts – .php paplašinājums ir noklusējuma paplašinājums. Vietņu izstrādātāji jau iepriekš zinot, kas tiks izmantots dotā valoda programmējot, kalnu akmenim tiek piešķirts pareizais paplašinājums.

Bet ko darīt, ja visas lapas beidzas ar .html paplašinājumu?

Aizstāt HTML paplašinājumu ar PHP

To var izdarīt vairākos veidos. Visredzamākais veids ir piešķirt visām lapām .php paplašinājumu vai mainīt esošos paplašinājumus (.html, .shtml utt.). Šai metodei ir trūkumi. Piemēram, jau indeksētās lapas ar paplašinājumu .html būs jāindeksē vēlreiz meklētājprogrammas. Vai vēl ļaunāk – viss arejas saites, kas tieši novirza uz noteiktu lapu, būs nederīgs. Un jums būs jāpaziņo katras vietnes īpašniekiem par šīm izmaiņām un katrai lapai jāizveido cita lapa ar 301 kļūdu. Protams, viena paplašinājuma nomaiņa pret citu ir pieņemama, bet ja vietnei jau ir daudz lapu un daudzas saites uz dažādām lapām no citām vietnēm?

Apzināta iemesla dēļ Šis brīdis visas šīs vietnes lapas beidzas ar html paplašinājumu, un es negribēju veikt iepriekš minētās izmaiņas, tādējādi radot sev nevajadzīgas grūtības.

To var izdarīt citā veidā. Ja serveris, kas mitina vietni, atbalsta mod_rewrite (vairumā gadījumu tas atbalsta) un ir piekļuve .htaccess failam, šim failam varat pievienot šādas rindiņas:

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

Pievienojot šo kodu failam .htaccess , jums nav jāuztraucas. Pateicoties Apache brīnumiem, visas pieprasītās neesošās lapas ar .html paplašinājumu tiks automātiski aizstātas ar paplašinājumu .php. Bet šī metode nav vienīgā. Tajā pašā .htaccess failā varat ierakstīt tālāk norādīto.

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

Manuprāt, visveiksmīgākais veids. Tas padara HTML lapas vienādas ar PHP lapām, kas nozīmē, ka visas PHP funkcijas tagad var izmantot lapās ar HTML paplašinājumu. Ja jums nav piekļuves .htaccess failam, varat uzrakstīt vēstuli hostinga uzņēmumam un pieklājīgi lūgt administratoriem reģistrēties Apache konfigurācijas(httpd.conf) vietnei nepieciešamo vērtību.

Starp citu, ja pirms tam vietne izmantoja SSI šādi:

tad jaunajā PHP stāvoklī šis kods ir jāaizstāj ar:

Tas arī viss, es domāju, ka palīdzēs kāda no iepriekšminētajām metodēm.

PHP ir iegulta servera puses programmēšanas valoda. Liela daļa tās sintakses ir aizgūta no C, Java un Perl. Un arī pievienoja pāris unikālas īpašības tikai PHP funkcijas. Šīs valodas galvenais mērķis ir izveidot dinamiski ģenerētas PHP HTML lapas.

PHP uz HTML

Veidojot sarežģītas tīmekļa lapas, jūs saskarsities ar nepieciešamību apvienot PHP un HTML, lai veiktu konkrētus uzdevumus. No pirmā acu uzmetiena tas var šķist sarežģīti, jo PHP un HTML ir divas neatkarīgas disciplīnas, taču tas tā nav. PHP ir paredzēts mijiedarbībai ar HTML, un tā kodu var iekļaut lapas marķējumā.

PHP kods ir iekļauts HTML lapās, izmantojot īpašus tagus. Kad lietotājs atver lapu, serveris apstrādā PHP kodu un pēc tam nosūta apstrādes rezultātu (nevis PHP kods) pārlūkprogrammā.

HTML un PHP ir diezgan viegli apvienot. Jebkura PHP skripta daļa ārpus tagiemPHP kompilators to ignorē un nodod tieši pārlūkprogrammai. Ja skatāties tālāk redzamo piemēru, varat redzēt, ka pilns PHP skripts varētu izskatīties šādi:

Sveiki šodien.

Iepriekš minētais kods ir vienkāršs HTML ar mazumiņu PHP fragments kas izvada Šodienas datums izmantojot iebūvēto datuma funkciju. Šajā gadījumā PHP kompilators ignorēs visu HTML un pārsūtīs uz pārlūkprogrammu nemainītā veidā.

PHP integrēšana HTML patiešām ir ļoti vienkārša. Atcerieties, ka skripts ir HTML lapa ar kādu PHP kodu. Varat izveidot skriptu, kurā būs tikai HTML (bez tagiem), un tas darbosies labi.

Uzlabotas metodes:

  • Izvēlnes vienums

un rezultāts:

PHP uz HTML, izmantojot short_open_tag

Ja pirms HTML ievietošanas PHP ir nepieciešams kods padarīt pēc iespējas īsāku, varat izmantot short_tags. Tā rezultātā jums nebūs jāievadashort_tags"Ar" Izslēgts"uz" Ieslēgts". Lai gan lielākajai daļai serveru šī opcija jau ir iespējota, vienmēr vislabāk to pārbaudīt manuāli. Problēma, kas var rasties, izmantojot īsus tagus, ir konflikts, izmantojot XML. XML sintakses izteiksmē

PHP uz HTML, izmantojot tagu short__

Sveiki, šodien ir.

Ņemiet vērā: ja vēlaties izveidot vietni, kas ir saderīga ar pēc iespējas vairāk platformu, jums nevajadzētu paļauties uz short_tags, ievietojot PHP HTML.

HTML uz PHP, izmantojot atbalsi

Vēl viens veids, kā integrēt HTML PHP failā, ir komanda echo:.

Tas ietekmēs iezīmēšanas izcelšanu lielākajā daļā redaktoru. Tāpēc ir nepieciešams izvēlēties visu dubultpēdiņas HTML kodā, izmantojot atpakaļvērstās slīpsvītru.

PHP uz HTML — failu paplašinājumi

Standarta konfigurētam tīmekļa serverim:

AddHandler cgi-script .html .htm

Tīmekļa serverim, kurā darbojas FastCGI:

AddHandler fcgid-script .html .htm

HTML uz PHP

HTML kodu var izmantot arī PHP skriptos. Viss, kas jums jādara, ir, atverot lapu, izmantojot PHP, mainīt atvērto lapu secību HTML tagi un PHP.

HTML izmantošana PHP:

Personīgā INFO

Vārds:
Uzvārds:
"; ?>

Šādā veidā PHP ievietošana HTML ļauj izmantot daudz mazāk koda. Šeit mēs globāli izmantojam $PHP_SELF, kas ļauj vienā failā izmantot zem tām norādītās lauku vērtības. Parasti šādām formām tiek izveidoti divi faili: pirmais ir pati HTML forma, bet otrais ir PHP fails, kas veic apstrādi.

Ja jums jau ir sarežģītas PHP lietojumprogrammas, kurās tiek izmantots liels skaits failu, un vēlaties to vienkāršot, šī metode var palīdzēt.

Šī publikācija ir draudzīgas projekta komandas sagatavotā raksta “PHP in HTML” tulkojums

>

Php iesācējiem

Šajā lapā mēs centīsimies izskaidrot dinamiskas vietnes veidošanas loģiku. Php ir servera izpildīts skripts. Ko tas nozīmē? Serverī ir uzstādīts īpašs tulks, kas saprot noteiktas valodas konstrukcijas. Pats php fails, tas nolasa to rindiņu pa rindiņai, it kā skrienot tam cauri no augšas uz leju. Ja tā atrod, piemēram, vārdu Izeja, tad tas apstājas un neko tālāk nelasa, bet izpilda, piemēram, to, ko atrada pirms šī vārda drukāt"Lieliski!" Drukās Lieliski!

drukāt"Lieliski!";
Izeja ;
?>

Šis ir visvienkāršākais php fails, taču patiesībā jums ir jātiek galā ar sarežģītu php failu. Vietnē ir daudz lapu, mums šobrīd ir 24 tūkstoši, mums būtu jāraksta tikpat daudz php failu, vai tikai html faili. Bet php ļauj to visu izdarīt vienā izpildāmā failā. Tas ir, mums ir jāsakārto saites pašā šajā failā, piemēram, ja tas, dariet to, ja tas, dariet to. Php ļauj ļoti labi sakārtot saites. Vispārējā shēma ir šāda:

Jūs redzat skriptā, kas nodalījumiem patīk
ja tad)
tad mēs to darām
}

Kas tad notika, ja tika izpildīts pirmais nosacījums, tas ir $uslovie 1== "jā", tad mēs izpildām skriptu iekavās ( ), kas attiecas uz šo skripta sadaļu, tad šajā sadaļā ir Izeja- šeit programma beidzas. Tas ir, ar nodalījumu palīdzību mēs varam sadalīt php failu tā sastāvdaļās. Un kāds ir nosacījums - if($uslovie == "jā")??? Šis tīkls ir tā pati saite, šajā gadījumā kaut kas tiks izpildīts, ja mainīgais $uslovie būs vienādi .

Piešķirsim failam nosaukumu all.php. Lai komandrindā sakārtotu saites uz to, vienkārši pievienojiet all.php?uslovie=yes. Ja komandrindā redzat jautājuma zīmi, tad šajā gadījumā šī ir saite, $uslovie == "jā". Pēc tam mēs izveidosim html failu, kurā mēs ierakstīsim saites uz mūsu izpildāmo skriptu.



Jauna lapa


uslovie1=jā" >Pirmā saite
uslovie2=jā" >Otrā saite

Jūs redzat divas saites. Noklikšķinot uz saitēm, fails tiks izpildīts all.php, un pirmajā gadījumā skriptam tiks paziņots, ka mainīgais $uslovie 1== jā, un otrajā gadījumā $uslovie 2== jā. No pirmās saites pirmais nodalījums tiks pabeigts un programma apstāsies, izmantojot otro saiti programma darbosies caur pirmo nodalījumu un kaut kas no otrā nodalījuma tiks izpildīts(Skatīt iepriekš). Lūdzu, ņemiet vērā, ka saitēs dolāra zīme nav ierakstīta, programma tos padara par mainīgajiem, nododot tos skriptam, tas ir, nododot tos komandrindai.

Tagad mēs zinām, kā sakārtot saites uz php failu, kā to sadalīt sadaļās un kā sakārtot saites html tekstā uz mūsu failu. Bet, ir vēl viena lieta... Fakts ir tāds, ka, ja jūs organizējat vietni šādā veidā, tad sākotnējā formā, kad nav ļoti daudz saišu, jūs neredzēsit problēmas. Pieņemsim, ka ir 10 nodalījumi, tie visi mierīgi ietilps vienā failā. Bet, ja ir daudz saišu, piemēram, mums ir 24 000 lapas, tad principā nav iespējams visas sadaļas ievietot vienā php failā. Jūs pats tiksit spīdzināts, meklējot to vai citu nodalījumu vienā failā, lai, piemēram, to mainītu. Turklāt fails būs ļoti liela izmēra, mūsu all.php aizņemtu 1MB. Turklāt jums ir jāsaprot vēl viena lieta: daudzos serveros ir izpildāmo failu lieluma ierobežojums (piemēram, 50 Kb); ja tas tiek pārsniegts, šāds fails tiek ignorēts un netiek izpildīts. Saistībā ar šiem aprēķiniem mēs samazinājām galvenā faila lielumu līdz 8 KB, lai gan tā izpildes slodze ir 1 MB. Kā to izdarīt? Php nodrošina lielisku iespēju sadalīt php failu gabalos, izmantojot komandu iekļauts....

Tagad kļūst skaidrs, kā mēs samazinājām savu galveno failu līdz 8Kb, jo visu pārējo iekļauto failu kopējais izmērs ir 1 MB, un mēs tos paslēpām atsevišķā mapē un savienojām pēc vajadzības, tas ir, atkarībā no saitēm komandā līniju. Komanda include savieno failus tā, it kā tie būtu rakstīti galvenajā skriptā, tāpēc, ja ievietotajos failos piekļūsit datu bāzēm vai html failiem, tad skaitīšana būs jāveic precīzi no galvenā faila, mūsu gadījumā all.php. Piemēram, ir mape html, tajā ir fails one.htm kā to izdrukāt. Tad one.php fails izskatās šādi:

ietver"html/one.htm";
drukāt
Izeja ;
?>

Esam izdrukājuši saturu one.htm, plus izdrukāts Šī ir programmas pirmā sadaļa un apturēja programmu. Tas ir, pamatojoties uz html teoriju, mums būtu jāiekļauj fails one.htm Tātad: iekļaut "../html/one.htm", kopš mapes html atrodas vienu līmeni virs faila viens.php. Bet php tas tā nav, komanda include vienkārši pievieno skriptam kodu un tas kļūst par tā neatņemamu sastāvdaļu, kas nozīmē, ka visas saites tiek skaitītas attiecībā pret galveno failu, nevis iekļautās.



Jauna lapa


uslovie1=jā" >Tikai pirmā saite
uslovie1=jā& tēlot=jā" >
uslovie2=jā" >Tikai otrā saite
uslovie2=jā& tēlot=yes" >Otrā saite, bet arī act=yes

Tad php fails viens.php pārveidot to par šo:

ja($act == "jā")(
ietver"html/one.htm";
Izeja ;
}
drukāt"Šī ir programmas pirmā sadaļa";
Izeja ;
?>

Ja noklikšķinājāt uz saites uslovie1=jā" > Vienkārši Pirmā saite tiks izdrukāta Šī ir programmas pirmā sadaļa, ja noklikšķinājāt uz saites uslovie1=jā& tēlot=yes" >Pirmā saite, bet arī act=yes, tad faila saturs tiks izdrukāts html/one.htm, un programma tiks apturēta.

403 KB

Lejupielādējiet arhīvu, tas ir izveidots tā, ka jums nav jāzina Php, jums ir jāzina tikai HTML.

Jā.))

Man būtu vienkāršāk uztaisīt index.php kopiju un pārdēvēt to, piemēram, uz contact.php un tad nomainīt vidu uz middle2 ar jaunu saturu.

Tējkanna Es esmu nedaudz php


Es joprojām nesaprotu.
Man ir vietne.
indeksa fails saknē. Citā mapē ir faili, piemēram, augšējā vidējā poga.

Ir ēdienkarte. Es vēlos, lai, noklikšķinot uz izvēlnes vienuma, tiktu parādīts cits vidus.

Kā to izdarīt un kur likt???

Atbilde: nu kur. Tas ir ļoti vienkārši, tas ir par izvēlnes skripta izveidi menus.html


kaut kas bez masīva $_GET ["uslovie"] ; tavi piemēri man neder

Atbilde: jūsu serverī ir atspējots globālo mainīgo atbalsts, ja tā, tad varat ievietot rindiņu visu savu skriptu sākumā

ja (isset($_GET )) ( katram($_GET kā $key =>$val ) ( $$key =$val ; ) )

tad jūs varat izmantot mūsu skriptus, neizmantojot $_GET [ "uslovie" ] , bet vienkārši ielieciet $uslovie


Diezgan interesants resurss jums ir..
Paldies par informāciju.

Atbilde:


Tu jau sen solīji papētīt kā top PHP mājaslapa.Kāpēc neturēji solījumu?Varbūt uzrakstīt kādu rakstu par šo tēmu (un ja lietosi arī MySQL,tad viss būs kārtībā).

Atbilde:


Ļoti jā. Tikai, lūk, pārāk.htm vietā, iespējams, ir nepieciešami divi.htm
Nav svarīgi, bet lai lietas būtu kārtībā))

Atbilde:


Pastāstiet man, kur es varu lasīt un iemācīties no galvas visus operatorus un PHP kodus, piemēram: atbalss , ietver , cits , ja , drukāt , katram , isset utt., ko tie nozīmē un kam tie kalpo?

Atbilde: Aleksandr, es mēnesi biju atvaļinājumā, turklāt pašlaik pabeidzu visas vietnes jaunu versiju. Tiklīdz pabeigšu, es izveidošu nelielu lapu par šo.


Mobilesfinks, kamēr gatavojos pārinstalēt php 4, jau bija izlaista jauna vietnes versija php 5. Un nekādu problēmu nebija, viss darbojās %tashus%

Atbilde:


Sveiki!

Pastāstiet man, lūdzu, kā panākt, lai loga augšdaļā redzamais NOSAUKUMS tiktu mainīts katrā lapā: tas ir, " Jauna lapa" ...

Piemēram, ja sekojat saitei "1", tad logam jābūt sauktam "Pirmā sadaļa. Matemātika" - tas ir, HTML kodam jābūt Pirmā sadaļa. Matemātika...
Un, ja saite ir, piemēram, "2", tad logam jābūt sauktam "Otrā sadaļa. Ģeogrāfija" - tas ir, HTML kodam jābūt Otrā sadaļa. Ģeogrāfija...

Kā es varu to mainīt, izmantojot PHP?

Atbilde: html.html


Mums jāinstalē PHP4 Denverai. Instalācijas skripts pats veiks visas izmaiņas.
Pēc tam mapē, kurā ir izveidotais fails all.php
failu ar nosaukumu ".htaccess" un pievienojiet tam rindiņu
Lappuse: 1
Pašreizējā lapa: 1 Kopējais ziņojumu skaits: 22

Daudzi lasītāji jebkurā grāmatā par datoriem pārlasa visu, kas uzreiz neinteresē, un pāriet uz to, kas viņiem patiešām ir nepieciešams. gribu zināt. Personīgi es to daru. Tomēr tur nav nekā slikta – reti ir tehniskas grāmatas, kuras jāizlasa no vāka līdz vākam. Vai varbūt jūs to darījāt — izlaidāt sākotnējās astoņas nodaļas un izvēlējāties šo nodaļu, jo tai bija visinteresantākais nosaukums? Un kurš gan vēlas tērēt laiku detaļām, kad darbā deg kārtējais projekts?

Par laimi, šāda steiga netraucēs pareizi apgūt materiālu grāmatas otrajā daļā, kas veltīta PHP izmantošanai vietņu veidošanai un mijiedarbībai ar tīmekli. Šajā nodaļā jūs uzzināsiet, kā viegli modificēt tīmekļa lapu saturu un pārvietoties tīmeklī, izmantojot saites un dažādas standarta funkcijas. Nākamā nodaļa papildinās prezentēto materiālu - tajā detalizēti apskatīti mijiedarbības līdzekļi ar lietotāju HTML formās.11.nodaļā aprakstīta saskarnes ar datu bāzēm organizācija. Atlikušajās otrās daļas nodaļās ir apskatīti netriviālie tīmekļa programmēšanas aspekti PHP.

Tomēr jāatceras, ka materiāls 1. daļā absolūti nepieciešams normālām PHP zināšanām. Tiek pieņemts, ka esat jau izlasījis 1. daļu, tāpēc piemēros tiks izmantoti daudzi iepriekš aprakstītie jēdzieni. Tātad, ja jūs izpētīsit daļu no grāmatas, jums ik pa laikam būs jāatgriežas iepriekšējās nodaļās un jāpanāk.

Vienkāršas saites

<а href = "date.php">

$link = "datums.php";

drukāt "<а href = \"$link\">Skatīt šodienas datumu
\n"

Jūs droši vien domājat, kāpēc saites kodā pirms pēdiņām (") ir atpakaļvērstā slīpsvītra (\)? Fakts ir tāds, ka PHP pēdiņas ir īpašas rakstzīmes un tiek izmantotas kā rindu atdalītāji. Tāpēc pēdiņas ir burti virknēs, tām jābūt aizsargātām. .

Ja jūs kaitina nepieciešamība izvairīties no pēdiņām, vienkārši iespējojiet režīmu magic_quotes_gpc savā php.ini failā. Rezultāts ir visi apostrofi, pēdiņas, slīpsvītras un nulles rakstzīmes. tekstā tiek automātiski izspiesti!

Izstrādāsim doto piemēru. Lai pārlūkprogrammā ātri parādītu saišu sarakstu, varat izmantot masīvu:

// Izveidojiet sadaļu masīvu

$contents - array("pamācības", "raksti", "skripti", "kontaktpersona");

// Atkārtojiet un secīgi parādiet katru masīva elementu

priekš ($i = 0; $i< sizeof($contents; $i++)

drukāt " ".$contents[$i]."
\n";

// - īpašs apzīmējums marķiera punktam endfor;

Failu komponenti (veidnes)

Mēs esam nonākuši pie vienas no manām iecienītākajām PHP funkcijām. Veidne (saistībā ar tīmekļa programmēšanu) ir daļa no tīmekļa dokumenta, ko izmantosit vairākās lapās. Veidnes, piemēram, PHP funkcijas, pasargā jūs no nevajadzīgas lapas satura un programmas koda kopēšanas/ielīmēšanas. Palielinoties vietnes mērogam, palielinās veidņu nozīme, jo tās ļauj viegli un ātri veikt izmaiņas visas vietnes līmenī. Šajā sadaļā tiks aprakstītas dažas iespējas, kas paveras, izmantojot vienkāršas veidnes.

Parasti parastās satura/koda daļas (t.i., veidnes) tiek saglabātas atsevišķos failos. Veidojot tīmekļa dokumentu, jūs vienkārši "iekļaujat" šos failus attiecīgajās lapas vietās. PHP tam ir divas funkcijas: include() un request().

iekļaut() un prasīt()

Viens no izcilākajiem PHP aspektiem ir iespēja izveidot veidnes un programmēšanas bibliotēkas un pēc tam ievietot tās jaunos skriptos. Bibliotēku izmantošana ietaupa laiku un pūles, izmantojot kopīgu funkcionalitāti dažādās vietnēs. Lasītāji ar

ir pieredze programmēšanas citās valodās (piemēram, C, C++ vai Java), kā arī ir iepazinies ar funkciju bibliotēku jēdzienu un to izmantošanu programmās, lai paplašinātu funkcionalitāti.

Viena vai vairāku failu iekļaušana skriptā tiek veikta, izmantojot standarta PHP funkcijas request() un include(). Kā tiks parādīts nākamajā sadaļā, katra no šīm funkcijām ir piemērojama konkrētā situācijā.

Funkcijas

PHP ir četras funkcijas failu iekļaušanai PHP skriptos:

  • iekļaut();
  • iekļaut_vienreiz();
  • prasīt ();
  • prasīt_vienreiz().

Neskatoties uz nosaukumu līdzību, šīs funkcijas atrisina dažādas problēmas.

Funkcija include() ietver faila saturu skriptā. Funkcijas include() sintakse ir:

iekļaut(faila fails]

Funkcijai include() ir viena interesanta iezīme – to var izpildīt nosacīti. Piemēram, ja komandas if komandu blokā ir iekļauts funkcijas izsaukums. tad fails tiek iekļauts programmā tikai tad, ja nosacījums i f ir patiess. Ja nosacītā komandā tiek izmantota funkcija includeO, tad tā obligāti jāiekļauj krokainās lencēs vai alternatīvos norobežojumos. Salīdziniet sintakses atšķirības starp sarakstiem 9.1 un 9.2.

Uzskaitījums 9.1. Nepareiza iekļauta() izmantošana

ja (some_conditional)

include("text91a.txt"); cits

include("text91b.txt");

Uzskaitījums 9.2. Pareiza include() izmantošana

ja (some_conditional):

include("text91a.txt");

include("text91b.txt");

Viss PHP kods iekļautajā failā Obligāti atrodas PHP tagos. Nedomājiet, ka vienkārši saglabājot PHP komandu failā, tiks nodrošināta tā pareiza apstrāde:

Tā vietā jums ir jāietver komanda atbilstošos tagos, kā parādīts šajā piemērā:

drukāt "šis ir nederīgs iekļaušanas fails";

Funkcija include_once() dara to pašu, ko include(), ar vienu izņēmumu: pirms faila iekļaušanas programmā tā pārbauda, ​​vai tas jau ir iekļauts. Ja fails jau ir iekļauts, izsaukums include_once() tiek ignorēts, un, ja nē, notiek standarta faila iekļaušana. Visos citos aspektos include_once() neatšķiras no include(). Funkcijas include_once() sintakse ir:

iekļaut_vienreiz(faila fails)

Kopumā prasība() funkcija ir līdzīga include() — tā ietver arī veidni failā, kurā atrodas request() izsaukums. Funkcijas request() sintakse ir:

pieprasīt (faila fails)

Tomēr ir viena būtiska atšķirība starp prasīt() un include() funkcijām. Fails, kas norādīts ar prasību(), ir iekļauts skriptā neatkarīgi no prasīt() atrašanās vietas skriptā. Piemēram, ja izsaucat requi re() if blokā, ja nosacījums ir nepatiess, fails joprojām tiks iekļauts skriptā!

Daudzās situācijās ir ērti izveidot failu ar mainīgajiem lielumiem un citu informāciju, kas tiek izmantota visā vietnē, un pēc tam to iekļaut pēc vajadzības. Lai gan šī faila nosaukums ir patvaļīgs, es to parasti saucu par init.tpl (saīsinājums no "initializaion.template"). 9.3. saraksts parāda, kā izskatās ļoti vienkāršs fails init.tpl. Sarakstā 9.4 faila init.tpl saturs ir iekļauts skriptā ar request().

Uzskaitījums 9.3. Inicializācijas faila piemērs

$site_title = "PHP receptes";!}

$contact_email = " [aizsargāts ar e-pastu]";

$contact_name = "WJ Gilmore";

Uzskaitījums 9.4. Izmantojot failu init.tpl

<? print $site_title; ?>

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

URL nosūtīšana, izsaucot request(), ir atļauta tikai tad, ja ir iespējots režīms “URL fopen wrappers” (šis režīms ir iespējots pēc noklusējuma).

Vietnes izmēram palielinoties, var izrādīties, ka daži faili skriptā ir iekļauti vairākas reizes. Dažreiz tas nerada problēmas, bet dažos gadījumos faila pievienošana atkal izraisa mainīto mainīgo vērtību atiestatīšanu. Ja iekļautajā failā ir definētas funkcijas, var rasties nosaukumu konflikti. To sakot, mēs nonākam pie nākamās funkcijas - request_once ().

Funkcija request_once() nodrošina, ka fails tiek iekļauts skriptā tikai vienu reizi. Kad tiek izsaukts requi re_once(), visi turpmākie mēģinājumi iekļaut to pašu failu tiek ignorēti. Funkcijas request_once() sintakse ir:

Jūs, visticamāk, sāksit izmantot failu iekļaušanas līdzekļus biežāk, kad jūsu tīmekļa lietojumprogrammas sāks augt. Šīs funkcijas bieži parādās šīs grāmatas piemēros, lai samazinātu koda dublēšanos. Pirmie piemēri ir apskatīti nākamajā sadaļā par pamata veidņu konstruēšanas principiem.

Celtniecības sastāvdaļas

Definējot tipiskas tīmekļa lapas struktūru, es to parasti sadalu trīs daļās: galvenē, pamattekstā un kājenē. Parasti vairumam pareizi organizētu vietņu ir galvene, kas praktiski nemainās; galvenajā daļā tiek parādīts pieprasītais vietnes saturs, tāpēc tas bieži mainās; Visbeidzot, kājenē ir informācija par autortiesībām un navigācijas saites. Kājene, tāpat kā galvene, parasti paliek nemainīga. Nepārprotiet – es necenšos apspiest jūsu radošās tieksmes. Esmu redzējis daudzas lieliskas vietnes, kas neievēro šos principus. Es tikai cenšos izdomāt vispārēju struktūru, kas varētu kalpot par atspēriena punktu turpmākajam darbam.

Virsraksts

Galvenes fails (piemēram, sarakstā 9.5) tiek parādīts gandrīz katrā no manām vietnēm, kurās ir iespējota PHP. Šis fails satur

informācija par visu vietni, piemēram, nosaukums, kontaktinformācija un daži HTML lapas koda komponenti.

Uzskaitījums 9.5. Galvenes faila piemērs

// Fails: header.tpl

// Mērķis: galvenes fails vietnei PhpRecipes.

$site_name = "PHPRreceptes";

$site_email= " [aizsargāts ar e-pastu]";

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

<? print $site_name; ?>

// Drukāt pašreizējo datumu un laiku

drukāt datumu ("F d, h:i a");

Diezgan bieži apmeklētāju piekļuve iekļautajiem failiem ir ierobežota, īpaši, ja šie faili satur sensitīvu informāciju (piemēram, paroles). Programmā Apache varat novērst noteiktu failu skatīšanu, rediģējot http.conf vai htaccess failus. Tālāk sniegtajā piemērā ir parādīts, kā neļaut skatīt visus failus ar paplašinājumu .tpl:

Pasūtījums atļaut, liegt

Atļaut no 127.0.0.1

PHP un vietņu drošības jautājumi ir detalizēti apskatīti 16. nodaļā.

Skrējiena tituls

Kājene parasti ir informācija, kas atrodas vietnes lapu apakšā — kontaktinformācija, saites un informācija par autortiesībām. Šo informāciju var ievietot atsevišķā failā un iekļaut kā veidni tāpat kā galveni. Pieņemsim, ka, sākoties jaunajam gadam, jums ir jāmaina informācija par autortiesībām un jāveido formā “Autortiesības © 2000-2001”. Ir divas iespējas: Pavadiet Ziemassvētku vakaru, izmisīgi rediģējot simtiem statisku lapu. vai izmantojiet tādu veidni, kāda parādīta sarakstā 9.6. Viena vienkārša izmaiņa, un jūs varat atgriezties savā brīvdienu rutīnā.

Uzskaitījums 9.6. Kājenes faila piemērs (footer.tpl)

kontaktpersona |

jūsu privātumu

Ņemiet vērā globālā mainīgā $site_email izmantošanu kājenes failā. Šī mainīgā vērtība ir visas lapas mēroga, un mēs pieņemam, ka header.tpl un footer.tpl faili tiks iekļauti vienā pēdējā lapā. Ievērojiet arī $site_path klātbūtni saitē Privātums. Es savās veidnēs vienmēr iekļauju visu ceļu uz visām saitēm — ja saites URL būtu tikai privacy.php, kājenes fails tiktu iekodēts noteiktā direktorijā.

Galvenā daļa

Lapas galvenajā daļā ir galvenes un kājenes saturs. Būtībā tā ir galvenā daļa, kas satur vietnes apmeklētājus interesējošo informāciju. Galvene izskatās iespaidīga, kājene satur noderīgu informāciju, taču tieši galvenajā lapas daļā lietotāji atkal un atkal atgriežas vietnē. Lai gan es nevaru sniegt padomu par konkrētu lapas struktūru, tādas veidnes kā sarakstā 9.7 ievērojami vienkāršo lapas administrēšanu.

Uzskaitījums 9.7. Lapas galvenās daļas piemērs (index_body.tpl)

/tutorials.php">pamācības

raksti

skripti

kontaktpersona

Laipni lūdzam PHPRecipes. sākuma vieta PHP skriptiem, pamācībām,

un informācija par gardēžu ēdienu gatavošanu!

Viss kopā: galvene, kājene un pamatteksts

Iespējams, manu noskaņojumu vislabāk raksturo pulkveža “Hannibal” Smita (Džordžs Pepards) rindiņa no slavenā seriāla “The A-Team”: “Man patīk, kad lietas nostājas savās vietās.” Es piedzīvoju kaut ko līdzīgu, kad dažādas veidnes tiek apvienotas, lai izveidotu pilnīgu tīmekļa dokumentu. Apvienojot trīs dokumenta sadaļas: header.tpl, index_body.tpl un footer.tpl, varat ātri izveidot vienkāršu lapu, kāda ir parādīta sarakstā 9.8.

Uzskaitījums 9.8. Index.php lapas izveide, iekļaujot vairākus failus

// Fails: index.php

// Galamērķis: PHPRecipes mājas lapa

// Drukāt virsrakstu

include("header.tpl");

// Izvada galveno daļu

include("index_body.tpl");

// Parādīt kājeni

include("footer.tpl");

Tā kā? Trīs vienkāršas komandas, un jums ir gatava lapa. Pēdējās lapas teksts ir parādīts sarakstā 9.9.

Uzskaitījums 9.9. HTML lapa, kas iebūvēta sarakstā 9.8 (index.php)

PHPReceptes

23. augusts, 15:17

pamācības

rakstus

skripti

kontaktpersona

Laipni lūdzam PHPRecipes, PHP skriptu, pamācību sākumvieta,

un gardēžu gatavošanas padomi un receptes!

Autortiesības 2000 PHPRecipes. Visas tiesības aizsargātas.

kontaktpersona |

jūsu privātumu

Attēlā 9.1. attēlā parādīts, kā iegūtā lapa izskatās pārlūkprogrammā. Lai gan es parasti neizmantoju tabulas apmales, šoreiz es tās uzzīmēju, lai ilustrācijā skaidrāk izceltos trīs lapas daļas.

Rīsi. 9.1. Sarakstā iebūvētās lapas izskats 9.8

Veidnes optimizācija

Otrajā (manuprāt, vēlamāk) variantā veidnes ir veidotas kā funkcijas, kas atrodas atsevišķā failā. Tas nodrošina papildu struktūru jūsu veidnēm. Es saucu šo failu par inicializācijas failu un saglabāju tajā citu noderīgu informāciju. Tā kā mēs jau esam apskatījuši salīdzinoši garus galvenes un kājenes piemērus, saraksti 9.10 un 9.11 ir nedaudz saīsināti, lai ilustrētu jauno ideju.

Uzskaitījums 9.10. Optimizēta vietnes veidne (site_init.tpl)

// Fails: site_init.tpl

// Mērķis: PhpRecipes inicializācijas fails

$site_name = "PHPRreceptes";

$site_email = " [aizsargāts ar e-pastu]";

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

funkcija show_header($site_name) (

<? print $site_name: ?>

Šī ir galvene

funkcija parādīt kājeni()

Šī ir kājene

Uzskaitījums 9.11. Izmantojot inicializācijas failu

// Iekļaut inicializācijas failu

include("site_init.tpl");

// Drukāt virsrakstu

rādīt galveni($vietnes_nosaukums);

// Ķermeņa saturs Šī ir daļa no ķermeņa informācijas

// Parādīt kājeni Show_footer();

Projekts: lapu ģenerators

Lai gan lielākā daļa no manis izveidotajām vietnēm ir ģenerējušas galvenās lapas saturu, pamatojoties uz informāciju, kas nolasīta no datu bāzes, vienmēr ir dažas lapas, kas paliek praktiski nemainīgas. Jo īpaši viņi var parādīt informāciju par izstrādes komandu, kontaktinformāciju, reklāmu utt. Es parasti glabāju šo “statisko” informāciju atsevišķā mapē un izmantoju PHP skriptu, lai to ielādētu, kad tiek saņemts pieprasījums. Protams, jums ir jautājums - ja tā ir statiska informācija, kam paredzēts PHP skripts? Kāpēc neielādēt parastās HTML lapas? PHP priekšrocība ir tāda, ka varat izmantot veidnes un pēc vajadzības ievietot statiskus fragmentus.

<а href = "/static.php?content=$content">Statiskais lapas nosaukums

Sāksim ar statisku lapu izveidi. Vienkāršības labad es ierobežošu sevi ar trim lapām, kurās ir vietnes informācija (9.12. saraksts), reklāma (9.13. saraksts) un kontaktinformācija (9.14. saraksts).

Uzskaitījums 9.12. Informācija par vietni (about.html)

Par PHPRecipes

Kurš programmētājs nesajauc visas nakts programmēšanu ar gardēžu cepumiem. Šeit, PHPRecipes. Diez vai nakts nepaiet, ja kāds no mūsu kodētājiem nesajauc mazliet HTML ar garšīgu Portobello sēņu šķīvi vai pat fondī. Tāpēc mēs nolēmām jums atnest labākais no tiem, kas mums visvairāk patīk: PHP un pārtika!

Tieši tā, lasītāji. Pamācības, skripti, suflē un daudz kas cits. 0nly vietnē PHPRecipes.

Reklāmas informācija

Neatkarīgi no tā, vai viņi ierodas, lai apgūtu jaunākās PHP metodes vai lai uzzinātu, kā to izdarīt

lai ceptu vistu, varat derēt, ka mūsu lasītāji ir lēmumu pieņēmēji. Viņi ir Rūpniecība

profesionāļi, kas pieņem lēmumus par to, ko viņu uzņēmums iegādājas.

Lai iegūtu informāciju par reklāmu, sazinieties ar

">[aizsargāts ar e-pastu].

Uzskaitījums 9.14. Kontaktinformācija (contact.html)

Sazinies ar mums

Vai jums ir kodēšanas padoms?

Vai zināt ideālo jamsu sukādes pildījumu?

Paziņojiet mums! Sazinieties ar komandu pa tālr [aizsargāts ar e-pastu].

Pārejam pie static.php lapas izveides, kurā tiek parādīta pieprasītā statiskā informācija. Šajā failā (skatiet sarakstu 9.15) ir iekļauti mūsu vietnes lapas komponenti un inicializācijas fails site_init.tpl.

Uzskaitījums 9.15. Vispārēja statisku lapu izvade (static.php)

// Fails: static.php

// Mērķis: pieprasīto statisko lapu parādīšana.

// BRĪDINĀJUMS: tiek pieņemts, ka fails ir "site_init.tpl", un viss

// statiskie faili atrodas tajā pašā direktorijā.

// Ielādēt funkcijas un mainīgos ietver("site_init.tpl"):

// Parādīt galveni show_header($site_name);

// Izvadīt pieprasīto saturu include("$content.html"):

// Parādīt kājeni parādīt kājeni();

Tagad viss ir gatavs, lai izveidotu galveno scenāriju. Vienkārši iekļaujiet to lapā

<а href = "static.php?content=about">Statisks lapas nosaukums

Reklāmas informācija

Sazinies ar mums

Ja noklikšķināsiet uz kādas no šīm saitēm, jūsu pārlūkprogramma ielādēs atbilstošo statisko lapu, kas ir iegulta static.php!

Rezultāti

Šajā nodaļā jūs iepazināties ar primāro uzdevumu, kuram tika izveidots PHP - dinamiska tīmekļa lapu veidošana. Tika izskatīti šādi jautājumi:

  • URL apstrāde;
  • dinamiska satura veidošana;
  • pamata veidņu iekļaušana un uzbūve.

Nodaļa beidzas ar lapu ģeneratoru — programmu, kas veidnē ielādē statiskas lapas un ļauj viegli atbalstīt lielu skaitu statisku HTML lapu.

Nākamajā nodaļā galvenā uzmanība tiek pievērsta PHP lietošanai kopā ar HTML formām, lai ievērojami uzlabotu vietnes interaktivitāti. Un tad - mijiedarbība ar datu bāzēm! Jums ir jāmācās daudz interesantu lietu.


Bezmaksas programmu un noderīgu padomu pasaule
2024 whatsappss.ru