Katsotaanpa esimerkkiä helposta ja nopeasta palautelomakkeesta verkkosivustolle, joka on kirjoitettu html- ja php-kielellä.
Miksi lomake on html:ssä ja php:ssä?
CRM-järjestelmille, kuten Wordpress, Joomla ja muille, voit löytää erilaisia laajennuksia palautelomakkeen asentamiseen sivustolle. En kuitenkaan pidä tällaisista liitännäisistä niiden huonosta suorituskyvystä ja hidastaa sivustoa. Koska nämä lisäosat tuottavat edelleen saman html-koodin, suosittelen yksinkertaisen mutta täysin toimivan lomakkeen käyttöä, jota voidaan myös muokata vastaamaan sivustolta tulevaa takaisinsoittoa.
Yhteydenottolomake html-muodossa lisätään yksinkertaisesti Joomlan, OpenCartin hallintapaneeliin, ja jos sivustosi on itse kirjoitettu tai käytät mitä tahansa kehystä, esitetyn koodin käyttäminen ei ole vaikeaa ja mikä tärkeintä, sivusto latautuu nopeasti kuin ennen koodin lisäämistä.
Rakenne, jolla palaute järjestetään sivustolle
Jotta kaikki toimisi, annan sinulle rakenteen, mitä tarvitaan yhteydenotto- tai soittolomakkeen toimimiseen?
- Sivulle lisätty HTML-koodi + css-tyylejä.
- Php-tiedosto, joka lähettää kirjeen.
Html-koodi sisältää tiedot siitä, mitkä syöttökentät on näytettävä, ja niiden kuvatekstejä. CSS-tyylit vastaavat itse lomakkeen visuaalisesta suunnittelusta ja tietojen näyttämisestä. Kun napsautat lähetyspainiketta, kutsutaan php-tiedosto, joka lähettää kirjeen määritettyyn sähköpostiin. Katsotaanpa lomakkeen lähdekoodia tarkemmin myöhemmin.
HTML-palautelomakkeen koodi
Ensin toimitamme sivuston palautelomakkeen täydellisen koodin HTML-muodossa.
Itse lomake sijaitsee html-tunnisteiden välissä
. Itse lomaketunnisteKuten näet, koko lomake luodaan tagilla attribuuttien kanssa action=mail.php(osoitus sivuston sivulle, jossa syötettyjen tietojen käsittelyyn tarkoitettu komentosarja sijaitsee) ja method=post(tapa lähettää tietoja palvelimelle). Yksittäiset rivit luotu tunnisteella täysin ymmärrettävillä ominaisuuksilla. Yksittäisten lomakeelementtien, tekstin, fonttien jne. sijainti. voit muuttaa sitä sivustosi suunnittelun mukaan. Tagissa viestin tekstin syöttöalueen mitat asetetaan: rivien ja sarakkeiden määrä (rows="3" cols="25").
3. Luodaan uusi sivu mail.php, samanlainen kuin tavallinen HTML, mutta .php-tunniste. Koko sivun koodi näkyy kuvassa 2:
if (isset($_POST["nimi"])) ($nimi = $_POST["nimi"];)
if (isset($_POST["sähköposti"])) ($sähköposti = $_POST["sähköposti"];)
if (isset($_POST["sotku"])) ($sotku = $_POST["sotku"];)
$to = "pupkin@rambler.ru"; /*Syötä sähköpostiosoitteesi*/
$headers = "Sisältötyyppi: teksti/plain; charset=utf-8";
$subject = "Viesti sivustoltasi";
$message = "Lähettäjän nimi: $nimi \nSähköpostiosoite: $sähköposti \nViesti: $mess";
$lähetä = posti($vastaanottaja, $aihe, $viesti, $otsikot);
jos ($send == "true")
{
kaiku" Kiitos viestisi lähettämisestä!
";
kaiku" Klikkaus palataksesi pääsivulle";
}
muu
{
kaiku"
Virhe. Viestiä ei lähetetty!";
}
?>
Kuva 2. Palautelomakkeen käsittelysivun koodi
Linkkien osoitteet, joihin sinun on kiinnitettävä huomiota, on korostettu punaisella:
- pupkin@rambler.ru - korvaa Pupkinin osoite sähköpostiosoitteellasi, johon lähetetään viestejä sivuston vierailijoilta sekä väsymättömiltä roskapostittajilta. Muuten, niiltä suojautumiseksi lomakkeeseen syötetään usein niin kutsuttu captcha. CAPTCHA- Täysin automatisoitu julkinen Turing-testi, joka erottaa tietokoneet ja ihmiset toisistaan - täysin automatisoitu julkinen Turing-testi, joka erottaa tietokoneet ja ihmiset toisistaan). Yleensä nämä ovat erittäin vääristyneitä numeroita ja kirjaimia, jotka sinua pyydetään syöttämään ennen viestin lähettämistä. Puhumme captchasta yhdessä seuraavista artikkeleista.
Jos haluat lähettää kirjeitä useisiin osoitteisiin, luettele ne pilkuilla erotettuina. - a href=index.html - sivuston pääsivun (kotisivun) osoite.
Sivu luotu mail.php tulee sijoittaa samaan sivustohakemistoon (hakemistoon, kansioon), jossa palautelomakkeen sivu sijaitsee.
Tarkista palautelomakkeen toimivuus. Jos kaikki on tehty huolellisesti, lomakkeen täyttämisen ja painamisen jälkeen Lähetä viesti Seuraava teksti pitäisi näkyä: " Kiitos viestisi lähettämisestä. palataksesi pääsivulle". Tämän jälkeen löydät postilaatikostasi (tai toisesta palautelomaketta luotaessa määrittämästäsi) oman viestisi rakkaallesi.
Kommentti: joillain isännöintisivustoilla uusi (sivustolle juuri asennettu) palautelomake ei ala toimimaan heti, eivätkä ensimmäiset kirjeet tule perille tai saapuvat 1-2 päivän viiveellä. Todennäköisesti siellä on "vaihteiden hionta" ja sitten kaikki toimii hyvin. Lisäksi joidenkin isännöintisivustojen kirjeet eivät saavuta tiettyjä osoitteita, esimerkiksi minulla oli ongelmia postilaatikkoni kanssa Ramblerissa ja Mail.ru:ssa. Ratkaise nämä ongelmat ottamalla yhteyttä isännöitsijään - he yleensä auttavat.
Joskus kuvattua palautelomaketta käytettäessä koodauksessa ilmenee ongelmia. Jos saapuvassa kirjeessä teksti koostuu alkuperäisten kyrillisten aakkosten sijaan "hulluista koodeista" tai tyhjistä ruuduista, sinun on valittava koodaus manuaalisesti, mikä on tietysti hankalaa. Jotta näin ei tapahdu, tarkista, että sivusi, jolla palautelomake on, on koodattu charset=utf-8. Jos käytät ohjelmaa Adobe Dreamweaver, sitten sinun on valittava valikkoosio tehdäksesi tämän Muokkaa - Sivun ominaisuudet - Koodaus.
Sivustotiedostojen koodauksen ongelmaa käsitellään tarkemmin artikkelissa Koodauksen ongelmat palautelomakkeessa.
Kuvatussa esimerkissä yksinkertaisuuden vuoksi viesti kirjeen lähettämisestä näkyy tyhjällä sivulla. Voit tietysti sijoittaa sen mille tahansa sivustosi sivulle, jotta vierailija voi käyttää navigointia (valikkoa) valitakseen, mitä hän tekee seuraavaksi. Voit tehdä tämän asettamalla PHP-koodin (se, joka sijaitsee osoitteesta<?php ennen ?> ) haluamaasi kohtaan valikkosivulla ja muuta sen nimeksi mail.php.
Itse palautelomakkeen lähettämisen lisäksi on suositeltavaa tarkistaa, että vierailija on täyttänyt sen kentät oikein. Tämä on tehtävä, jotta et saa tyhjiä kirjeitä ja postilaatikkosi ei ole tukkeutunut napin painamista rakastavien pilaajien lähettämästä roskista Lähetä viesti. Menetelmät palautelomakkeen täyttämisen tarkistamiseksi ja roskapostilta suojaamiseksi on kuvattu artikkeleissa "
Palautelomake sivustolle, jonka näytän, perustuu Ajax-tekniikan käyttöön. Mutta älä huoli, sinun ei tarvitse tietää tätä, kaikki on jo valmiina, sinun tarvitsee vain asentaa tämä lomake ja muokata sitä itse!
Kaverit, käsikirjoitus on vanhentunut kauan sitten. Toisille se toimii, toisille ei. Ja olen liian laiska ymmärtämään sitä, saati päivittämään sitä. Testaa siis oman harkintasi mukaan.
PHP palautelomake sähköpostitse
Tämä sivuston palautelomake on itsessään erittäin toimiva, siihen on kytketty useita laajennuksia, jotka luovat houkuttelevan ulkonäön ja tarkistavat syöttämiesi tietojen oikeellisuuden (lue oikeellisuuden). Nämä laajennukset toimivat suurilla ja mahtavilla! Ja niitä kutsutaan näin:
1. JQTransform– laajennus, jonka avulla voit tehdä palautelomakkeestamme kauniin!
2. formValidator– ja tämä laajennus tarkistaa yhteydenottolomakkeesta syötettyjen tietojen oikeellisuuden ja näyttää työkaluvihjeitä, jos jotain tapahtuu!
Tämän lomakkeen täydellistä toimintaa varten käytetään luokkaa PHPMailer. Pidetään yhtenä parhaista!
Huomio älykkäille:
Sivuston palautelomake voidaan tehdä HTML-muodossa! Mutta se alkaa toimia vain PHP:n avulla! Eikä mitään muuta!
Tämä on minulle niille, jotka etsivät palautelomaketta vain HTML-kielellä. Teet sen, mutta se ei toimi!
Siksi sinun on tuettava PHP:tä, ja tätä yhteydenottolomaketta varten PHP:n on oltava vähintään versio 5. Toivottavasti teen asian selväksi? Lisäksi nyt mikä tahansa normaali hosting tukee näitä ehtoja!
Kaivoin tämän palautelomakkeen nettisivuilta www.tutorialzine.com, linkki johtaa suoraan alkuperäiselle sivulle, ts. tämän lomakkeen kirjoittajan verkkosivuilla!
Kaikki siellä on englanniksi, joten meidän ja Sashan täytyi vähän puuhata venäläistääksemme tätä yhteydenottolomaketta ja siihen liitettyjä liitännäisiä.
Rehellisesti sanottuna puuhastelimme tätä "lomaketta" kaksi päivää, koska erilaisia bugeja alkoi ilmestyä, emmekä halunneet lähettää palautelomaketta, joka ei ollut täysin täytetty, varsinkin niin kaunis! Joten jos olet kaiken itse tekemisen fani ja ajatus pomppii kirkkaimpiin päähän - venäläistääksesi tämän lomakkeen itse, annan sinulle pari vinkkiä, sillä et rajoitu pelkästään lauseiden kääntämiseen:
1. Tämä palautelomake on räätälöity porvaristoa varten, ja se on ladattu sieltä, joten se lähettää sinulle krakozyabl tavallisten venäläisten merkkien sijaan. Ymmärrä koodaus. Ja yleensä kaikki "hylkeet" liittyvät tähän!
2. Vahvistusskripti ei aluksi ymmärrä kirjaimiamme, joten ne on kirjoitettava sinne!
3. Jopa näiden vaiheiden jälkeen, jos määrität kirjeen aiheen venäjäksi, kirje saapuu otsikolla - Ei aihetta (toivottavasti kirjoitin sen oikein), tämä voidaan korjata, jos määrität koodauksen PHPMailer-luokkatiedostossa .
4. Alkuperäisessä muodossa syöttökenttien teksti painettiin pohjaan, ei keskelle. Tämä on häiriö JQTransform-laajennuksessa.
No, näyttää siltä, että kaikki oli kirjoitettu ja varoitettu. Siirrytään eteenpäin!
Tervehdys, rakas lukija, tänään olen valmistellut sinulle herkullisen html-palautelomakkeen, joka toimii lataamatta sivua uudelleen Ajax-tekniikalla + tehokkaalla laukaisimella, joka motivoi vierailijoitasi käyttämään lomaketta. Blogini lukijat keskustelivat erittäin aktiivisesti edellisestä aloitussivun artikkelistani, nyt arvioimme ja tarkastelemme viimeisteltyä uutta lomaketta. Kaikki tarpeellinen lähdekoodi ja demo liitteenä artikkelissa , analysoimme myös työn ja yhteyden rakennetta.
UPD: Korjattu aiherivillä oleva nimikoodausvirhe. Nyt kaikki näkyy oikein. Kiitämme lukijaa (Ekaterina Karacheva)
Itse lomakkeen muoto sisältää myös PHP:n käsittelijän tiedoston, lisäksi työhön tarvitset jquery-kirjaston ja skriptejä, mutta ensinnäkin, en lataa sitä liian kauan - siirrytään tarkasteluun ja palautemme analysointia.
HTML palautelomake - työn rakenne
Lomakkeemme näyttää tältä:
Mitä järkeä tässä on? Oikealla puolella on tällainen lomake, mutta vasemmalle puolelle tein erityisen lohkon, joka rohkaisee vierailijaasi syöttämään yhteystietonsa välittömästi! Salaisuus on yksinkertainen: Näetkö päivämäärän ja kellonajan vasemmassa lohkossa? Tämän päivän päivämäärä näkyy koko ajan, ajan myötä näiden kahden tunnin vaihteluväli lasketaan nykyisestä tunnista, oletetaan, jos kellosi on nyt 13:14, niin tuntiväli on: 12-14. Katso kuinka se toimii)))
Vierailija näkee: vau, tänään on alennus, ja olin juuri ajoissa, siellä on myös alennus! Se on otettava heti! - Tämä on laukaisemme.
Latasin html-palautelomakkeen lähdekoodin, katsoin demoa - mielestäni olen pelannut tarpeeksi)) Nyt tärkeimmästä, toimintaperiaatteesta:
Syötelomakkeen kenttien validointi tapahtuu käsittelijätiedostossa contact.php Alla näkyvässä ohjelmakoodiluettelossa itse lomakkeessa näkyy viesti virheistä ja onnistuneesta kirjeen lähettämisestä, tältä se näyttää lähetyksen jälkeen:
Lomakkeen käsittelijän lähdekoodi
Liitä riviin 52 sähköpostiosoitteesi, joten kaikki kirjeet lähetetään määritettyyn sähköpostiosoitteeseen.
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." ";
}
}
?>
|
"; ) // Puhelimen vahvistustoiminto ValidateTel($valueTel) ( $regexTel = "/^(7,12)$/"; if($valueTel == "") ( return false; ) else ( $string = preg_replace( $regexTel, "", $valueTel); ) return empty($string) ? true: false; ) if(!$tel) ( $error .= "Anna puhelinnumero.
"; ) if($tel && !ValidateTel($tel)) ( $error .= "Anna kelvollinen puhelinnumero.
"; ) if(!$error) // Tarkista viesti (pituus) if(!$message || strlen($message)< 1)
{
$error .= "Введите ваше сообщение.
";// Tämä rivi asettaa vähimmäisrajoituksen kirjainten kirjoittamiselle. ) if(!?utf-8?b?". base64_encode($name) ."?="; $message ="\n\nNimi: " .$ nimi."\n\nPuhelinnumero: " .$tel."\n\nViesti: ".$viesti."\n\n"; $mail = posti("oma_sähköposti@gmail.com", $aihe, $message , "Lähettäjä: ".$name_tema."<".$tel.">"."Vastaus: ".$email." "." X-Mailer: PHP/" . phpversion()); if($mail) ( echo "OK"; ) ) else ( echo "
Muodon suorituskyky
Jos haluat vastaanottaa kirjeitä postilaatikkoosi, vaihda yllä mainitsemani rivi. Suosittelen käyttämään gmail.com-postia, lomakkeesta luodun kirjeen vastaanottamisessa ei ole viiveitä tai häiriöitä. Varoitin, koska... Lukijoilla oli monia kysymyksiä (kirjeet eivät saapuneet osoitteeseen mail.ru). Ole varovainen tässä.
Täytämme kaikki kentät, huomaa, että puhelinnumero on syötetty kahdeksalla - kirjoitin työkaluvihjeeseen nimenomaan numeron kahdeksalla "89251122333". Kun syötät merkkiä «+» Virheilmoitus tulee näkyviin. Jos joku tarvitsee sitä, se on helppo lisätä käsittelijään «+» .
Täytetty lomake testitiedoilla
Kirje postilaatikossa
Kuten näette, saimme kirjeen, jossa oli kaikki kolme täytettyä ja lähetettyä kenttää. Kirjeen "Pyyntö sivustolta" otsikko muuttuu käsittelijässä contact.php
Kaikki toimii hyvin, on mukava kuulla palautettasi (rakentavaa kritiikkiä) kommenteissa, jos sinulla on vaikeuksia etkä selviä jostain, kirjoita minulle VK: ssa (löydät sen yhteystiedoista ). Toivon, että pidit tämän palautelomakkeen (palvelujen tilaus, sovellus) ja toimintaan kutsuvan laukaisimen muodostaman symbioosin suunnittelusta ja toimivuudesta. Onnea kaikille työssänne ja positiivista asennetta, hei))
Valmistettu tuella
Yksi yleisimmistä käytännön tehtävistä on palautelomakkeen toteuttaminen. Tarkoitatko sen HTML-koodin kirjoittamista, sen suunnittelua CSS:ssä, PHP-skriptin luomista, joka käsittelee käyttäjältä saamansa tiedot ja lähettää sen postitse, JS-skriptin kirjoittamista, joka tarkistaisi lomakkeen syöttämien tietojen riittävyyden, suojaa ideamme roskapostista, jotta postilaatikkomme ei romahtanut bot-hyökkäyksiltä.
Kaikkia yllä olevia kohtia käsitellään katsauksessamme ja kommentoimme niitä yksityiskohtaisesti.
Joten aloitetaan palautelomakkeen luominen:
HTML
Ensinnäkin kirjoitamme HTML-koodin, joka määrittää kentät, jotka käyttäjä täyttää. Ne virallistetaan tulevaisuudessa. Lomakekoodi näyttää tältä:
< form method= "post" action= "mail.php" > < div class = "left" > < label for = "name" >Nimi: label> < input maxlength= "30" type= "text" name= "name" /> < label for = "phone" >Puhelin: label> < input maxlength= "30" type= "text" name= "phone" /> < label for = "mail" >Sähköposti: label> < input maxlength= "30" type= "text" name= "mail" /> div> < div class = "right" > < label for = "message" >Viesti: label> < textarea rows= "7" cols= "50" name= "message" > textarea> < input type= "submit" value= "Lähettää" /> div> form>
Ja visuaalisesti se näyttää nyt tältä:
Olen samaa mieltä, toistaiseksi kaikki on rumaa eikä mikään ole selvää, mutta olemme vasta aloittaneet.
Katsotaanpa yllä olevaa koodia yksityiskohtaisesti:
< form method= "post" action= "mail.php" > … form>
Lomakkeen luomiseksi sinun on käytettävä lomaketunnistetta. Hän määrittää kooditulkin lomakkeen alun ja lopun. Sillä, kuten millä tahansa tunnisteella, on koko joukko attribuutteja, mutta lomakkeen toimimiseen tarvitaan vain kaksi, nämä ovat menetelmä (tapa, jolla pyyntö lähetetään palvelimelle, viestiä käytetään vakiona lomakkeissa) ja toiminta ( osoittaa polun lomakkeenkäsittelijätiedostoon, nimittäin kohdassa Tämä tiedosto sisältää PHP-skriptin, joka lähettää sitten käyttäjän syöttämät arvot meille sähköpostitse. Tässä tapauksessa näemme, että tämä tiedosto on nimeltään mail.php ja se sijaitsee samassa sivustohakemistossa kuin tarkastelemamme sivu).< input maxlength= "30" type= "text" name= "name" />
Seuraavaksi meillä on syötteet. Nämä ovat itse asiassa itse lomakekenttiä, joihin käyttäjät syöttävät tarvitsemamme tiedot (type="text" tarkoittaa, että tämä on tekstiä). Maxlength-attribuutti määrittää, kuinka monta merkkiä käyttäjä voi kirjoittaa tiettyyn lomakekenttään. Tärkein määrite on nimi - se määrittää tietyn kentän nimen. Näillä nimillä PHP-skripti käsittelee myöhemmin siihen syöttämät tiedot. Halutessasi voit myös asettaa paikkamerkkiattribuutin, joka näyttää kentän sisällä tekstiä, joka katoaa, kun kohdistin asetetaan sen sisään. Yksi paikkamerkkien ongelmista on, että jotkin vanhemmat selaimet eivät tue sitä.< label for = "name" >Nimi: label>
Käytetään, jos olemme hylänneet paikkamerkit. Tavallinen kentän allekirjoitus, for-attribuutti kertoo mihin kenttään tämä allekirjoitus viittaa. Arvo ilmaisee meitä kiinnostavan kentän nimen.< textarea rows= "7" cols= "50" name= "message" > textarea>
Kuten syöttö, se on tarkoitettu käyttäjälle tietojen syöttämiseen, vain tällä kertaa kenttä on räätälöity pitkille viesteille. Rivit määrittää kentän koon riveinä, sarakkeet merkeissä. Yleensä ne määrittävät kenttämme korkeuden ja leveyden.< input type= "submit" value= "Lähettää" />
Type="submit" kertoo, että tämä on painike lomakkeen lähettämistä varten, ja arvo määrittää tekstin, joka tulee tämän painikkeen sisällä.< div class = "right" > div>
käytetään vain lomakkeen visuaaliseen jatkosuunnitteluun.
CSS
Jotta palautelomakkeemme näyttäisi edustavalta, se on muotoiltava. Saadaksesi seuraavan tuloksen:
Käytimme tätä koodia:
lomake ( tausta: #f4f5f7; täyte: 20px; ) lomake . vasen, muoto . oikea ( näyttö: inline- block; pystytasaus: ylhäältä; leveys: 458px; ) muoto . oikea ( täyttö- vasen: 20px; ) etiketti ( näyttö: lohko; kirjasinkoko: 18px; tekstin tasaus: keskellä; marginaali: 10px 0px 0px 0px; ) syöttö, tekstialue ( reunus: 1px kiinteä #82858D; täyte: 10px; kirjasinkoko: 16px; leveys: 436px; ) tekstialue (korkeus: 98px; marginaali-ala: 32px; ) input[ type= "submit" ] (leveys: 200px; float: oikea; reunus: ei mitään; tausta: #595B5F; väri: #fff; tekstin muunnos: isot kirjaimet; )
En näe järkeä kuvailla CSS:ää yksityiskohtaisesti, vaan kiinnitän huomiosi vain tärkeimpiin kohtiin:
- Lomakkeen jokaiselle tunnisteelle ei tarvitse kirjoittaa mallia. Yritä rakentaa valitsimet siten, että voit suunnitella kaikki tarvitsemasi elementit muutamalla koodirivillä.
- Älä käytä tarpeettomia tyyppitunnisteita viivojen katkaisemiseen ja sisennysten luomiseen < br>, < p> jne. CSS näytön kanssa: lohko ja marginaali täyteominaisuuksilla selviää hyvin näistä tehtävistä. Lisää siitä, miksi sinun ei pitäisi käyttää sitä < br> asettelussa yleensä voit lukea artikkelista Tag br, mutta onko se todella välttämätöntä? .
- Älä käytä lomakkeissa taulukkoasettelua. Tämä on ristiriidassa tämän tunnisteen semantiikan kanssa, ja hakukoneet rakastavat semanttista koodia. Dokumentin visuaalisen rakenteen muodostamiseksi tarvitsemme vain div-tageja ja CSS:ssä määritellyt näyttöominaisuudet: inline-block (järjestää lohkot riviin) ja vertical-align: top (estää niitä leviämästä näytölle) , aseta ne halutulle korkeudelle ja voila, ei mitään ylimääräistä ja kaikki on sijoittuneena haluamallamme tavalla.
Niille, jotka haluavat säästää aikaa verkkosivujen suunnittelussa, voin suositella CSS-kehysten käyttöä verkkosivustojen luomisessa, erityisesti itse kirjoitettujen. Valintani tässä suhteessa on Twitter Bootstrap. Voit katsoa oppitunnin lomakkeiden suunnittelusta sen avulla.
PHP
No, on aika saada muoto toimimaan.
Menemme sivuston juurihakemistoomme ja luomme sinne mail.php-tiedoston, jolle määritimme aiemmin polun lomaketunnisteen action-attribuutissa.
Lopulta hänen koodinsa näyttää tältä:
Hänen numeronsa: " . $phone ."
Hänen postinsa: " . $mail . "
Hänen viestinsä: ". $viesti, ) ; kaiku "Viestisi on lähetetty onnistuneesti!
Saat vastauksen pian
$takaisin"; poistu ; ) else ( kaiku ; poistu ; ) ?>
Voit ohittaa tämän asiakirjan HTML- ja CSS-osien keskustelun. Pohjimmiltaan tämä on tavallinen verkkosivusto, jonka voit suunnitella toiveidesi ja tarpeidesi mukaan. Katsotaanpa sen tärkeintä osaa - PHP-skriptiä lomakkeen käsittelyyn:
$takaisin = "
\" javascript: history.back()\" >Palaa takaisin
" ;Tällä rivillä luomme linkin palataksemme edelliselle sivulle. Koska emme tiedä etukäteen, miltä sivulta käyttäjä pääsee tälle sivulle, tämä tehdään pienellä JS-toiminnolla. Tulevaisuudessa yksinkertaisesti käytämme tätä muuttujaa näyttääksemme sen tarvitsemissamme paikoissa.
if (! tyhjä ($_POST [ "nimi" ] ) ja ! tyhjä ($_POST [ "puhelin" ] ) ja ! tyhjä ($_POST [ "posti" ] ) ja ! tyhjä ($_POST [ "viesti" ] ) ) ( //käsittelijän sisäinen osa) muu (kaiku "Jos haluat lähettää viestin, täytä kaikki kentät! $takaisin "; poistu ; )
Lisäämme tähän lomakkeen tarkistuksen varmistaaksemme, että kentät ovat täynnä. Kuten arvasit, $_POST["nimi"]-osaan lainausmerkeissä kirjoitamme syötteidemme name-attribuutin arvon.
Jos kaikki kentät on täytetty, skripti alkaa käsitellä tietoja sisäisessä osassaan, mutta jos vähintään yksi kenttä ei ole täytetty, tulee käyttäjän näytölle viesti, jossa häntä pyydetään täyttämään kaikki lomakkeen kentät toistavat "Jos haluat lähettää viestin, täytä kaikki kentät! $takaisin" ja linkki palataksesi edelliselle sivulle, jonka loimme aivan ensimmäisellä rivillä.
Seuraavaksi liitämme lomakkeenkäsittelijän sisäosaan:
$nimi = trimma(kaistale_tunnisteet($_POST["nimi"])); $puhelin = trimma(nauhat_tunnisteet($_POST["puhelin"])); $posti = trim(nauhat_tunnisteet($_POST["posti"])); $viesti = trim(nauhat_tunnisteet($_POST["viesti"]));
Siten poistimme käyttäjän syöttämät tiedot html-tunnisteista ja ylimääräisistä välilyönneistä. Näin voimme suojautua haitallisen koodin vastaanottamiselta meille lähetetyissä viesteissä.
Tarkistuksista voidaan tehdä monimutkaisempia, mutta tämä on sinun harkintasi. Olemme jo asentaneet minimaalisen suojauksen palvelinpuolelle. Teemme loput asiakaspuolella JS:n avulla.
En suosittele palvelinpuolen lomakesuojauksen kokonaan luopumista JS:n hyväksi, koska vaikka se on erittäin harvinaista, on olemassa ainutlaatuisia, joissa JS on poistettu käytöstä selaimessa.
Tunnisteiden puhdistamisen jälkeen lisää viestin lähettäminen:
posti ( "mail_to_receive_messages@gmail.com",
"Kirje sivustosi_osoitteesta", "Kirjoitti sinulle: " . $nimi . "
Hänen numeronsa: " . $phone ."
Hänen postinsa: " . $mail . "
Hänen viestinsä: ". $viesti "Content-type:text/html;charset=windows-1251")
;
Tämä linja on vastuussa viestin luomisesta ja lähettämisestä meille. Se täytetään seuraavasti:
- "mail_to_receive_messages@gmail.com" – tähän laitat sähköpostisi lainausten väliin
- "Kirje sivustosi_osoitteesta" on sähköpostiisi lähetettävän viestin aihe. Voit kirjoittaa tänne mitä tahansa.
- "Kirjoitin sinulle: ".$name." < br /> Hänen numeronsa: ".$phone." < br /> Hänen sähköpostiosoitteensa: ".$mail." < br /> Hänen viestinsä: ".$message – muodostamme itse viestin tekstin. $nimi – lisäämme käyttäjän täyttämät tiedot siirtymällä edellisen vaiheen kenttiin, lainausmerkeissä kuvataan mitä tämä kenttä tarkoittaa, tagilla < br /> Katkaisemme linjan niin, että viesti kokonaisuudessaan on luettavissa.
- Content-type:text/html;charset=windows-1251 - lopussa on selkeä osoitus viestissä lähetetystä tietotyypistä ja sen koodauksesta.
TÄRKEÄ!
Asiakirjan "päässä" määritetty koodaus ( < meta http- equiv= "Content-Type" content= "text/html; charset=windows-1251" /> ), koodauksen viestistä Content-type:text/html;charset=windows-1251 ja yleensä PHP-tiedoston koodauksen on vastattava, muuten postitse tulleissa viesteissä näytetään "hulluja sanoja" venäjän tai Englanninkieliset kirjaimet.
Monet eivät ilmoita suoraan lähetettävän viestin koodausta, mutta joissakin sähköpostiohjelmissa tämä voi aiheuttaa ongelmia jatkossa (postiin lähetetään lukukelvottomia sähköposteja), joten suosittelen sen määrittämistä kuitenkin.
Lomakkeesta tarkistetaan syötettyjen tietojen riittävyys
Jotta käyttäjät eivät vahingossa unohda kenttiä ja täyttävät kaiken oikein, on syytä tarkistaa syötetyt tiedot.
Tämä voidaan tehdä sekä PHP:ssä palvelinpuolella että JS:ssä asiakaspuolella. Käytän toista vaihtoehtoa, koska näin ihminen voi heti selvittää, mitä on tehnyt väärin, ja korjata virheen ilman ylimääräisiä sivusiirtymiä.
Liitämme komentosarjakoodin samaan tiedostoon, jossa meillä on lomakkeen HTML-osa. Meidän tapauksessamme se näyttää tältä:
< script>funktio checkForm(form) ( var nimi = muoto. nimi. arvo; var n = nimi. match(/ ^[ A- Za- zA- Jaa- z ] * [ A- Za- zA- Jaa- z ] + $/ ) ; if (! n) ( hälytys( "Syötetty nimi on virheellinen, korjaa virhe") ; return false ; ) var puhelin = lomake. puhelin. arvo; var p = puhelin. match(/ ^[ 0 - 9 + ] [ 0 - 9 - ] * [ 0 - 9 - ] + $/ ) ; jos (! p) ( hälytys( "Puhelinnumero syötetty väärin") ; return false ; ) var mail = lomake. postia. arvo; var m = posti. 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] + $/ ) ; jos (! m) ( hälytys( "Syötetty sähköpostiosoite on virheellinen, korjaa virhe") ; return false ; ) return true ; )
No, nyt tavallinen analyysi:
Sen vuoksi, niin, että kun napsautat lomakkeen lähetyspainiketta, tarkistamme sen Liitämme skriptimme käynnistyksen lomaketunnisteeseen:
< form method= "post" action= "mail.php" onSubmit= "return checkForm(this)" >
Otetaan nyt tarkistuslista kohta kohdalta:
Kuten näet, tällainen minisekki on kirjoitettu jokaiselle kentällemme. Korostin kuvakaappauksessa yhden kentän valinnan punaisella neliöllä, muilla kentillä on samanlainen rakenne, ja jos on tarvetta lisätä kenttä tai poistaa se, voit nyt tehdä sen helposti.