Kompanitë lidhin librin e të ftuarve php. Skripti i librit të të ftuarve PHP

Mjetet antipiretike për fëmijët përshkruhen nga një pediatër. Por ka situata të ndihmës së domosdoshme për ethet, nëse fëmija ka nevojë të japë fytyra nga pakujdesia. Më pas baballarët marrin përsipër ringjalljen dhe ndalojnë preparatet antipiretike. Çfarë mund t'u jepet foshnjave? Si mund ta ulni temperaturën tek fëmijët më të rritur? Cilat janë fytyrat më të sigurta?

Kushdo që do të shohë se si mund të rezervojmë mysafirë me lehtësi me PHP dhe MySQL. Kjo është shumë e thjeshtë dhe drejt përpara. Gjithçka që na nevojitet është:

  • Një server në internet ose një llogari pritëse
  • phpMyAdmin për çaktivizimin më të ulët për qasje në bazën e të dhënave

Së pari, ne mund të krijojmë bazën e të dhënave krijuese dhe tabelat e nevojshme. Shkoni te paneli ynë bazë (cPanel ose ndryshe) dhe shkoni te bazat e të dhënave. Krijo një bazë të dhënash të re. vini re emrin e bazës së të dhënave. Përdorues i ri i shitësit me pakicë dhe shtoni përdoruesin në atë bazë të dhënash. Nëse e dini se çfarë nuk shkon, nxitoni të kontaktoni shërbimin e klientit të ofruesit tuaj të pritjes. Proceset në një botë kuptimplote ndryshojnë nga host në host, në varësi të panelit të kontrollit që ata ofrojnë. Klikoni mbi emrin e përdoruesit të skedarit të ri, emrin e përdoruesit dhe hostin e bazës së të dhënave. Në shumicën e rasteve, në hostin e bazës së të dhënave є "localhost". Klientët Ale deyakі postalnikov yak për hostin e largët të mysql vykoristannya. Ai ka një vipadka, ndoshta, një mikpritës të karrierës poshtë. Për të fituar një server WAMP në Windows, shkoni te http://localhost/phpmyadmin/ dhe zgjidhni opsionet.

Tani jemi gati të importojmë tabelën. Shkoni te phpMyAdmin, zgjidhni skedarin e kërkuar, krijoni dhe zgjidhni komandat e mëposhtme SQL për të krijuar tabelën:

KRIJO TABELËN NËSE NUK EKZISTON `komentet` (`id` int(11) JO NULL AUTO_INCREMENT, `emri` varchar(255) NUK NULL, `email` varchar(255) NUK NULL, `faqe e internetit` varchar(255) JO NULL, Teksti i mesazhit NOT NULL, `vula kohore` int(255) JO NULL, ÇELËSI KRYESOR (`id`)) ENGINE=MyISAM PARAKZGJEDHJA E PARAKTUAR=latin1 AUTO_INCREMENT=1 ;

Në rregull, kështu që ju ekzekutoni komandën, ju jeni nëna e tabelës së quajtur "komente" me 6 fusha. Fusha "id" është çelësi kryesor dhe identifikuesi unik. Fushat e tjera janë - emri, emaili, faqja e internetit, mesazhi dhe vula kohore. Fusha e vulës kohore ruan vlerën e epokës së unix (sa sekonda kanë kaluar pas 1 janarit 1970) të kohës. Do të gjenerohet duke përdorur funksionin time() të php. Në fusha të tjera, është vetë-shpjeguese.

Tani duhet të krijojmë skedarin e konfigurimit i cili do të përdoret për të ruajtur të dhënat e lidhjes mysql. Krijoni një skedar me emrin: "config.php" dhe filloni me kodet e mëposhtme në të:

Pra, config.php ju lejon të përdorni të dhënat tuaja të konfigurimit. Shtypni për të ndryshuar vlerat e parametrave për të ndryshuar grupin tuaj.

Tani krijojmë faqen e parë. Krijoni një skedar të quajtur "index.php" dhe filloni kodin në një të ri:

Libri im i vogël i të ftuarve

Posto nje Koment:

Emri:

Email:

Faqja e internetit:

mesazh:

Komentet ekzistuese:

Emri:($comment["name"])
";jehonë" Email:($comment["email"])
";jehonë" Faqja e internetit:($comment["website"])
";jehonë" mesazh:($comment["mesazh"])
";jehonë" Postuar në:" .date("Y-d-m H:i:s",$comment["vula kohore"])."

