Apskatīsim vienkāršas un ātras atsauksmju veidlapas piemēru vietnei, kas rakstīta html un php.
Kāpēc forma ir html un php?
Tādiem CRM kā Wordpress, Joomla un citiem varat atrast dažādus spraudņus, lai vietnē instalētu atsauksmju veidlapu. Tomēr, kas man nepatīk šādos spraudņos, ir to sliktā veiktspēja un palēnina vietnes darbību. Tā kā šie spraudņi joprojām veido to pašu HTML kodu, es iesaku izmantot vienkāršu, bet pilnībā funkcionējošu veidlapu, kuru var arī modificēt, lai veiktu atzvanīšanu no vietnes.
Kontaktforma html formātā tiek vienkārši ievietota Joomla, OpenCart admin panelī, un, ja jūsu vietne ir pašrakstīta vai izmantojat kādu ietvaru, parādītā koda izmantošana nebūs sarežģīta un, pats galvenais, vietne tiks ielādēta kā ātri kā pirms koda ievietošanas.
Struktūra, kā tiek organizēta atgriezeniskā saite par vietni
Lai viss darbotos, iedošu struktūru, kas nepieciešams, lai kontaktu vai zvana forma darbotos?
- Lapā ievietots HTML kods + css stili.
- Php fails, kas nosūta vēstuli.
Html kods satur informāciju par to, kuri ievades lauki ir jāparāda, un to paraksti. CSS stili ir atbildīgi par pašas formas vizuālo noformējumu un datu attēlošanu. Noklikšķinot uz pogas nosūtīt, tiek izsaukts php fails, kas nosūta vēstuli uz norādīto e-pastu. Apskatīsim veidlapas avota kodu sīkāk vēlāk.
HTML atsauksmju veidlapas kods
Pirmkārt, mēs nodrošināsim pilnu kodu atsauksmju veidlapai par vietni HTML formātā.
Pati forma atrodas starp html tagiem
. Pats formas tagsKā redzat, visu formu veido tags ar atribūtiem action=mail.php(norāde uz vietnes lapu, kurā atrodas ievadīto datu apstrādes skripts) un metode=post(datu nosūtīšanas metode uz serveri). Atsevišķas rindas, kas izveidotas ar tagu ar pilnīgi saprotamiem atribūtiem. Atsevišķu formas elementu, teksta, fontu u.c. atrašanās vieta. varat to mainīt atbilstoši savas vietnes dizainam. Tagā ir iestatīti ziņojuma teksta ievades laukuma izmēri: rindu un kolonnu skaits (rows="3" cols="25").
3. Izveidosim jaunu lapu mail.php, līdzīgi parastajam HTML, bet ar paplašinājumu .php. Pilns lapas kods ir parādīts 2. attēlā:
if (isset($_POST["nosaukums"])) ($nosaukums = $_POST["nosaukums"];)
if (isset($_POST["e-pasts"])) ($email = $_POST["e-pasts"];)
if (isset($_POST["nekārtība"])) ($mess = $_POST["nekārtība"];)
$to = "pupkin@rambler.ru"; /*Ievadiet savu e-pasta adresi*/
$headers = "Satura veids: teksts/vienkāršs; charset=utf-8";
$subject = "Ziņojums no jūsu vietnes";
$message = "Sūtītāja vārds: $name \nE-pasta adrese: $email \nZiņojums: $mess";
$sūtīt = pasts($kam, $tēma, $ziņa, $galvenes);
if ($send == "true")
{
atbalss" Paldies, ka nosūtījāt savu ziņojumu!
";
atbalss" Klikšķis lai atgrieztos galvenajā lapā";
}
cits
{
atbalss"
Kļūda. Ziņa nav nosūtīta!";
}
?>
2. att. Atsauksmes veidlapas apstrādes lapas kods
Saišu adreses, kurām jāpievērš uzmanība, ir iezīmētas sarkanā krāsā:
- pupkin@rambler.ru - nomainiet Pupkin adresi ar savu e-pasta adresi, kur tiks saņemtas ziņas no vietnes apmeklētājiem, kā arī no nenogurstošiem surogātpasta izplatītājiem. Starp citu, lai aizsargātos pret tiem, veidlapā bieži tiek ievadīts tā sauktais captcha. CAPTCHA- Pilnīgi automatizēts publiskais Tjūringa tests, lai atšķirtu datorus un cilvēkus — pilnībā automatizēts publiskais Tjūringa tests, lai atšķirtu datorus un cilvēkus). Parasti tie ir ļoti izkropļoti cipari un burti, kas jums tiek lūgts ievadīt pirms ziņojuma nosūtīšanas. Mēs runāsim par captcha vienā no šiem rakstiem.
Ja vēlaties nosūtīt vēstules uz vairākām adresēm, vienkārši norādiet tās, atdalot tās ar komatiem. - a href=index.html - vietnes galvenās (mājas) lapas adrese.
Izveidota lapa mail.php jāievieto tajā pašā vietnes direktorijā (direktorijā, mapē), kurā atrodas lapa ar atsauksmju veidlapu.
Pārbaudiet atsauksmju veidlapas funkcionalitāti. Ja viss ir izdarīts rūpīgi, tad pēc veidlapas aizpildīšanas un nospiešanas Nosūtīt ziņu Jāparādās šādam tekstam: " Paldies, ka nosūtījāt savu ziņojumu. lai atgrieztos galvenajā lapā Pēc tam pastkastītē (vai citā, kuru norādījāt, veidojot atsauksmju veidlapu) jūs atradīsiet savu ziņojumu savam mīļotajam.
komentēt: dažās mitināšanas vietnēs jaunā (tikko vietnē instalētā) atsauksmju veidlapa nesāk darboties uzreiz, un pirmās vēstules nesanāk vispār vai pienāk ar 1-2 dienu kavēšanos. Iespējams, notiek "zobratu pieslīpēšana" un tad viss darbojas labi. Turklāt vēstules no dažām hostinga vietnēm nesasniedz noteiktas adreses, piemēram, man radās problēmas ar pastkastīti vietnēs Rambler un Mail.ru. Lai atrisinātu šīs problēmas, sazinieties ar savu saimnieku – viņi parasti palīdz.
Dažreiz, izmantojot aprakstīto atsauksmju veidlapu, rodas problēmas ar kodēšanu. Ja ienākošajā vēstulē, nevis vietējās kirilicas alfabēts, teksts sastāv no “trakiem kodiem” vai tukšiem laukumiem, tad kodējums ir jāizvēlas manuāli, kas, protams, ir neērti. Lai tas nenotiktu, pārbaudiet, vai jūsu lapa ar atsauksmju veidlapu ir kodēta charset=utf-8. Ja izmantojat programmu Adobe Dreamweaver, lai to izdarītu, ir jāizvēlas izvēlnes sadaļa Rediģēt — Lapas rekvizīti — Kodējums.
Vietnes failu kodēšanas problēma ir sīkāk aplūkota rakstā Kodēšanas problēmas atsauksmju veidlapā.
Aprakstītajā piemērā vienkāršības labad ziņojums par vēstules nosūtīšanu tiek parādīts uz tukšas lapas. Protams, varat to ievietot jebkurā savas vietnes lapā, lai apmeklētājs varētu izmantot navigāciju (izvēlni), lai izvēlētos, ko darīt tālāk. Lai to izdarītu, ievietojiet PHP kodu (to, kas atrodas no<?php pirms tam ?> ) uz vajadzīgo vietu izvēlnes lapā un nomainiet tās nosaukumu uz mail.php.
Papildus pašas atsauksmju veidlapas ievietošanai ieteicams pārbaudīt, vai apmeklētājs ir pareizi aizpildījis tās laukus. Tas jādara, lai jūs nesaņemtu tukšas vēstules un jūsu pastkaste nebūtu aizsērējusi ar atkritumiem, ko sūta draiskuļi, kuriem vienkārši patīk spiest pogu Nosūtīt ziņu. Metodes atsauksmju veidlapas aizpildīšanas pārbaudei un aizsardzībai pret surogātpastu ir aprakstītas rakstos "
Vietnes atsauksmju veidlapa, kuru es jums parādīšu, ir balstīts uz Ajax tehnoloģijas izmantošanu. Bet neuztraucieties, jums tas nav jāzina, viss jau ir gatavs, jums atliek tikai instalēt šo veidlapu un pielāgot to sev!
Puiši, scenārijs jau sen ir novecojis. Dažiem tas darbojas, citiem ne. Un es esmu pārāk slinks, lai to izdomātu, nemaz nerunājot par tā atjaunināšanu. Tāpēc pārbaudiet pēc saviem ieskatiem.
PHP atsauksmju veidlapa, kas nosūtīta pa e-pastu
Šis vietnes atsauksmju veidlapa pati par sevi ir ļoti funkcionāla, tam ir pieslēgti vairāki spraudņi, kas veido pievilcīgu izskatu un pārbauda ievadīto datu derīgumu (lasīt pareizību). Šie spraudņi darbojas uz lielajiem un varenajiem! Un tos sauc šādi:
1. JQTransform– spraudnis, kas ļauj padarīt mūsu atsauksmju formu skaistu!
2. formValidator– un šis spraudnis pārbauda kontaktformā ievadītās informācijas pareizību un, ja kaut kas notiek, parāda rīka padomus!
Šīs veidlapas pilnīgai darbībai tiks izmantota klase PHPMailer. Tiek uzskatīts par vienu no labākajiem!
Piezīme gudrākajiem:
Vietnes atsauksmju veidlapu var izveidot HTML formātā! Bet tas sāks darboties tikai ar PHP palīdzību! Un nekas cits!
Tas ir man tiem, kas meklē atsauksmju veidlapu tikai HTML formātā. Jūs to izdarīsit, bet tas nedarbosies!
Tādēļ jums ir jāatbalsta PHP, un šai saziņas veidlapai PHP ir jābūt vismaz 5. versijai. Es ceru, ka es to paskaidroju? Turklāt tagad jebkurš normāls hostings atbalsta šos nosacījumus!
Šo atsauksmju veidlapu izraku vietnē www.tutorialzine.com, saite ved tieši uz sākotnējo lapu, t.i. šīs veidlapas autora vietne!
Tur viss ir angļu valodā, tāpēc mums ar Sašu nācās nedaudz pačalot, lai pārrusificētu šo kontaktformu un pašus spraudņus, kas ar to ir saistīti.
Godīgi sakot, mēs ar šo “veidlapu” ķērāmies divas dienas, jo sāka parādīties dažādas kļūdas, un mēs negribējām ievietot atsauksmju veidlapu, kas nebija pilnībā aizpildīta, it īpaši tik skaista! Tātad, ja jums patīk visu darīt pats, un jūsu gaišākajā galvā iešaujas doma - lai pats rusificētu šo formu, es jums sniegšu dažus padomus, jo jūs neaprobežosities tikai ar frāžu tulkošanu:
1. Šī atsauksmju veidlapa ir pielāgota buržuāzijai un tika lejupielādēta no turienes, tāpēc tā nosūtīs jums krakozyabl, nevis parastās krievu rakstzīmes. Izprotiet kodējumu. Un vispār ar to būs saistīti visi “roņi”!
2. Validācijas skripts sākotnēji nesaprot mūsu burtus, tāpēc tie būs jāraksta tur!
3. Arī pēc šīm darbībām, ja norādāt vēstules tēmu krievu valodā, vēstule pienāk ar tematu - Bez tēmas (ceru, ka uzrakstīju pareizi), to var izārstēt, ja PHPMailer klases failā norādāt kodējumu .
4. Sākotnējā formā teksts ievades laukos tika nospiests uz leju, nevis pa vidu. Šī ir spraudņa JQTransform kļūme.
Nu izskatās, ka viss tika izrakstīts un brīdināts. Ejam tālāk!
Sveicināts, dārgais lasītāj, šodien esmu jums sagatavojis garšīgu html atsauksmju veidlapu, kas darbojas bez lapas atkārtotas ielādēšanas, izmantojot Ajax tehnoloģiju + spēcīgu trigeri, kas motivēs jūsu apmeklētājus izmantot formu. Mana emuāra lasītāji ļoti aktīvi apsprieda manu iepriekšējo rakstu par galveno lapu, tagad mēs izvērtējam un skatāmies pabeigto jauno formu. Viss nepieciešamais rakstā pievienots pirmkods un demonstrācija , mēs arī analizēsim darba un savienojuma struktūru.
UPD: Izlabota kļūda ar nosaukuma kodējumu temata rindiņā. Tagad viss tiek parādīts pareizi. Mēs pateicamies lasītājai (Jekaterina Karačeva)
Pati veidlapas formātā ir iekļauts arī apdarinātāja fails PHP, turklāt darbam būs nepieciešama jquery bibliotēka un skripti, bet vispirms es to nelādēšu pārāk ilgi - pāriesim uz apskatu un mūsu atsauksmju analīze.
HTML atsauksmju forma - darba struktūra
Mūsu veidlapa izskatās šādi:
Kāda te jēga? Labajā pusē ir tāda forma, bet kreisajā pusē izveidoju īpašu bloku, kas mudinās Jūsu apmeklētāju nekavējoties ievadīt savu kontaktinformāciju! Noslēpums ir vienkāršs: vai kreisajā blokā redzat datumu un laiku? Šodienas datums tiks rādīts visu laiku, laika gaitā šo divu stundu diapazons tiek aprēķināts no pašreizējās stundas, pieņemsim, ja jūsu laiks tagad ir 13:14, tad stundu diapazons būs: no 12 līdz 14. Paskaties, kā tas strādā)))
Apmeklētājs redzēs: oho, šodien ir atlaide, un es biju tieši laikā, ir arī atlaide! Tas jāņem nekavējoties! – Tas ir mūsu sprūda.
Es lejupielādēju html atsauksmju veidlapas pirmkodu, apskatīju demonstrāciju - domāju, ka esmu spēlējis pietiekami)) Tagad par vissvarīgāko lietu, darbības principu:
Ievades formas lauku validācija notiek apdarinātāja failā contact.php Zemāk redzamajā programmas koda sarakstā pašā veidlapā parādās ziņojums par kļūdām un veiksmīgu vēstules nosūtīšanu, tā izskatās pēc nosūtīšanas:
Veidlapu apstrādātāja pirmkods
Ielīmējiet rindā 52 savu e-pastu, tāpēc visas vēstules tiks nosūtītas uz norādīto e-pastu.
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." ";
}
}
?>
|
"; ) // Tālruņa verifikācijas funkcija ValidateTel($valueTel) ( $regexTel = "/^(7,12)$/"; if($valueTel == "") ( return false; ) else ( $string = preg_replace( $regexTel, "", $valueTel); ) return empty($string) ? true: false; ) if(!$tel) ( $error .= "Lūdzu, ievadiet tālruņa numuru.
"; ) if($tel && !ValidateTel($tel)) ( $error .= "Ievadiet derīgu tālruņa numuru.
"; ) if(!$error) // Pārbaudiet ziņojumu (garumu) if(!$message || strlen($message)< 1)
{
$error .= "Введите ваше сообщение.
";// Šī rinda nosaka minimālo ierobežojumu burtu rakstīšanai. ) if(!?utf-8?b?". base64_encode($name) ."?="; $message ="\n\nNosaukums: " .$ vārds."\n\nTālruņa numurs: " .$tel."\n\nZiņojums: ".$ziņa."\n\n"; $mail = pasts("jūsu_e-pasts@gmail.com", $subject, $message , "No: ".$name_tema."<".$tel.">"."Atbildēt uz: ".$email." "." X-Mailer: PHP/" . phpversion()); if($mail) ( atbalss "OK"; ) ) else ( echo "
Veidlapas veiktspēja
Lai saņemtu vēstules uz savu pastkasti, mainiet rindiņu, ko minēju iepriekš. Iesaku izmantot gmail.com pastu, saņemot ģenerētu vēstuli no formas, nav nekādu aizķeršanos un aizķeršanos. Es tevi brīdināju, jo... Lasītājiem radās daudz jautājumu (vēstules mail.ru nenonāk). Esiet uzmanīgi šajā jautājumā.
Mēs aizpildām visus laukus, lūdzu, ņemiet vērā, ka tālruņa numurs tiek ievadīts ar 8 - es rīka padomos speciāli ierakstīju numuru ar astoņnieku “89251122333”. Ievadot rakstzīmi «+» Tiks parādīts kļūdas ziņojums. Ja kādam tas ir nepieciešams, to var viegli pievienot apstrādātājam «+» .
Aizpildīta veidlapa ar testa datiem
Vēstule pastkastītē
Kā redzat, mēs saņēmām vēstuli ar visiem trim laukiem, kas tika aizpildīti un nosūtīti. Apdarinātājā mainās vēstules “Pieprasījums no vietnes vietnes” galvene contact.php
Viss darbojas labi, būs patīkami dzirdēt jūsu atsauksmes (konstruktīvu kritiku) komentāros, ja jums ir kādas grūtības un nevarat tikt galā ar kaut ko, droši rakstiet man uz VK (atradīsiet kontaktinformācijā ). Ceru, ka jums patika šīs atgriezeniskās saites veidlapas (pakalpojumu pasūtīšanas, lietojumprogrammas) un uz darbību aicinoša trigera simbiozes dizains un funkcionalitāte. Veiksmi visiem darbā un pozitīvu attieksmi, čau))
Sagatavots ar atbalstu
Viens no praksē izplatītākajiem uzdevumiem ir atgriezeniskās saites veidlapas ieviešana. Jūs domājat tā HTML koda rakstīšanu, noformēšanu CSS, PHP skripta izveidošanu, kas apstrādātu no lietotāja saņemtos datus un nosūtītu tos uz mūsu pastu, JS skripta rakstīšanu, kas pārbaudītu formu ievadīto datu atbilstību, aizsargā mūsu brainchild no surogātpasta, lai mūsu pastkastīte nesabruka no botu uzbrukumiem.
Visi iepriekš minētie punkti tiks apspriesti mūsu pārskatā un detalizēti komentēti.
Tātad, sāksim veidot atsauksmju veidlapu:
HTML
Pirmkārt, mēs rakstām HTML kodu, kas norāda laukus, kurus lietotājs aizpildīs. Nākotnē tie tiks formalizēti. Veidlapas kods izskatās šādi:
< form method= "post" action= "mail.php" > < div class = "left" > < label for = "name" >Vārds: label> < input maxlength= "30" type= "text" name= "name" /> < label for = "phone" >Tālrunis: label> < input maxlength= "30" type= "text" name= "phone" /> < label for = "mail" >E-pasts: label> < input maxlength= "30" type= "text" name= "mail" /> div> < div class = "right" > < label for = "message" >Ziņa: label> < textarea rows= "7" cols= "50" name= "message" > textarea> < input type= "submit" value= "Sūtīt" /> div> form>
Un vizuāli tas tagad izskatās šādi:
Piekrītu, pagaidām viss ir neglīts un nekas nav skaidrs, bet mēs tikko sākām.
Apskatīsim iepriekš minēto kodu sīkāk:
< form method= "post" action= "mail.php" > … form>
Lai izveidotu veidlapu, ir jāizmanto formas tags. Tas ir tas, kurš nosaka koda tulka formas sākumu un beigas. Tam, tāpat kā jebkuram tagam, ir vesels atribūtu komplekts, taču, lai veidlapa darbotos, ir nepieciešami tikai divi, tie ir metode (pieprasījuma nosūtīšanas metode serverim, pastu izmanto kā standartu veidlapām) un darbība ( norāda ceļu uz veidlapas apstrādātāja failu, proti, šajā failā būs PHP skripts, kas pēc tam nosūtīs lietotāja ievadītās vērtības mums pa e-pastu. Mūsu gadījumā mēs redzam, ka šis fails saucas mail.php un tā atrodas tajā pašā vietnes direktorijā, kurā atrodas lapa, kuru apsveram).< input maxlength= "30" type= "text" name= "name" />
Tālāk mums ir ievades. Tie faktiski ir paši veidlapas lauki, kuros lietotāji ievadīs mums nepieciešamo informāciju (type="text" norāda, ka tas būs teksts). Atribūts maxlength norāda, cik rakstzīmju lietotājs var ievadīt noteiktā formas laukā. Vissvarīgākais atribūts ir nosaukums – tas norāda konkrēta lauka nosaukumu. Ar šiem nosaukumiem PHP skripts vēlāk apstrādās tajā ievadīto informāciju. Ja vēlaties, varat iestatīt arī viettura atribūtu, kas laukā parāda tekstu, kas pazūd, kad kursors tiek ievietots tajā. Viena no viettura problēmām ir tā, ka dažas vecākas pārlūkprogrammas to neatbalsta.< label for = "name" >Vārds: label>
Izmanto, ja esam atteikušies no vietturiem. Parasts lauka paraksts, atribūts for norāda, uz kuru konkrētu lauku šis paraksts attiecas. Vērtība norāda mūs interesējošā lauka nosaukumu.< textarea rows= "7" cols= "50" name= "message" > textarea>
Tāpat kā ievade, tā ir paredzēta lietotājam informācijas ievadīšanai, tikai šoreiz lauks ir pielāgots gariem ziņojumiem. Rindas norāda lauka lielumu rindās, kolonnas rakstzīmēs. Kopumā viņi nosaka mūsu lauka augstumu un platumu.< input type= "submit" value= "Sūtīt" />
Type="submit" norāda, ka šī ir poga veidlapas iesniegšanai, un vērtība norāda tekstu, kas būs šīs pogas iekšpusē.< div class = "right" > div>
tiek izmantoti tikai turpmākajam veidlapas vizuālajam noformējumam.
CSS
Lai mūsu atsauksmju veidlapa izskatītos reprezentabla, tā ir jāformatē. Lai iegūtu šādu rezultātu:
Mēs izmantojām šo kodu:
forma ( fons: #f4f5f7; polsterējums: 20px; ) forma . pa kreisi, forma . pa labi ( displejs: iekļauts bloks; vertikāls līdzinājums: augšpusē; platums: 458 pikseļi; ) forma . pa labi ( polsterējums- pa kreisi: 20 pikseļi; ) etiķete ( displejs: bloks; fonta izmērs: 18 pikseļi; teksts- līdzinājums: centrā; mala: 10 pikseļi 0 pikseļi 0 pikseļi 0 pikseļi; ) ievade, teksta apgabals ( apmale: 1px solid #82858D; polsterējums: 10 pikseļi; fonta izmērs: 16 pikseļi; platums: 436 pikseļi; ) teksta apgabals ( augstums: 98 pikseļi; mala- apakšdaļa: 32 pikseļi; ) input[ type= "submit" ] ( platums: 200 pikseļi; pludiņš: pa labi; apmale: nav; fons: #595B5F; krāsa: #fff; teksta pārveidošana: lielie burti; )
Es neredzu jēgu detalizēti aprakstīt CSS; es vēršu jūsu uzmanību tikai uz galvenajiem punktiem:
- Veidlapā nav jāraksta dizains katrai birkai. Mēģiniet izveidot atlasītājus tā, lai jūs varētu izveidot visus nepieciešamos elementus pāris koda rindiņās.
- Neizmantojiet nevajadzīgas tipa atzīmes, lai pārtrauktu līnijas un izveidotu atkāpes < br>, < p> uc CSS ar displeju: bloks un mala ar polsterējuma īpašībām lieliski tiek galā ar šiem uzdevumiem. Vairāk par to, kāpēc to nevajadzētu izmantot < br> izkārtojumā vispār var lasīt rakstā Tag br, bet vai tas tiešām ir vajadzīgs? .
- Veidlapām nevajadzētu izmantot tabulas izkārtojumu. Tas ir pretrunā ar šī taga semantiku, un meklētājprogrammas mīl semantisko kodu. Lai veidotu dokumenta vizuālo struktūru, mums ir nepieciešami tikai tagi div un CSS norādītie displeja rekvizīti: inline-block (sakārto blokus pēc kārtas) un vertical-align: top (neļauj tiem izkliedēties pa ekrānu) , iestatiet tos vajadzīgajā augstumā un voila, nekas lieks un viss atrodas tā, kā mums vajag.
Tiem, kas vēlas ietaupīt savu laiku mājaslapu dizainam, varu ieteikt, veidojot mājas lapas, īpaši pašu rakstītās, izmantot CSS ietvarus. Mana izvēle šajā ziņā ir Twitter Bootstrap. Varat noskatīties nodarbību, kā noformēt veidlapas, izmantojot to.
PHP
Nu, ir pienācis laiks likt mūsu formai darboties.
Mēs ejam uz mūsu vietnes saknes direktoriju un izveidojam tur mail.php failu, kuram iepriekš norādījām ceļu formas taga atribūtā action.
Galu galā viņa kods izskatīsies šādi:
Viņa numurs: " . $phone ."
Viņa pasts: " . $ pasts . "
Viņa vēstījums: ". $ziņa, ) ; atbalss "Jūsu ziņa ir veiksmīgi nosūtīta!
Drīzumā saņemsiet atbildi
$atpakaļ"; Izeja ; ) else ( atbalss ; iziet ; ) ?>
Varat izlaist šī dokumenta HTML un CSS daļu apspriešanu. Tā pamatā ir parasta vietnes lapa, kuru varat veidot atbilstoši savām vēlmēm un vajadzībām. Apskatīsim tā vissvarīgāko daļu - PHP skriptu formas apstrādei:
$atpakaļ = "
\" javascript: history.back()\" >Atgriezties
" ;Ar šo rindiņu mēs izveidojam saiti, lai atgrieztos iepriekšējā lapā. Tā kā mēs iepriekš nezinām, no kuras lapas lietotājs nokļūs šajā, tas tiek darīts, izmantojot nelielu JS funkciju. Nākotnē mēs vienkārši piekļūsim šim mainīgajam, lai parādītu to vajadzīgajās vietās.
ja (! tukšs ($_POST [ "vārds" ] ) un ! tukšs ($_POST [ "tālrunis" ] ) un ! tukšs ($_POST [ "pasts" ] ) un ! tukšs ($_POST [ "ziņa" ] ) ) ( //apdarinātāja iekšējā daļa) cits ( atbalss "Lai nosūtītu ziņojumu, aizpildiet visus laukus! $back"; Izeja ; )
Šeit mēs pievienojam veidlapas pārbaudi, lai pārliecinātos, ka lauki ir pilni. Kā jūs uzminējāt, $_POST["nosaukums"] daļā pēdiņās mēs ierakstām mūsu ievades atribūta nosaukuma vērtību.
Ja visi lauki ir aizpildīti, skripts sāks apstrādāt datus savā iekšējā daļā, bet, ja nav aizpildīts vismaz viens lauks, tad lietotāja ekrānā tiks parādīts ziņojums ar lūgumu aizpildīt visus veidlapas lauki atbalsojas “Lai nosūtītu ziņojumu, aizpildiet visus laukus! $back” un saite, lai atgrieztos iepriekšējā lapā, kuru izveidojām ar pašu pirmo rindiņu.
Tālāk mēs ielīmējam veidlapas apstrādātāja iekšējā daļā:
$nosaukums = apgriezt(sloksnes_tags($_POST["nosaukums"])); $phone = apgriezt(sloksnes_tags($_POST["tālrunis"])); $ pasts = apgriezt(sloksnes_tags($_POST["pasts"])); $ziņojums = trim(strip_tags($_POST["ziņojums"]));
Tādējādi mēs notīrījām lietotāja ievadītos datus no html tagiem un papildu atstarpēm. Tas ļauj mums pasargāt sevi no ļaunprātīga koda saņemšanas mums nosūtītajos ziņojumos.
Pārbaudes var padarīt sarežģītākas, taču tas ir jūsu ziņā. Mēs jau esam uzstādījuši minimālu aizsardzību servera pusē. Pārējo darīsim klienta pusē, izmantojot JS.
Es neiesaku pilnībā atteikties no veidlapu aizsardzības servera pusē par labu JS, jo, lai arī ārkārtīgi reti, ir unikāli, kuriem pārlūkprogrammā ir atspējots JS.
Pēc atzīmju tīrīšanas pievienojiet īsziņas nosūtīšanu:
pasts ( "mail_to_receive_messages@gmail.com",
"Vēstule no jūsu_vietnes_adreses", "Tev rakstīja: " . $vārds . "
Viņa numurs: " . $phone ."
Viņa pasts: " . $ pasts . "
Viņa vēstījums: ". $ziņa "Content-type:text/html;charset=windows-1251")
;
Tieši šī līnija ir atbildīga par ziņojuma ģenerēšanu un nosūtīšanu mums. To aizpilda šādi:
- “mail_to_receive_messages@gmail.com” — šeit starp pēdiņām ievietojat savu e-pastu
- “Vēstule no jūsu_vietnes_adreses” ir ziņojuma tēma, kas tiks nosūtīta uz jūsu e-pastu. Šeit jūs varat rakstīt jebko.
- "Es jums rakstīju: ".$name." < br /> Viņa numurs: ".$phone." < br /> Viņa e-pasts: ".$mail." < br /> Viņa ziņojums: ".$message – veidojam pašu ziņojuma tekstu. $name – ievietojam lietotāja aizpildīto informāciju, piekļūstot laukiem no iepriekšējā soļa, pēdiņās aprakstam, ko šis lauks nozīmē, ar tagu < br /> Mēs pārtraucam līniju, lai ziņojums kopumā būtu lasāms.
- Content-type:text/html;charset=windows-1251 — beigās ir skaidra norāde par ziņojumā pārsūtīto datu tipu un tā kodējumu.
SVARĪGS!
Kodējums, kas norādīts dokumenta “galvenā” ( < meta http- equiv= "Content-Type" content= "text/html; charset=windows-1251" /> ), kodējumam no ziņojuma Content-type:text/html;charset=windows-1251 un vispār PHP faila kodējumam ir jāsakrīt, pretējā gadījumā pa pastu saņemtajos ziņojumos tiks rādīti “traki vārdi” nevis krievu vai Angļu burti.
Daudzi cilvēki nepārprotami nenorāda sūtāmā ziņojuma kodējumu, taču dažos e-pasta klientos tas var radīt problēmas nākotnē (uz pastu tiek nosūtīti nelasāmi e-pasta ziņojumi), tāpēc iesaku to norādīt jebkurā gadījumā.
Veidlapas pārbaude par ievadīto datu atbilstību
Lai lietotāji netīšām nepalaistu garām laukus un visu aizpilda pareizi, ir vērts pārbaudīt ievadītos datus.
To var izdarīt gan PHP servera pusē, gan JS klienta pusē. Izmantoju otro variantu, jo tādā veidā cilvēks var uzreiz noskaidrot, ko izdarījis nepareizi, un kļūdu izlabot, neveicot papildu lapas pārejas.
Mēs ielīmējam skripta kodu tajā pašā failā, kur mums ir veidlapas HTML daļa. Mūsu gadījumā tas izskatīsies šādi:
< script>funkcija checkForm(form) ( var nosaukums = forma. nosaukums. vērtība; var n = nosaukums. match(/ ^[ A- Za- zA- Jaa- z ] * [ A- Za- zA- Jaa- z ] + $/ ) ; if (! n) ( brīdinājums( "Ievadītais vārds ir nepareizs, lūdzu, izlabojiet kļūdu") ; return false ; ) var tālrunis = forma. tālrunis. vērtība; var p = tālrunis. atbilst (/ ^[ 0 - 9 + ] [ 0 - 9 - ] * [ 0 - 9 - ] + $/ ) ; if (! p) ( brīdinājums( "Nepareizi ievadīts tālruņa numurs") ; return false ; ) var pasts = forma. pastu. vērtība; var m = pasts . atbilst (/ ^[ 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) ( brīdinājums( "Ievadītais e-pasts ir nepareizs, lūdzu, izlabojiet kļūdu") ; return false ; ) atgriezt patiesu ; )
Nu, tagad parastā analīze:
Par to, lai, noklikšķinot uz veidlapas iesniegšanas pogas, mēs to pārbaudītu Mēs pievienojam skripta palaišanu veidlapas tagam:
< form method= "post" action= "mail.php" onSubmit= "return checkForm(this)" >
Tagad pieņemsim kontrolsarakstu pa punktiem:
Kā redzat, šāds mini čeks ir rakstīts katram mūsu laukam. Ekrānuzņēmumā es iezīmēju atzīmi vienam laukam ar sarkanu kvadrātu; citiem laukiem tam ir līdzīga struktūra, un, ja ir nepieciešams pievienot vai noņemt lauku, tagad varat to viegli izdarīt.