Külalisteraamat PHP-s. Lisa oma arvustus siia

Täna kirjeldan võib-olla parimat ülesannet PHP programmeerimiskeele algajatele - külalisteraamatut. Minu arvates on see ülesanne kõige lihtsam, kuid samal ajal võimaldab see õppida kõiki PHP ja MySQL-i andmebaasiga töötamise põhifunktsioone. Lisaks on see ülesanne lõputult laiendatav, mis võimaldab lihvida uusi tehnoloogiaid.

Selle probleemi kirjeldus ja lahendus kirjutatakse siinsamas, ilma funktsionaalsust testimata, nii et võib-olla on kuskil kirjaviga. Seda mitte minu laiskuse pärast, vaid jällegi lisakoolituse tõttu teie poolt külalisteraamatu loomisel. Samuti jääb esitletud lahendus veidi “kõveraks”, aga sellest lähemalt käesoleva artikli lõpus rubriigis “Iseseisev töö”.

Kui te ei tea, kuidas PHP-ga üldse töötada, soovitan kõigepealt lugeda artiklit PHP - kust alustada.

Analüüsime kõige primitiivsema külalisteraamatu loomist ilma kujunduse ja halduseta. Ehk siis piirdume raamatusse sisselogimise, registreerimise ja sõnumite jätmisega.
Ülesandest endast selgub, et selle ülesande täitmiseks saame piirduda kolme PHP-failiga. Loomulikult saab registreerimisülesande jagada kaheks: registreerimisvorm ja andmete lisamine andmebaasi, kuid seda me ei tee. Sarnane põhjendus kehtib ka kommentaaride jätmise korra kohta. Seega loome kolm faili: index.php, register.php, book.php.

Failide nimede järgi saate kohe aru, mille eest nad vastutavad: index.php - sisselogimisleht, register.php - registreerimisleht, book.php - külalisteraamatu leht.

Meie puhul on kõige lihtsam sisselogimisleht. Kuna leht vastutab sisselogimise ja parooli paari sisestamise eest, peab see sisaldama vormi nende andmete book.php lehele saatmiseks. Ja ka link registreerimislehele. Meil on:

Logi sisse külalisteraamatusse Logi sisse:
Parool:

Registreerimine

Teemast veidi eemale, neile, kes ei tea, mida ülaltoodud kood tähendab. Siin on meil tühi HTML. Võtmepunkt on vormimärgend, mis võtab vastu kaks toiminguparameetrit, mis vastutavad pärast andmesisestuse kinnitamist avaneva lehe aadressi eest ja meetodi parameeter, mis vastab, kuidas vormi andmed määratud lehele saadetakse. (vaata lihtsate sõnadega POSTITA ja GET). Vormisildi sees on määratud sisestusväljad (input, select), millel peab olema atribuut name. Just selle atribuudi väärtuse järgi on võimalik hankida andmeid, mille kasutaja on toiminguvormi parameetris määratud lehele sisestanud. Vormi sees peab olema sisestamise tüübiga sisend, mis on sisuliselt nupp, millele vajutades saadetakse andmed tegevuse lehele.

Jätkame... Nüüd peame looma uue kasutaja registreerimislehe. Tasub kohe mõelda, mida me täpselt omada tahame. Otsustasin, et lihtsa külalisteraamatu jaoks piisab ainulaadsete sisselogimisandmetega kasutajatest ja ka nende veebisaidi aadressi (kui see on olemas) teadmisest. Kui oleme otsustanud, mida me kasutaja kohta teada tahame, saame alustada andmebaasi kujundamist.

Minge saidile phpMyAdmin. Teeme sinna andmebaasi nimega gb. Selles andmebaasis loome tabeli Kasutajad järgmiste väljadega:

Sisselogimine varchar(50) unikaalne //kasutaja sisselogimine, kordumatu väli parool varchar(150) //parool www varchar(255) //veebisaidi aadress

Ja kuna oleme juba andmebaasiredaktorisse sisenenud, saame kohe mõelda, kuidas sõnumeid salvestame. Meie puhul on üsna sobiv teada, kes ja millal sõnumi jättis ning meie sõnumi tegelikku teksti. Samuti tasub mugavuse huvides meie sõnumid nummerdada. Oleme selle üle otsustanud, mis tähendab, et saame ohutult luua järgmise struktuuriga sõnumite tabeli:

Id int ai(auto_increment) primaarvõti //sõnumi number, loendur, mis ise suurendab mes text //sõnumi tekst who varchar(50) //kirja jätnud inimese sisselogimine millal timestamp default(current) //lahkumise aeg sõnum vastavalt praegusele vaikimisi kuupäevale ja kellaajale

Oleme andmebaasi korrastanud. Liigume nüüd edasi faili register.php juurde. Ülaltoodu kokkuvõtteks on meil:

Registreerimise sisselogimine:
Parool:
Parool uuesti:
WWW: http://


Peamisele

Natuke koodist. Nagu olete juba märganud, on siin PHP kohal. Ma ei kirjelda enam vormi, kuid nagu näeme, saadetakse siin vormi andmed samale lehele, kus see vorm asub. Teisisõnu saadab register.php fail andmed iseendale. Keegi ei keela seda teha, kuid te ei saa seda alati kasutada, kuna see rikub oluliselt koodi loetavust. Kuid teisest küljest näitab see selgelt PHP keele võimalusi. Põhimõtteliselt on meie leht jagatud kaheks juhtumiks. Esimene juhtum on siis, kui lehele saadetakse andmed POST päringuga, teine ​​juhtum, kui lehele POST päringut ei saadeta. Teisel juhul näitame registreerimisvormi ja esimesel juhul hakkame esitatud andmeid kontrollima. Nagu näete, saadetakse andmed assotsiatiivse massiivi kujul (st massiivina, mille indeksid on stringid). Veelgi enam, indeksid ühtivad andmete esitamise vormil märgitud sisestusväljade nimetustega. Need. kui kirjutame

siis, kui saadame need andmed POST-päringuga, on meil muutuja

$_POST["vasa-peta"]

Samuti väärib märkimist, et me ei tee sisselogimise korduskontrolle. See kontroll viiakse läbi andmebaasi tasemel, kuna sisselogimisväli on märgitud unikaalseks.

Nüüd viimane asi. Jääb üle vaid külalisteraamat ise teha. Väike arutelu. Kuna külalisteraamat töötab sisselogimise ja parooliga, siis esimese asjana tuleb kontrollida sisestatud kasutajanime ja parooli saadavust andmebaasis. Kuna otsustasime kirjad lisada book.php faili, siis ilmselgelt peaks järgima ka kirja lisamise protseduur. Noh, kõige lõpus kuvatakse kõik sõnumid. (kui lisate sõnumi pärast nende kuvamist, kuvatakse lisatud teade alles pärast lehe uuesti laadimist). Meil on:

Külalisteraamat