"; } } ?>

Pra, çfarë bën ky skenar? Mund të formularit html për të plotësuar të dhënat e nevojshme. Përveç kësaj, si formular, të gjitha komentet do të shkruhen, do të ruhen në 데이터베이스 dhe do të shfaqen anash. Meqenëse nuk ka komente, ne e dimë se çfarë duhet ta shtypim atë. A e keni vënë re se veprimi i formës është "post.php"? Po, të dhënat e formularit do të përdoren në posts.php, si fusha të ulëta dhe do t'i ruajmë në proceset e bazës së të dhënave. Pra, le të krijojmë post.php dhe të vendosim kodet e mëposhtme:

Libri im i vogël i të ftuarve

Nga ana tjetër, ne zgjedhim dhe të gjitha filantropitë ishin të lidhura. Nëse jo, mund të printojmë një mesazh gabimi. Ndërsa të gjitha sferat ishin të lidhura, ne u përpoqëm të ruanim përmbajtjen në bazën e të dhënave. Ne krijojmë vlerën e vulës kohore duke përdorur time() dhe nxjerrim çelësat nga ndryshorja $_POST. Si dhe të dhënat hyrëse të sinjalizimeve aktuale, ato gjithashtu do të printojnë mesazhin e gabimit. Për të gjitha këto, është në rregull, ne jemi fajtorë që jemi magjistarë për të index.php, de vin apo jo, mund ta çoni në komente, ashtu si ju.

Tani kemi mbaruar me librin tonë të vogël të të ftuarve. Nuk është aq i pasur, por funksionon! Në postimet e ardhshme, ne jemi përgjegjës për të shtuar se mund ta ndryshojmë këtë në ndërveprimet e vërtetimit, faqesimit dhe ajax-it. Qëndroni të sintonizuar!

Sot do të përshkruaj, ndoshta, detyrën më të mirë për fillestarët në programimin tim PHP. Libri i të ftuarve. Sipas mendimit tim, detyra është më e thjeshta, por në të njëjtën kohë ju lejon të dini për të gjitha tiparet kryesore të punës me PHP dhe bazën danih MySQL. Krym tsgogo, tse zavdannya zgjerohet në mënyrë të pashmangshme, gjë që ju lejon të mësoni teknologji të reja.

Një përshkrim dhe një vizion se cila detyrë do të shkruhet pikërisht këtu, pa rishkruar për praktikë, që, ndoshta, ka një falje këtu. Nuk u prish gjatë natës sime, por përsëri përmes trajnimit shtesë, kur libri i të ftuarve u krijua nga ju. Gjithashtu, zgjidhja do të jetë një gjë e vogël "e shtrembër", por pothuajse e njëjtë, për shembull, statistikat e degës "Roboti vetë-mbështetës".

Nëse nuk dini si të praktikoni PHP, atëherë për herë të parë, lexoni shënimin PHP - pse të filloni.

Ne zgjedhim krijimin e librit më primitiv të të ftuarve, pa dizajn dhe administrim. Pra, ne jemi të rrethuar nga hyrja e librit, duke regjistruar atë kujtesë dhe të tepërt.
Që në fillim, u bë e qartë se ne mund të përdorim deri në tre skedarë php për të përmbushur këtë detyrë. Natyrisht, detyra e regjistrimit mund të ndahet në dy: formulari i regjistrimit dhe shtimi i të dhënave në bazë, ne nuk do të jemi në gjendje ta testojmë atë. Shenjat analoge janë të pranueshme për procedurën e lënies së komenteve. Në këtë mënyrë krijohen tre skedarë: index.php, register.php, book.php.

Pas emrave të skedarëve mund të kuptoni, për të cilën erë e keqe mund të dalloni: index.php - ana e hyrjes, register.php - ana e regjistrimit, book.php - ana e librit të të ftuarve.

Mënyra më e lehtë për të parë pamjen tonë është ana e hyrjes. Pra, ndërsa pala përgjigjet për futjen e bastit në hyrjen dhe fjalëkalimin - mund të ketë një formular për dorëzimin e këtyre të dhënave në anën e book.php. Dhe gjithashtu një mesazh në anën me regjistrimin. Maemo:

Hyrja në librin e të ftuarve

Identifikohu:
Fjalëkalimi:

Regjistrimi

