Vaatame html- ja php-s kirjutatud veebisaidi lihtsa ja kiire tagasiside vormi näidet.
Miks on vorm html-is ja php-s?
CRM-ide jaoks, nagu Wordpress, Joomla ja teised, leiate saidi tagasisidevormi installimiseks erinevaid pistikprogramme. Kuid mis mulle selliste pistikprogrammide puhul ei meeldi, on nende kehv jõudlus ja aeglustab saidi tööd. Kuna need pistikprogrammid toodavad endiselt sama HTML-koodi, soovitan kasutada lihtsat, kuid täielikult toimivat vormi, mida saab ka saidilt tagasi helistamiseks muuta.
Kontaktivorm HTML-is sisestatakse lihtsalt Joomla, OpenCarti administraatoripaneelile ja kui teie sait on ise kirjutatud või kasutate mõnda raamistikku, pole esitatud koodi kasutamine keeruline ja mis kõige tähtsam, sait laaditakse kiiresti nagu enne koodi sisestamist.
Saidi tagasiside korraldamise struktuur
Et kõik toimiks, annan teile struktuuri, mida on vaja kontakt- või kõnevormi toimimiseks?
- Lehele sisestatud HTML-kood + css-stiilid.
- Php-fail, mis kirja saadab.
Html-kood sisaldab teavet selle kohta, milliseid sisestusvälju tuleb näidata ja nende pealdisi. CSS-stiilid vastutavad vormi enda visuaalse kujunduse ja andmete kuvamise eest. Kui klõpsate saatmisnupule, kutsutakse php fail, mis saadab kirja määratud meilile. Vaatame vormi lähtekoodi hiljem lähemalt.
HTML-i tagasiside vormi kood
Esiteks esitame saidi tagasiside vormi täieliku koodi HTML-vormingus.
Vorm ise asub html-märgendite vahel
. Vormi silt iseNagu näete, loob kogu vorm sildi atribuutidega action=mail.php(viit saidi lehele, kus asub sisestatud andmete töötlemise skript) ja meetod=postitus(andmete serverisse saatmise meetod). Sildi abil loodud üksikud read täiesti mõistetavate omadustega. Üksikute vormielementide, teksti, fontide jms asukoht. saate seda muuta vastavalt oma saidi kujundusele. Sildis seatakse teate teksti sisestamise ala mõõdud: ridade ja veergude arv (rows="3" cols="25").
3. Teeme uue lehe mail.php, mis sarnaneb tavalisele HTML-ile, kuid laiendiga .php. Täielik lehe kood on näidatud joonisel 2:
if (isset($_POST["nimi"])) ($nimi = $_POST["nimi"];)
if (isset($_POST["e-post"])) ($email = $_POST["e-post"];)
if (isset($_POST["sega"])) ($mess = $_POST["segadus"];)
$to = "pupkin@rambler.ru"; /*Sisesta oma emaili aadress*/
$headers = "Sisutüüp: tekst/lihtne; charset=utf-8";
$subject = "Sõnum teie saidilt";
$message = "Saatja nimi: $nimi \nE-posti aadress: $email \nSõnum: $mess";
$saada = post($saataja, $teema, $sõnum, $päised);
if ($send == "true")
{
kaja" Täname sõnumi saatmise eest!
";
kaja" Klõpsake avalehele naasmiseks";
}
muidu
{
kaja"
Viga. Sõnumit ei saadetud!";
}
?>
Joonis 2. Tagasiside vormi töötlemise lehe kood
Nende linkide aadressid, millele peate tähelepanu pöörama, on punasega esile tõstetud:
- pupkin@rambler.ru - asendage Pupkini aadress oma e-posti aadressiga, kuhu saadetakse sõnumeid nii saidi külastajatelt kui ka väsimatutelt rämpspostitajatelt. Muide, nende eest kaitsmiseks sisestatakse vormi sageli nn captcha. CAPTCHA- Täielikult automatiseeritud avalik Turingi test arvutite ja inimeste eristamiseks – täielikult automatiseeritud avalik Turingi test arvutite ja inimeste eristamiseks). Tavaliselt on need väga moonutatud numbrid ja tähed, mis palutakse teil enne sõnumi saatmist sisestada. Räägime captchast ühes järgmistest artiklitest.
Kui soovite saata kirju mitmele aadressile, loetlege need lihtsalt komadega eraldatuna. - a href=index.html - saidi peamise (kodu)lehe aadress.
Leht loodud mail.php tuleb paigutada samasse saidi kataloogi (kataloog, kaust), kus asub tagasiside vormiga leht.
Kontrollige tagasisidevormi funktsionaalsust. Kui kõik on hoolikalt tehtud, siis pärast vormi täitmist ja vajutamist saada sõnum Ilmuma peaks järgmine tekst: " Täname sõnumi saatmise eest. avalehele naasmiseks". Pärast seda leiate oma postkastist (või teisest, mille määrasite tagasisidevormi loomisel) oma sõnumi oma kallimale.
Kommentaar: mõnel hostisaidil ei hakka uus (just saidile paigaldatud) tagasisidevorm kohe tööle ning esimesed kirjad ei jõua üldse kohale või jõuavad kohale 1-2-päevase hilinemisega. Tõenäoliselt toimub "käikude lihvimine" ja siis töötab kõik hästi. Lisaks ei jõua mõnede hostimissaitide kirjad teatud aadressidele, näiteks oli mul Rambleri ja Mail.ru postkastiga probleeme. Nende probleemide lahendamiseks võtke ühendust oma majutajaga – tavaliselt nad aitavad.
Mõnikord tekib kirjeldatud tagasisidevormi kasutamisel probleeme kodeerimisega. Kui sissetulevas kirjas koosneb tekst omakeelse kirillitsa asemel “hulludest koodidest” ehk tühjadest ruutudest, siis tuleb kodeering käsitsi valida, mis on muidugi ebamugav. Selle vältimiseks kontrollige, kas teie tagasisidevormiga leht on kodeeritud charset=utf-8. Kui kasutate programmi Adobe Dreamweaver, siis selleks peate valima menüüjaotise Redigeerimine – lehe omadused – kodeering.
Saidifailide kodeerimise probleemi käsitletakse üksikasjalikumalt artiklis Probleemid kodeerimisega tagasiside vormis.
Kirjeldatud näites kuvatakse lihtsuse huvides teade kirja saatmise kohta tühjal lehel. Loomulikult võite selle paigutada oma saidi mis tahes lehele, et külastaja saaks navigeerimise (menüü) abil valida, mida edasi teha. Selleks sisestage PHP-kood (see, mis asub<?php enne ?> ) soovitud asukohta menüülehel ja muutke selle nimeks mail.php.
Lisaks tagasiside vormi enda postitamisele on soovitatav kontrollida, kas külastaja on selle väljad õigesti täitnud. Seda tuleb teha selleks, et sa ei saaks tühje kirju ja sinu postkast ei oleks ummistunud prügiga, mille on saatnud naljamehed, kes armastavad lihtsalt nuppu vajutada saada sõnum. Meetodid tagasiside vormi täitmise kontrollimiseks ja rämpsposti eest kaitsmiseks on kirjeldatud artiklites "
Tagasiside vorm saidi kohta, mida ma teile näitan, põhineb Ajaxi tehnoloogia kasutamisel. Kuid ärge muretsege, te ei pea seda teadma, kõik on juba valmis, peate vaid selle vormi installima ja enda jaoks kohandama!
Poisid, stsenaarium on juba ammu aegunud. Mõne jaoks see töötab, teiste jaoks mitte. Ja ma olen liiga laisk, et seda välja mõelda, rääkimata selle värskendamisest. Nii et katsetage oma äranägemise järgi.
PHP tagasiside vorm saadetud meili teel
See veebisaidi tagasiside vorm on iseenesest väga funktsionaalne, sellega on ühendatud mitmed pluginad, mis loovad atraktiivse välimuse ja kontrollivad sinu sisestatud andmete kehtivust (loe õigsust). Need pistikprogrammid töötavad suure ja võimsa peal! Ja neid nimetatakse nii:
1. JQTransform– pistikprogramm, mis võimaldab muuta meie tagasiside vormi ilusaks!
2. formValidator– ja see plugin kontrollib kontaktivormi sisestatud teabe õigsust ja kui midagi juhtub, kuvab vihjeid!
Selle vormi täielikuks toimimiseks kasutatakse klassi PHPMailer. Peetakse üheks parimaks!
Märkus nutikamatele:
Saidi tagasisidevormi saab teha HTML-is! Kuid see hakkab tööle ainult PHP abiga! Ja ei midagi muud!
See on mina neile, kes otsivad tagasisidevormi ainult HTML-is. Sa teed seda, aga see ei tööta!
Seetõttu peab teie oma toetama PHP-d ja selle kontaktivormi jaoks peab PHP olema vähemalt versioon 5. Loodan, et tegin asja selgeks? Lisaks toetab neid tingimusi nüüd iga tavaline hostimine!
Kaevasin selle tagasiside vormi kodulehelt www.tutorialzine.com, link viib otse algsele lehele, st. selle vormi autori veebisait!
Seal on kõik inglise keeles, nii et pidime Sashaga veidi nokitsema, et seda kontaktivormi ja sellega ühendatud pluginaid endid venestada.
Ausalt öeldes askeldasime selle “ankeedi” kallal kaks päeva, sest hakkasid esile kerkima erinevad vead ja me ei tahtnud postitada tagasisideankeeti, mis polnud lõpuni täidetud, eriti nii ilusat! Nii et kui armastate kõike ise teha ja see mõte torkab teie helgeima peaga - selle vormi ise venestamiseks annan teile paar näpunäidet, kuna te ei piirdu ainult fraaside tõlkimisega:
1. See tagasisidevorm on loodud kodanluse jaoks ja laaditi sealt alla, nii et see saadab teile tavaliste vene tähtede asemel krakozyabl. Saage aru kodeerimisest. Ja üldiselt seostatakse sellega kõik "hülged"!
2. Valideerimisskript ei saa esialgu meie tähtedest aru, seega tuleb need sinna kirjutada!
3. Isegi pärast neid samme, kui määrate kirja teema vene keeles, saabub kiri koos teemaga - Teema puudub (loodan, et kirjutasin õigesti), seda saab ravida, kui määrata kodeering PHPMailer klassi failis .
4. Algsel kujul suruti sisestusväljadel olev tekst alla, mitte keskele. See on JQTransformi pistikprogrammi tõrge.
Tundub, et kõik oli välja kirjutatud ja hoiatatud. Liigume edasi!
Tere, kallis lugeja, täna valmistasin teile ette maitsva html-i tagasiside vormi, mis töötab ilma Ajaxi tehnoloogia abil lehte uuesti laadimata + võimas päästik, mis motiveerib teie külastajaid vormi kasutama. Minu ajaveebi lugejad arutasid väga aktiivselt minu eelmist artiklit sihtlehel, nüüd hindame ja vaatame valmis uut vormi. Kõik vajalik artiklile lisatud lähtekood ja demo , analüüsime ka töö ja ühenduse struktuuri.
UPD: Parandatud viga teemareal oleva nimekodeeringuga. Nüüd kuvatakse kõik õigesti. Täname lugejat (Ekaterina Karacheva)
Vormi enda vorming sisaldab ka PHP-s käitleja faili, lisaks on tööks vaja jquery teeki ja skripte, aga esiteks, ma ei laadi seda liiga kauaks - liigume edasi ülevaate juurde ja meie tagasiside analüüs.
HTML tagasiside vorm – töö struktuur
Meie vorm näeb välja selline:
Mis mõtet siin on? Paremal pool on selline vorm, aga vasakusse serva tegin spetsiaalse ploki, mis julgustab Sinu külastajat oma kontaktandmed kohe sisestama! Saladus on lihtne: kas näete vasakpoolses plokis kuupäeva ja kellaaega? Kogu aeg kuvatakse tänane kuupäev, aja jooksul arvutatakse nende kahe tunni vahemik praegusest tunnist, oletame, et kui teie kell on praegu 13:14, siis on tunnivahemik: 12-14. Vaata, kuidas see töötab)))
Külastaja näeb: vau, täna on allahindlus ja ma olin just õigel ajal, on ka allahindlus! Peab kohe võtma! - See on meie päästik.
Laadisin alla html-i tagasiside vormi lähtekoodi, vaatasin demo - arvan, et olen piisavalt mänginud)) Nüüd kõige olulisemast, tööpõhimõttest:
Sisestusvormi väljade valideerimine toimub töötleja failis kontakt.php Allpool näete programmikoodi loendis, et vormil endal ilmub teade vigade ja kirja eduka saatmise kohta, selline näeb see välja pärast saatmist:
Vormitöötleja lähtekood
Kleepige ritta 52 oma e-posti, nii et kõik kirjad saadetakse määratud e-posti aadressile.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | < 1) { $error .= "Введите ваше сообщение. <".$tel."> ".$error." ";
}
}
?>
|
"; ) // Telefoni kinnitusfunktsioon ValidateTel($valueTel) ( $regexTel = "/^(7,12)$/"; if($valueTel == "") ( return false; ) else ( $string = preg_replace( $regexTel, "", $valueTel); ) return tühi($string) ? true: false; ) if(!$tel) ( $error .= "Palun sisesta telefoninumber.
"; ) if($tel && !ValidateTel($tel)) ( $error .= "Sisesta kehtiv telefoninumber.
"; ) if(!$error) // Kontrolli sõnumit (pikkust) if(!$message || strlen($message)< 1)
{
$error .= "Введите ваше сообщение.
";// See rida seab tähtede kirjutamisele minimaalse piirangu. ) if(!?utf-8?b?". base64_encode($name) ."?="; $message ="\n\nNimi: " .$ nimi."\n\nTelefoninumber: " .$tel."\n\nSõnum: ".$sõnum."\n\n"; $mail = mail("teie_email@gmail.com", $subject, $message , "Saatja: ".$name_tema."<".$tel.">"."Reply-To: ".$email." "." X-Mailer: PHP/" . phpversion()); if($mail) ( echo "OK"; ) ) else ( echo "
Vormi jõudlus
Postkasti kirjade saamiseks muutke ülalmainitud rida. Soovitan kasutada gmail.com posti, vormilt genereeritud kirja saamisel ei teki viivitusi ega ummikuid. Ma hoiatasin sind, sest... Lugejatel oli palju küsimusi (aadressile mail.ru kirjad ei jõua). Olge sellega ettevaatlik.
Täidame kõik väljad, pange tähele, et telefoninumber on sisestatud 8-ga - kirjutasin spetsiaalselt vihjesse kaheksaga numbri "89251122333". Tähemärgi sisestamisel «+» Ilmub veateade. Kui kellelgi seda vaja on, on see lihtne töötlejasse lisada «+» .
Täidetud vorm testiandmetega
Kiri postkasti
Nagu näete, saime kirja kõigi kolme väljaga, mis olid täidetud ja saadetud. Käsitlejas muutub kirja “Taotlus saidilt” päis kontakt.php
Kõik toimib hästi, tore on kommentaarides kuulda teie tagasisidet (konstruktiivset kriitikat), kui teil on raskusi ja ei saa millegagi hakkama, siis kirjutage mulle VK-sse (leiate selle kontaktandmetest ). Loodan, et teile meeldis selle tagasisidevormi (teenuste tellimine, rakendus) ja tegevusele kutsuva päästiku sümbioosi disain ja funktsionaalsus. Edu kõigile töös ja positiivset suhtumist, hüvasti))
Valmistatud toetusel
Praktikas on üks levinumaid ülesandeid tagasisidevormi rakendamine. Peate silmas selle HTML-koodi kirjutamist, CSS-is kujundamist, PHP-skripti loomist, mis töötleks kasutajalt saadud andmeid ja saadaks need meie postile, JS-skripti kirjutamist, mis kontrolliks vormi sisestatud andmete adekvaatsust, kaitsmist meie vaimusünnitus rämpspostist, nii et meie postkast ei kukkunud robotirünnakute tõttu kokku.
Kõiki ülaltoodud punkte käsitletakse meie ülevaates ja kommenteeritakse üksikasjalikult.
Alustame siis tagasisidevormi loomisega:
HTML
Kõigepealt kirjutame HTML-koodi, mis määrab väljad, mida kasutaja täidab. Need vormistatakse tulevikus. Vormi kood näeb välja selline:
< form method= "post" action= "mail.php" > < div class = "left" > < label for = "name" >Nimi: label> < input maxlength= "30" type= "text" name= "name" /> < label for = "phone" >Telefon: label> < input maxlength= "30" type= "text" name= "phone" /> < label for = "mail" >E-post: label> < input maxlength= "30" type= "text" name= "mail" /> div> < div class = "right" > < label for = "message" >Sõnum: label> < textarea rows= "7" cols= "50" name= "message" > textarea> < input type= "submit" value= "Saada" /> div> form>
Ja visuaalselt näeb see nüüd välja selline:
Olen nõus, siiani on kõik kole ja midagi pole selge, aga me alles alustasime.
Vaatame ülaltoodud koodi üksikasjalikult:
< form method= "post" action= "mail.php" > … form>
Vormi loomiseks peate kasutama vormisilti. Tema määrab kooditõlgi jaoks vormi alguse ja lõpu. Sellel, nagu igal sildil, on terve hulk atribuute, kuid vormi töötamiseks on vaja ainult kahte, need on meetod (serverile päringu saatmise meetod, vormide standardina kasutatakse postitust) ja tegevus ( näitab vormitöötleja faili teed, nimelt jaotises See fail sisaldab PHP-skripti, mis saadab seejärel kasutaja sisestatud väärtused meile meili teel. Meie puhul näeme, et selle faili nimi on mail.php ja see asub samas saidikataloogis, kus leht, mida me kaalume).< input maxlength= "30" type= "text" name= "name" />
Järgmisena on meil sisendid. Need on tegelikult vormiväljad ise, kuhu kasutajad sisestavad meile vajaliku teabe (type="text" näitab, et see on tekst). Atribuut maxlength määrab, mitu tähemärki saab kasutaja antud vormiväljale sisestada. Kõige olulisem atribuut on nimi – see määrab konkreetse välja nime. Nende nimede järgi töötleb PHP skript hiljem talle sisestatavat teavet. Soovi korral saab määrata ka kohahoidja atribuudi, mis kuvab välja sees teksti, mis kaob, kui kursor selle sisse asetada. Üks kohahoidjaga seotud probleeme on see, et mõned vanemad brauserid seda ei toeta.< label for = "name" >Nimi: label>
Kasutatakse, kui oleme kohahoidjatest loobunud. Tavalise välja allkiri, atribuut for ütleb, millisele konkreetsele väljale see allkiri viitab. Väärtus näitab meid huvitava välja nime.< textarea rows= "7" cols= "50" name= "message" > textarea>
Nii nagu sisestus, on ka see mõeldud kasutajale teabe sisestamiseks, ainult seekord on väli kohandatud pikkade sõnumite jaoks. Rows määrab välja suuruse ridades, veerud tähemärkides. Üldiselt määravad nad meie põllu kõrguse ja laiuse.< input type= "submit" value= "Saada" />
Type="submit" ütleb meile, et see on vormi esitamise nupp ja väärtus määrab selle nupu sees oleva teksti.< div class = "right" > div>
kasutatakse ainult vormi edasiseks visuaalseks kujundamiseks.
CSS
Selleks, et meie tagasisidevorm näeks esinduslik välja, tuleb see vormindada. Järgmise tulemuse saamiseks:
Kasutasime seda koodi:
vorm ( taust: #f4f5f7; polster: 20px; ) vorm . vasakule, vorm . paremale (kuva: inline-blokk; vertikaaljoondus: ülemine; laius: 458 pikslit; ) vorm . parem ( täidis- vasak: 20 pikslit; ) silt ( ekraan: plokk; fondi suurus: 18 pikslit; tekst- joondus: keskel; veeris: 10 pikslit 0 pikslit 0 pikslit 0 pikslit; ) sisend, tekstiala ( ääris: 1px solid #82858D; polster: 10px; fondi suurus: 16 pikslit; laius: 436 pikslit; ) tekstiala ( kõrgus: 98 pikslit; veeris- alumine: 32 pikslit; ) input[ type= "submit" ] ( laius: 200 pikslit; hõljumine: paremal; ääris: puudub; taust: #595B5F; värv: #fff; teksti teisendus: suurtähed; )
Ma ei näe mõtet CSS-i üksikasjalikult kirjeldada; juhin teie tähelepanu ainult põhipunktidele:
- Vormi iga sildi jaoks ei ole vaja kujundust kirjutada. Proovige oma selektorid üles ehitada nii, et saaksite kujundada kõik vajalikud elemendid paari koodireaga.
- Ärge kasutage joonte katkestamiseks ja taande loomiseks tarbetuid tüübisilte < br>, < p> jne. Ekraaniga CSS: plokk ja veeris koos polsterdusomadustega saavad nende ülesannetega hästi hakkama. Lisateavet selle kohta, miks te ei peaks seda kasutama < br> küljenduses üldiselt saate lugeda artiklist Tag br, aga kas see on tõesti vajalik? .
- Vormides ei tohiks kasutada tabelipaigutust. See on vastuolus selle sildi semantikaga ja otsingumootorid armastavad semantilist koodi. Dokumendi visuaalse struktuuri kujundamiseks vajame ainult div-märgendeid ja CSS-is määratud kuvamise atribuute: inline-block (korrastab plokid ritta) ja vertikaalne joondamine: top (takistab nende hajumist üle ekraani) , seadke need vajalikule kõrgusele ja voila, ei midagi üleliigset ja kõik asub nii nagu vaja.
Neile, kes soovivad säästa oma aega veebilehe kujundamisel, võin soovitada veebisaitide loomisel kasutada CSS-i raamistikke, eriti omakirjutatud. Minu valik selles osas on Twitter Bootstrap. Saate vaadata õppetundi, kuidas selle abil vorme kujundada.
PHP
Noh, on aeg oma vorm tööle panna.
Läheme saidi juurkataloogi ja loome seal faili mail.php, mille tee määrasime eelnevalt vormimärgendi action atribuudis.
Lõppkokkuvõttes näeb tema kood välja selline:
Tema number: " . $phone ."
Tema post: " . $mail . "
Tema sõnum: ". $sõnum, ) ; kaja "Sinu sõnum on edukalt saadetud!
Varsti saate vastuse
$tagasi"; väljumine; ) else ( kaja ; väljuma ; ) ?>
Võite selle dokumendi HTML- ja CSS-i osade arutelu vahele jätta. Oma olemuselt on see tavaline veebileht, mida saad kujundada vastavalt oma soovidele ja vajadustele. Vaatame selle kõige olulisemat osa - PHP-skripti vormi töötlemiseks:
$tagasi = "
\" javascript: history.back()\" >Mine tagasi
" ;Selle reaga loome lingi eelmisele lehele naasmiseks. Kuna me ei tea ette, milliselt lehelt kasutaja sellele lehele jõuab, tehakse seda väikese JS-funktsiooni abil. Tulevikus pääseme sellele muutujale lihtsalt juurde, et kuvada seda vajalikes kohtades.
if (! tühi ($_POST [ "nimi" ] ) ja ! tühi ($_POST [ "telefon" ] ) ja ! tühi ($_POST [ "mail" ] ) ja ! tühi ($_POST [ "sõnum" ] ) ) ( //käitleja sisemine osa) muidu ( kaja "Sõnumi saatmiseks täitke kõik väljad! $tagasi"; väljumine; )
Siia lisame vormikontrolli, et veenduda väljade täitumises. Nagu arvasite, kirjutame $_POST["nimi"] osas jutumärkidesse oma sisendite atribuudi nimi väärtuse.
Kui kõik väljad on täidetud, hakkab skript töötlema andmeid oma sisemises osas, kuid kui vähemalt üks väli on täitmata, siis kuvatakse kasutaja ekraanile teade, mis palub tal kõik täita. vormi väljad kajavad vastu "Sõnumi saatmiseks täitke kõik väljad! $tagasi" ja link naasmiseks eelmisele lehele, mille lõime kõige esimese reaga.
Järgmisena kleepime vormitöötleja sisemisse ossa:
$nimi = trimmi(riba_sildid($_POST["nimi"])); $telefon = trimmi(riba_sildid($_POST["telefon"])); $post = trimmi(riba_sildid($_POST["post"])); $teade = trimmi(riba_sildid($_POST["sõnum"]));
Seega puhastasime kasutaja sisestatud andmed html-märgenditest ja lisatühikutest. See võimaldab meil kaitsta end meile saadetud sõnumites pahatahtliku koodi saamise eest.
Kontrolli saab muuta keerulisemaks, kuid see on teie äranägemisel. Oleme serveri poolele juba paigaldanud minimaalse kaitse. Ülejäänu teeme kliendi poolel JS-i abil.
Ma ei soovita serveripoolsest vormikaitsest JS-i kasuks täielikult loobuda, sest kuigi äärmiselt harva, on unikaalseid, mille JS on brauseris keelatud.
Pärast siltide puhastamist lisage sõnumi saatmine:
mail ( "mail_to_receive_messages@gmail.com",
"Kiri teie_saidi_aadressilt", "Kirjutas sulle: " . $nimi . "
Tema number: " . $phone ."
Tema post: " . $mail . "
Tema sõnum: ". $sõnum "Content-type:text/html;charset=windows-1251")
;
Just see liin vastutab sõnumi loomise ja meile saatmise eest. See täidetakse järgmiselt:
- "mail_to_receive_messages@gmail.com" – siia sisestate oma meili jutumärkide vahele
- "Kiri teie_saidi_aadressilt" on teie meilile saadetava sõnumi teema. Siia võib kirjutada mida iganes.
- "Ma kirjutasin teile: ".$nimi." < br /> Tema number: ".$phone." < br /> Tema email: ".$mail." < br /> Tema sõnum: ".$message – moodustame sõnumi teksti enda. $nimi – sisestame kasutaja poolt täidetud info, sisenedes eelmise sammu väljadele, jutumärkides kirjeldame, mida see väli tähendab, koos märgendiga < br /> Katkeme joone nii, et sõnum tervikuna oleks loetav.
- Content-type:text/html;charset=windows-1251 – lõpus on selge märge sõnumis edastatava andmetüübi ja selle kodeeringu kohta.
TÄHTIS!
Dokumendi peas määratud kodeering ( < meta http- equiv= "Content-Type" content= "text/html; charset=windows-1251" /> ), kodeering sõnumist Content-type:text/html;charset=windows-1251 ja üldiselt PHP faili kodeering peab kattuma, vastasel juhul kuvatakse posti teel saabunud kirjades vene keele asemel “hullud sõnad” või Ingliskeelsed tähed.
Paljud inimesed ei näita otsesõnu saadetava kirja kodeeringut, kuid mõne e-posti kliendi puhul võib see tulevikus probleeme tekitada (postile saadetakse loetamatud kirjad), seega soovitan see siiski täpsustada.
Vormi kontrollimine sisestatud andmete adekvaatsuse osas
Et kasutajad kogemata väljad vahele ei jätaks ja kõik õigesti täidaksid, tasub sisestatud andmed üle kontrollida.
Seda saab teha nii PHP-s serveri poolel kui ka JS-is kliendi poolel. Kasutan teist varianti, sest nii saab inimene koheselt teada, mis ta valesti tegi ja vea parandada ilma täiendavaid leheküljeüleminekuid tegemata.
Kleepime skriptikoodi samasse faili, kus meil on vormi HTML-osa. Meie puhul näeb see välja järgmine:
< script>funktsioon checkForm(vorm) ( var nimi = vorm. nimi. väärtus; var n = nimi. vaste(/ ^[ A- Za- zA- Jaa- z ] * [ A- Za- zA- Jaa- z ] + $/ ) ; if (! n) ( hoiatus( "Sisestatud nimi on vale, palun parandage viga") ; tagastama vale ; ) var telefon = vorm. telefon. väärtus; var p = telefon. vaste(/ ^[ 0 - 9 + ] [ 0 - 9 - ] * [ 0 - 9 - ] + $/ ) ; if (! p) ( hoiatus( "Telefoninumber sisestati valesti") ; tagastama vale ; ) var mail = vorm. mail. väärtus; var m = post . match(/ ^[ A- Za- z0- 9 ] [ A- Za- z0- 9 \. _- ] * [ A- Za- z0- 9 _] *@ ([ A- Za- z0- 9 ] + ([ A- Za- z0- 9 - ] * [ A- Za- z0- 9 ] + ) * \. ) + [ A- Za- z] + $/ ) ; if (! m) ( hoiatus( "Sisestatud meiliaadress on vale, palun parandage viga") ; tagastama vale ; ) tagasta tõene ; )
Noh, nüüd tavaline analüüs:
Selle eest, nii et kui klõpsate vormi esitamise nupul, kontrollime seda Lisame oma skripti käivitamise vormisildile:
< form method= "post" action= "mail.php" onSubmit= "return checkForm(this)" >
Võtame nüüd kontrollnimekirja punktide kaupa:
Nagu näete, on selline minitšekk kirjutatud iga meie välja kohta. Tõstsin ekraanipildil ühe välja kontrolli punase ruuduga esile, teiste väljade puhul on sellel sarnane struktuur ja kui on vaja välja lisada või eemaldada, saate seda nüüd hõlpsalt teha.