![]() |
|
||||||
|
|
| 07.02.12 / 23:30 |
|
Martin Rebane
/*Uuendatud 22. august 2003*/Tagasiside vorm veebilehel on kasulik, see teeb inimesele sinuga ühenduse võtmise lihtsamaks. Kommerteesmärkidega saitidel lühendab selline vorm kliendi teed ettevõtteni. Järgnevalt vaatame, kuidas enda veebilehele tagasiside vormi ehitada. Alustame HTML-koodist, mis tuleb paigaldada veebilehele. Selles on tüüpilised väljad: saatja nimi, tema e-posti aadress, teema ja sõnum ise. Igal vormi elemendil oma nimi, määratud name="" abil. Vormi action on selle veebilehe aadress, millele kasutaja peale SUBMIT nupu vajutamisel suunatakse. Meie andsime sellele väärtuse $PHP_SELF'iga, $PHP_SELF annab meile selle lehe nime, kus seda skripti jooksutatakse. Nt kui sinu PHP faili nimi on email.php, siis $PHP_SELF väärtus on "email.php". Nüüd asume PHP koodi kallale, sama lehekülje algusesse kirjutame skripti, mis saadab kirja meile ära ning annab kasutajale vastava teate: PHP kood:
Vaatame seda skripti nüüd veidi lähemalt... if(isset($_POST['checkme']))Kontrollime, kas formiga vaikimisi kaasa pandud muutuja checkme on ikka olemas ehk kas form on submititud või on külastaja siin esimest korda. Selle teeme kindlaks selle kaudu, kas varjatud muutuja $_POST['checkme'] on olemas. Kui kiri oli submititud, ütleme kasutajale kohe tänusõnad, kui soovid, võid ka isiklikult tänada, kasutades muutujat $_POST['nimi'], nt: Täname sind $_POST['nimi']! PHP funktsiooni mail() kolm esimest argumenti on ootuspäraselt: *kuhu kiri saata; *teema, (sinna panime selle, mille kasutaja kirjutas ja lisasime enda tarbeks veel igaks juhuks märkuse'(Veebilehelt)') *Kirja sisu - muutuja $_POST['kiri'], mille me saime vormist. PHP kood:
Kellelt: kasutaja nimi ja e-mail kujul Ants Maasikas <ants.maasikas@kidrox.com> \n ütleb serverile, et on vaja kirja päisesse reavahetus lisada Reply-to ehk kellele vastata - jälle kasutaja e-kirja aadress siia. Mailer ehk programm, millega kiri on saadetud. Tavaliselt koduarvutist saates oleks see nt Pegasus Mail, Eudora või ebaturvalisuse poolest silma paistev MS Outlook. Meie paneme siia 'PHP/versioon'. Versiooni lisamiseks kasutame funktsiooni phpversion(). Mõtekas on ära keelata ka tühjade kirjade saatmine. Selleks tarbeks lisame skripti algusesse if-lause, millega kontrollime, kas kõik väljad olid postitamisvormis täidetud: PHP kood:
strlen() on funktsioon, mis annab meile teksti-tüüpi muutuja pikkuse. Hüüumärk funktsiooni ees tähendab eitust. ...kokkupanduna tähendab see siis seda, et tingimus on tõene kui stringil $_POST['email'] pikkust ei ole. '||' tähendab või, selle asemel võib kasutada ka 'or'. Kokku võttes - kui kasvõi ühel vormis täita palutud muutujaist pikkust ei ole, siis palutakse kasutajal back-nuppu vajutada. TurvalisusSiiamaani muretsesime vaid programmi funktsionaalsuse pärast, ent on veel teinegi aspekt, millega veebipõhise e-kirja saatmisel arvestada tuleb - turvalisus. Praegune skript võimaldab kasutajal meie vormi kasutada võõraste e-kirjade saatmiseks. Nt saata kiri enda valitud aadressi ja sisuga enda valitud saajale. Põhilised ohud, mille suhtes tuleb valvas olla, on reavahetused, komad ja semikoolonid nendel väljadel, mida me kasutame e-kirja saatmiseks (to, from, subject). Et vältida spämmkirjade saatmist, peame lisama kontrolli, mis vaataks, et nimetatud väljadel ei oleks selliseid märke. Kena mailimist! Programmi kood on siin: email.php (Vajuta paremat hiirenuppu ja Save Target as..(sest muidu kuvatakse see brauseris)) .martin. Artikli kommentaarid |
|