Trohi vidiyshovshi si ato, për ata që nuk e shijojnë atë që kodi do të thotë më shumë. Këtu mund të përdorim HTML lakuriq. Pika kryesore є etiketa formë e cila merr dy parametra veprim, e cila konfirmohet për adresën e palës, siç tregohet pas konfirmimit të të dhënave të futura, ai parametër metodë, sido që të jetë format do të nadsilatisya në anën e treguar (div. POST dhe GET me fjalë të thjeshta). Në mes të etiketës së formës, specifikohen fushat për hyrje (hyrje, përzgjedhje), si një atribut i përgjithshëm i gjuhës. emri. Për vlerën e këtij atributi, mund të merrni gjithashtu parasysh të dhënat e futura në anën e specifikuar në parametrin e formës së veprimit. Obov'yazykovo në mes të formularit është përgjegjës për llojin e hyrjes paraqesin, i cili është për sutin e vet me një buton, do të shtyp yaku dhe do të korrigjohen të dhënat në anën e veprimit.

Prodovzhimo ... Tani ne duhet të krijojmë një anë nga regjistrimi i një koristuvach të ri. Varto edhe një herë mendoj se çfarë duam ne vetë për nënë. Unë kam vërtetuar se për një libër të thjeshtë të ftuar, do të mjaftojë për nënat me hyrje unike, si dhe të dinë adresën e faqes së tyre të internetit (yakscho vin є). Meqenëse jemi caktuar për këtë, nëse duam të dimë për koristuvach, atëherë mund të fillojmë të dizajnojmë bazën tonë të të dhënave.

Shkojmë te phpMyAdmin. Le të bëjmë një bazë atje për im'yam gb. Në këtë bazë të dhënash, ne krijojmë një tabelë të Përdoruesve me fushat e mëposhtme:

Identifikohu varchar(50) unike //Koristuvach login, fjalëkalimi unik i fushës varchar(150) //fjalëkalimi www varchar(255) //adresa e faqes

Dhe nëse kemi shkuar tashmë te redaktori bazë, atëherë mund të mendoni për ato se si kursejmë kohë. Mendja jonë është plot me fisnikëri që nëse e ke lënë jashtë informacionin, ai dhe teksti i mesazhit tonë është i qartë. Pra, vetëm për hir të qartësisë, varto numëroni shënimet tona. Zimmi u emërua, atëherë, ju mund të krijoni me guxim një tabelë të Mesazheve me një strukturë fyese:

Id int ai(auto_increment) çelësi_primar //numri i informacionit, lajmëruesi, cili do të jetë teksti më i rëndësishëm mes //teksti i informacionit që varchar(50) //hyrja e personit që bllokoi njoftimin kur vula kohore e paracaktuar(aktuale) // ora e njoftimit, mbyllje Data aktuale atë orë

Nga baza e të dhënave ato u renditën. Tani le të kalojmë te skedari register.php. P_dbivshi p_dbag vishchevykladenomu maєmo:

Regjistrimi

Identifikohu:
Fjalëkalimi:
Fjalëkalimi përsëri:
WWW: http://


Në kokë

Troch në lidhje me kodin. Yak Vee tashmë është përmendur, këtu është PHP. Nuk do ta përshkruaj më formën, por, jak mi Bachimo, këtu format e dhëna janë vendosur në të njëjtën anë, forma e dhënë është e prishur. Kjo është arsyeja pse skedari register.php i anulon të dhënat në vetvete. Kështu që ju nuk pengoni asgjë, nuk mund të filloni mbrojtjen e vicor, sepse lexueshmëria e kodit është shumë e rëndësishme. Megjithatë, nga ana tjetër, unë demonstroj mundësitë e një gjuhe PHP. Në fakt, faqja jonë është e ndarë në dy seksione. Hapi i parë është kur të dhënat POST dërgohen në anën, hapi tjetër është nëse asnjë kërkesë POST nuk dërgohet në anën. Për një person tjetër do të tregojmë formularin e regjistrimit dhe për të parin do të duhet të kontrollojmë riverifikimin e të dhënave të dërguara. Siç mund ta shihni, le t'i afrohemi një grupi asociativ (ky është një grup, indekset e të cilit janë rreshta). Për më tepër, indekset krijohen me emrat e fushave hyrëse, të cilat u caktohen formularëve të mbishkrimit të të dhënave. Tobto. yakscho mi shkruaj

pastaj me ne, me mbizotërimin e këtyre të dhënave POST, do të ndryshojmë

$_POST["vasa-peta"]

Gjithashtu, ju lutemi respektoni se ne nuk kemi frikë nga ri-identifikimi vjetor për të përsëritur hyrjen. Jepet reverb Nëse dëshironi të kontrolloni më pak në baza të barabarta të dhënash, fusha e hyrjes do të shënohet si unike.

Tani ndalo. Vetë libri i të ftuarve ka humbur. Jo shumë mirkuvan. Meqenëse libri i mysafirëve funksionon për hyrjen dhe fjalëkalimin, atëherë gjëja e parë që duhet të bëjmë është të kontrollojmë hyrjet e hyrjes dhe fjalëkalimin për bazën e të dhënave. Meqenëse ne shkruam për të shtuar një kujtesë në vetë skedarin book.php, është e qartë se faji është procedura për shtimin e një kujtese. Epo, për shembull, kujdesuni për gjithçka. (Ashtu siç duhet të shtoni një kujtesë pasi të rimartohen, më pas shtoni një kujtesë që të shfaqet vetëm pas ri-avancimit të anës). Maemo:

Libri i të ftuarve "; ) else ( echo "Mesazhi juaj nuk u kompletua!


"; } } ?>
"name="login" /> "emri = "fjalëkalimi" />

"; echo "Teksti: ".$row["mes"]."
"; ) ) mysql_close ($link); ?>

Boshti është i drejtë dhe kaq. Ashtu si kodi është 100% robitnik, mirë. Nëse jo, atëherë ju rekomandoj që të përpiqeni të korrigjoni faljet vetë. Tani premtimi është ndarë.

Punë e pavarur
Jak tashmë është thënë në kalli, zgjidhja është "shtrembër". Nëse nuk e keni kuptuar ende pse, atëherë unë do t'ju shpjegoj menjëherë. Siç mund ta mbani mend në skedarin book.php në formularin për të shtuar një koment, ka një spërkatje të fushave të bashkangjitura, me dy prej tyre - prezantimet e një hyrje dhe fjalëkalimi të qartë. Nuk është mirë, apo jo? Provoni të rregulloni atë seancë të shkurtër zëvendësuese (Si të rregulloni seancat në PHP).
Mundohuni të mësoni për ushqimin, me anë të të cilit përmirësohen funksionet i zbrazët/i vendosurі dal/vdes?
Ndryshoni kërkesat për konfirmim nga baza, në mënyrë që kur të shihni njoftimin, të shfaqet faqja e internetit e autorit të njoftimit.
Siç e mbani mend, fjalëkalimi i koristuvach në bazën e të dhënave ruhet nga një pamje e qartë, por nuk është e mirë. Ndryshoni kodin në atë mënyrë që baza e të dhënave të marrë hash-in e fjalëkalimit të koristuvach (për shembull, MD5 ose SHA1).

Sot do t'ju jap Skripti i librit të të ftuarve PHP Edhe nëse nuk është sekret që ky mesazh është popullor dhe nëse nuk ka mundësi për të bashkëpunuar me administratën, atëherë libri i të ftuarve është thjesht i nevojshëm. Ti mundesh shkarkoni skriptin e librit të të ftuarve PHP, dhe gjithashtu do t'ju tregoj për procesin e instalimit të jogës.

Edhe më shpesh njerëzit pyesin Skripti i librit të të ftuarve në html ose javascript. Është për të ardhur keq që nuk do të ketë një gjë të tillë, sepse për punën e librit të të ftuarve është e nevojshme të dëshironi të shkruani informacione rreth skedarit. Dhe tse robiti nі in JavaScript nі, tim më shumë, në HTML e pamundur.

Tani kopjoni dosjen mysafir në rrënjë të faqes tuaj. Vendoseni në anën e faqes suaj duke e dërguar në librin e të ftuarve ( http://your_site/guest).

Hapi tjetër do të jetë plotësimi i librit të të ftuarve. Për kë të vizitoni adresën http://your_site/guest/admin.php. Shkruani fjalëkalimin " admin"dhe pas autorizimit të suksesshëm shko te skeda" Konfigurimi Një përshkrim i shkurtër i sukseseve:

  • Unë jam skenar- Vendosni emrin tuaj për librin e të ftuarve të faqes tuaj.
  • Tekst i mirëseardhjes- shkruani një tekst, siç dëshironi, që të ftuarit tuaj ta shikojnë kur hapin librin e të ftuarve.
  • bllok reklamash- nëse doni të vendosni reklama në librin e të ftuarve, atëherë kopjoni kodin. Yakshcho її jo, lëre fushën bosh.
  • Dorëzimi në faqen kryesore- Vendosni mesazhin në faqen kryesore të faqes tuaj.
  • Email admin- shkruani tuajën e-mail, dhe gjithashtu zgjidhni: nëse dëshironi të dërgoni një kujtesë në postën tuaj apo jo.
  • fjalëkalimi i administratorit- Vendosni fjalëkalimin tuaj në përgjithësi. Mos u mbush" admin".
  • Të aktivizohet sinjalizimi i moderimit?- nëse dëshironi të rishikoni informacionin e lëkurës përpara publikimit, rriteni këtë opsion.
  • Të aktivizohet funksioni antispam?- këtu mund të aktivizoni sistemin për t'u mbrojtur nga mesazhet e padëshiruara ose të zgjidhni një nga tre opsionet: një captcha e shkëlqyer, një gjëegjëzë ose një operacion. Sapo të merrni captcha dixhitale origjinale, futni të njëjtën captcha në fushën e tekstit në të djathtë.
  • Zadіyat funksion antifluda?- jepet opsioni për të lejuar filtrimin e njoftimeve për temën.
  • A është forca e tekstit aktive?- thjesht vendos " Kështu që", atëherë mesazhet në tekst do të jenë aktive.
  • Të shtohen/çaktivizohen emoticonat grafikë?- thjesht vendos " Kështu që", atëherë koristuvach mund të vikoristuvati emoticon.
  • Maks. emër dozhina- Numri i lejuar i simboleve në emër të koristuvaçit.
  • Maks. dozhina pajtimi- numri i karaktereve në njoftim lejohet.
  • Kujtoni në anën- shumë informacione për atë që shfaqet në njërën anë.
  • Ndiqe- Renditja për rritjen ose ndryshimin e datave për shkrimin e një shënimi.
  • Lëkura- zovnіshnіy vglyad.

Vërtet, me të vërtetë, një numër i madh nga më të famshmit skriptet e librave të ftuar. Dhe nëse jam joga shukav, atëherë zgjidh jo më pak se dy duzina dhe gjykoj nga tsoma z arsye të tilla.

1. Në një pritje pa kosto, ka më pak për të dhënë.
2. Më shkurt, por jo obov'yazkovo. Një mysafir i rregullt për të më privuar nga kujtesa në atë mënyrë që është e nevojshme (përmes formularit tim), dhe garni hakerit ende i mungon tezhi juaj $_GET, $_POST, $_COOKIE dhe $HTTP_REFERER.
3. Kontrolli kryhet, ndonëse në mënyrë implicite, nga vetë baza e të dhënave (vetëm, gjëja më e rëndësishme mund të jetë më e madhe - deri në 64 Kb).
4. Pra, є, HtmlSpecialChars bula vikoristana, pa vikoristovuvav AddSlashes (dhe kjo është një falje e madhe, kërkoj falje për fajin tim, div. më poshtë). Kur ndizet magic_quotes_gpc, jepet problemi të mos shtrohet shtrati, por dirka lihet e sigurt (në panelin e kontrollit).
5. Pra, është në rregull, ju mund të b dhe virizati, ale im #[email i mbrojtur]%#$^%$ asgjë nuk është më e keqe se AF4ETX09T43. E-maili ka atë url є dirka, ju mund të ktheni skriptet.
6. Mirë, çfarë nuk është inicializuar?

Ka një sërë aplikacionesh të tjera, si, për shembull, zahist nga futja automatike përmes imazhit (si në këtë faqe) http://www.site/webmast/php/Security-Images-in-PHP/
...

Nuk kishte foto, është e nevojshme të kompozoni prapanicën demonstruese. Për momentin, mysafiri nuk është thirrur kurrë nga një zakhist i ngjashëm. Nëse është një faqe, atëherë nuk është një mysafir.

Anatomia e skriptimit ndër-site XSS
http://www.woweb.ru/index.htm/id/1073393942

Duzhe tsikavo, dyakuyu.

Z.I. Yakby Afftor popratsyuvav e vlerëson (dhe e kupton) në stati scho në këtë faqe, pastaj zrozumіv bi, në fakt, praktika e jogës është joprofesionale. Varto vrakhovuvati dosvіd mëparshme Authorіv і, prinaymni, respekt їhnyu pratsyu - erë e keqe për ju shkroi.

Ku nuk bëhet? Vibachte, të cilin ai e ka përshkruar.

Nëse më vjen keq, atëherë lexoni përsëri paragrafin e parë të artikullit, nuk e vendos si një metaforë për të parë epërsinë e të ftuarit, por përkundrazi tregoj se si mund të shkruani në fund të fundit gostov, per ata qe fillojne te dine vetem CGI, edhe nese jo cdo gje vjen njeheresh, duhet te fillosh nga nje e thjeshte, dhe as nuk behesh kaq e arsyeshme, edhe nese mundohesh te falesh, atehere le te japim shume. aspektet e zahistut tek artikuj të tjerë, autorë të tjerë.

Pra, me një shikim, skenari është joprofesional, dhe unë jam një joprofesionist i fushës, duhet të ruhem në paragrafin e parë, pasi, për fat të keq, jo të gjithë e kanë lexuar.

PS

Citim:

Ligji "Për të drejtat e autorit dhe të drejtat kolektive"
Neni 6. Objekti i së drejtës së autorit. pozicioni i djegies
1. E drejta e autorit zgjerohet në veprat e shkencës, letërsisë dhe artit, si rezultat i veprimtarisë krijuese, pavarësisht nga njohjen e atij avantazhi krijojnë, dhe gjithashtu në mënyrën e shprehjes së jogës.
Reshton mund ta lexoni këtu: http://www.febras.ru/~patent/copyright/2_3part2.html
Përveç kësaj, neni 9. pika 1
Nuk dua që të betohesh për të drejtën time për të qenë.

Testimi i kodit mund të jetë i bezdisshëm, por mungesa e testimit mund të çojë në arsye edhe më serioze për ngacmim. Në këta artikuj, ne do të shkulim zhvillimin përmes testimit për shkrim dhe testim më efikas të kodit tonë.

Çfarë do të thotë teknologjia përmes testimit?

Në kalliun e softuerit kompjuterik dhe falja luftuan për epërsi. Tse është e pashmangshme. Shumica e programeve kanë rënë viktimë e këtyre anomalive. Nuk ka asnjë kod të sigurt. E njëjta gjë mi vikoristovuemo testuvannya. Programuesit, duke dashur të punojnë me ta, rishikojnë kodin e tyre, duke e lëshuar në makinat e tyre të punës, për të ndryshuar, çfarë të vrasin, çfarë të fajësojnë.

Zhvillimi përmes testimit Kjo është e njëjta teknikë programimi, që do të thotë se shkrimi njëorësh i kodit të programit dhe testimi për të riun. Kjo garanton që kodi juaj i protestës - dhe ju lejon të testoni kodin tuaj shpejt dhe me lehtësi, oskolki tsey procesin e automatizimit.

ju si punoni?

Zhvillimi përmes testimit ose TDD - cikël i shkurtër i zhvillimit përsëritës:

  1. Para se të shkruani ndonjë kod, fillimisht është e nevojshme të shkruani teste për të. Kur shkruani teste automatike, është e nevojshme të merren parasysh të gjitha të dhënat e mundshme hyrëse, faljet dhe të dhënat dalëse. Me një qasje të tillë, mendimet tuaja nuk do të lidhen me të njëjtin kod, i cili tashmë është shkruar.
  2. Herën e parë që kryeni testet automatike, era e keqe do të dështojë, duke treguar se kodi nuk është ende gati.
  3. Nëse po, mund të ndryshoni programimin. Nëse tashmë keni një test dhe nëse kodi është duke u testuar, atëherë nëse testi dështon më herët, do të thotë që kodi nuk është ende gati. Kodi mund të korrigjohet, në mënyrë që të kaloni kontrollet.
  4. Sapo kodi të kalojë me sukses testin, mund të konsideroni pastrimin e tij për rifaktorim shtesë. Kodi i Docks kalon me sukses testet, mund të vendosni se cilat verëra, si më parë, funksionojnë saktë. Nuk keni më nevojë të shqetësoheni për ndryshimet, të cilat mund të çojnë në defekte.
  5. E përsëris këtë cikël përsëri me një metodë tjetër me programin.

Mirë, por pse është më mirë se një provë e shkëlqyer?

Nëse me qëllim i keni anashkaluar programet e testimit, kjo është arsyeja pse:

  • E patë që do të ishte humbje kohe, por pak ndryshime u bënë.
  • U ndjetë dembelë të filloni të provoni gjithçka përsëri?
  • Nuk kishit kohë të mjaftueshme për testim, a u mbyt menaxheri i projektit në fillimin më të fundit?
  • I keni premtuar vetes që nesër të protestoni?
  • A i keni bërë një test emisionit tuaj të preferuar televiziv?

Shumica e zhvilluesve nuk bllokojnë asgjë dhe ju e transferoni me sukses kodin tuaj në prodhim pa asnjë problem. Por ndonjëherë gjithçka duket të jetë navpak. Mundohesh të rregullosh mijëra dirok në anije, sapo toni, në atë orë, shfaqen njolla të reja të lëkurës. Të këndoj nuk donte b opinion në një situatë të ngjashme.

TDD e krijimeve për të ilustruar të vërtetat tona. Nëse programi është zgjeruar në versionet TDD, ne mund të ngarkojmë shpejt dhe me efektivitet ndryshime të reja. Gjithçka që duhet të bëjmë është të kryejmë teste automatike! Nëse të gjitha testet kalohen, atëherë mund të rrëzoheni larg, nëse jo - do të thotë që ndryshimet tona janë prishur. Duke ditur që pjesa më e madhe e testeve ra, ne mund të zbulojmë lehtësisht se në cilën zonë të ndryshimeve tona kemi thyer kodin dhe korrigjojmë kodin.

Une bleva. Si rritemi?

Unë përdor korniza jopersonale të automatizuara PHP për testim, kështu që ne mund të fitojmë. Më i postuari në Twitter prej tyre është PHPUnit.

PHPUnit është një kornizë e avancuar testimi që mund të integrohet lehtësisht në projektet tuaja ose projekte të tjera të ndërtuara në krye të kornizave të njohura PHP.

Për qëllimet tona, ne nuk kemi nevojë për ato funksione jopersonale që përhapin PHPUnit. Në vend të një të reje, ne do të hakojmë kornizën shumë të thjeshtë SimpleTest.

Në muajt e ardhshëm, le të zgjerojmë programin e librit të të ftuarve, që të jetë një lloj koristuvach mund të shtojë atë rishikim të hyrjeve. Është e pranueshme që faqosja është përfunduar, dhe ne thjesht krijojmë një klasë, e cila është hakmarrja logjika e programit libri i të ftuarve, ku programi fut hyrjet dhe i lexon ato nga baza e të dhënave. Ne do ta rozrobljat atë pjesë të testit, jak vіdpovіdaє për lexim.

Hap 1. Vendosja e SimpleTest

Ndoshta krosi më i thjeshtë prej nesh. Navit tsey lad zmіg bi tse robiti:

Krok 4. Luaje, fito

Meqenëse keni ndaluar së shkruari kodin tuaj, duhet të kryeni teste. Kumbon në fillimin e parë obov'yazkovo përfundon në dështim. Nëse nuk është kështu, atëherë, më shumë se çdo gjë, testet tuaja me të vërtetë nuk testojnë asgjë.

Për të ekzekutuar testin, thjesht hapni skedarin Guestbook_test.php në shfletuesin tuaj. Prapa pas shpine, ju lutemi tse:

Tse u bë, për atë shkollë nuk kanë krijuar ende një klasë të librit të të ftuarve. Për ta bërë këtë, unë krijoj një skedar guestbook.php në mes të drejtorisë së klasave. Kjo klasë do të hakmerret për metodat, pasi ne zgjedhim të fitojmë, por tani për tani, mos u hakmerrni për asgjë. Mbani mend, ne shkruajmë vjehërr, dhe Le të marrim kodinÇfarë po testohet.

Nëse e kryeni përsëri testin, rezultati do të duket si ky:

Yak Bachimo, testi ynë vazhdon të dështojë. Do të provoj sërish fatin e keq të rozv'yazati tsiu.

Krok 5

Tani që kemi teste të automatizuara robotike, mund të fillojmë të shkruajmë kodin. Klasa Vіdkriєmo libri i të ftuarve.php kjo është më shumë se një përsosmëri e testit tonë.

"Kirk", "message" => "Përshëndetje, unë jam Kirk."), array ("emri" => "Ted", "message" => "Përshëndetje, unë jam Ted.")); Funksioni publik viewAll() ( // Këtu, ne duhet të marrim të gjitha të dhënat nga baza e të dhënave. // Kjo është simuluar duke rikthyer grupin $_entries kthen vetë::$_entries; ) funksionin publik add($name, $message) ( // Këtu, mi simuloi futjen në bazën e të dhënave duke shtuar një rekord të ri në grupin $_entries // Kjo është mënyra e duhur për ta bërë këtë: vetë::$_entries = array("name" => $name, "message" => $message);self::$_entries = array("notname" => $name, "notmessage" => $message); ( // Sapo vendosëm grupin $_entries për të simuluar veten::$_entries = array( ); kthehu i vërtetë; ))

Tsey class guestbook.php për t'u hakmarrë për disa gabime, që të mund të dimë nëse provat tona dështojnë.

Nëse kryejmë teste, atëherë do të bëjmë sa më poshtë:

Visnovok në teste na tregon për disa teste, dhe për disa që kodi ynë është konfirmuar në mënyrë specifike. Nga pamja e tij, mund të shohim lehtësisht se puna e vështirë në rreshtat e 16-të dhe të 17-të përfundoi me dështim.

assertTrue(isset($entry["emri"]))); $this->assertTrue(isset($entry["mesazh"]))); ... ... ...)

Tse tregon qartë se rrotullimi i grupit nuk zëvendëson çelësat e duhur. Vіdshtovhuyuchis vіd tsgogo, tani mund të dallojmë lehtësisht nëse një pjesë e kodit tonë funksionon gabim,

$name, "message" => $message); //rregulluar! kthehu i vërtetë; ) ... ... ... )

Tani le të kryejmë përsëri testet tona:

Krok 6. Rifaktorimi

Kodi Oskіlki, të cilin ne po e testojmë këtu, do t'ju falim, korrigjimet tona të gabimeve kanë kaluar për ta bërë atë shpejt. Dhe edhe nëse do të ishin shtesa më të palosshme, mund t'ju duhet të bëni një ndryshim në kodin tuaj, në mënyrë që ta përmirësoni atë më lehtë. Problemi këtu është me atë që ndryshon më shpesh në heqjen e gabimeve shtesë. Boshti është të na ndihmojë me testet e automatizuara - sapo të bëjmë ndryshime, thjesht i fillojmë përsëri testet. Nëse era e keqe kalon sërish me sukses, do të thotë se nuk kemi thyer asgjë. Nëse përfundojnë me dështim, atëherë këtu kanë filluar faljet. Erë e keqe na kujton menjëherë se kemi një falje dhe është më mirë që çdo gjë si її mund të korrigjohet.

Krok 7. Përsëriteni në shtyllë

Epo, nëse programi juaj ka funksionalitet të ri, është e nevojshme të shkruani teste të reja. Është e lehtë! Ne e përsërisim procedurën nga një hap tjetër (sepse SimpleTest tashmë është rregulluar dhe instaluar), dhe fillojmë në fillim.

Visnovok

Artikuj të padobishëm mbi temën e zhvillimit përmes testimit me zhvillime më të thelluara dhe mund të ndërtoni me mjete më funksionale më poshtë SimpleTest - për shembull, mock-ob'єkti, staby, për të ndihmuar në zhvillimin më të lehtë të procesit të shkrimit të testeve. Nëse dëshironi të lexoni më shumë, faqja e Wikipedia-s për kërkimin përmes testimit do t'ju drejtojë në rrugën e duhur. Nëse planifikoni të vazhdoni të fitoni si kornizë e testit tuaj SimpleTest, atëherë respektoni dokumentacionin në internet dhe mësimin e gjuhës në lidhje me aftësitë e avancuara të jogës.

Testimi është një pjesë e padukshme e ciklit të zhvillimit, por shpesh testohet përmes afateve. Besoj se pas leximit të këtyre artikujve do të kuptoni rëndësinë e investimit në rritje përmes testimit.

Cilat janë mendimet tuaja se si të zgjeroheni përmes testimit? Nuk të intereson, pse nuk të intereson një orë e dytë e thjeshtë? Shkruani në komente!

Mbështetni projektin - ndani përpjekjet tuaja, e dashur!
Lexoni gjithashtu
Cilën orë Apple të zgjidhni? Cilën orë Apple të zgjidhni? Altoparlant portativ Sony SRS-X11 Zi Altoparlant portativ Sony SRS-X11 Zi Rishikimi i altoparlantëve portativ Sony SRS-X11 Rishikimi i altoparlantëve portativ Sony SRS-X11