Geri bildirim kurun. Bir geri bildirim formu oluşturma. Belki senin için ilginç olacak

Uygulamadaki en yaygın görevlerden biri, geri bildirim biçimini uygulamaktır. Tobash, HTML kodunu yazarak, CSS'de tasarlama, kullanıcıdan alınan verileri işleyecek ve postalarımıza gönderecek bir PHP betiği oluşturan bir PHP betiği oluşturarak, giriş verilerinin korunmasını yeterince girmesini sağlayan bir JS komut dosyası yazan bir PHP betiği oluşturma Spam'umuzun posta kutumuzun botların saldırılarından düşmediğinden emin olmak için yeterliliğimiz.

Yukarıdaki anların tümü incelememizde göz önünde bulundurulacak ve ayrıntılı olarak yorumlanacaktır.

Yani, bir geri bildirim formu oluşturmaya başlıyoruz:

Html

Her şeyden önce, HTML kodunu yazıyoruz, kullanıcıyı dolduracak alanlara ayarlanır. Verilmeye devam edecekler. Kod kodu şöyle görünür:

< form method= "post" action= "mail.php" > < div class = "left" > < label for = "name" > İsim: < input maxlength= "30" type= "text" name= "name" /> < label for = "phone" > Telefon: < input maxlength= "30" type= "text" name= "phone" /> < label for = "mail" > E-posta: < input maxlength= "30" type= "text" name= "mail" /> < div class = "right" > < label for = "message" > İleti: < textarea rows= "7" cols= "50" name= "message" > < input type= "submit" value= "Göndermek" />

Ve görsel olarak böyle görünüyor:

Katılıyorum, her şey çirkin ve hiçbir şey açık değilken, ama yeni başladık.

Yukarıdaki kod detayını düşünün:

  • < form method= "post" action= "mail.php" > …


    Bir form oluşturmak için form etiketini kullanmanız gerekir. Kod tercümanı için formun başlangıcını ve sonunu belirleyen budur. Herhangi bir etiket gibi, bir bütün nitelik kümesi vardır, ancak zorunlu formlar sadece iki oluşturur, bu bir yöntemdir (sunucuya bir istek gönderme yöntemi, formlar için formlar için bir istek gönderme yöntemi) ve eylemdir (formdaki yolun yolunu gösterir. Dosya, özellikle bu dosyadaki, kullanıcının girdiği postaya gönderecek olan bir PHP komut dosyası içerecektir, bu dosyada bu dosyanın mail.php olarak adlandırıldığını ve sorudaki sayfa olarak aynı site dizininde yattığını görüyoruz. ).
  • < input maxlength= "30" type= "text" name= "name" />


    Sonra, bunun yerine takip ediyoruz. Bu, kullanıcıların ihtiyaç duyduğunuz bilgileri gireceği gerçek form alanlarıdır (Type \u003d "Metin" yazacağını söylüyor. MaxLength özniteliği, kullanıcıya bu alan formunda kaç karakter girebileceğini gösterir. En önemli özellik ismidir - belirli bir alanın adını belirtir. Bu isimlerde gelecekteki PHP komut dosyası içinde gelen bilgileri işler. İsterseniz, imleci içeri girerken, alanın içindeki metni görüntüleyen yer tutucu özniteliğini belirleyebilirsiniz. PlaySholder problemlerinden biri, bazı eski tarayıcılar tarafından desteklenmemesidir.
  • < label for = "name" > İsim:


    Yer sahiplerini reddettiğimizde kullanılır. Her zamanki alan imzası, form özniteliği, alanın bu imzayı özel olarak içerdiğini bildirir. Bize ilgi alanının değeri adı ile gösterilir.
  • < textarea rows= "7" cols= "50" name= "message" >


    Ayrıca, girişin kullanıcı bilgileri tarafından uygulanması amaçlandığı için, yalnızca bu sefer alan uzun mesajlar için keskinleştirilir. Satırlar, dizgelerdeki alanın boyutunu, kollarda karakterlerde belirtir. Genel olarak, alanımızın yüksekliğini ve genişliğini belirlerler.
  • < input type= "submit" value= "Göndermek" />


    Bunun bir form göndermek için bir düğme olduğu gerçeği, Bize Tip \u003d "Gönder" ve değer, bu düğmenin içinde olacak metni ayarlar.
  • < div class = "right" >


    Sadece daha fazla görsel tasarım formu için kullanılır.

CSS.

Geri bildirim formumuzun sunulabilmesi için, verilmesi gerekiyor. Aşağıdaki sonucu elde etmek için:

Bu kodu kullandık:

form (Arka Plan: # F4F5F7; Dolgu: 20px;) Form. Sol, form. Sağ (ekran: satır içi blok; dikey- hizala: üst; genişlik: 458px;) formu. Doğru (Dolgu-Sol: 20px;) Etiket (Ekran: Blok; Yazı Tipi- boyutu: 18px; Metin - Hizala: Merkez; Marj: 10px 0px 0px 0px;) Giriş, TextArea (Sınır: 1px Katı # 82858D; Dolgu: 10px; Yazı Tipi: 16px; Genişlik: 436px;) Textarea (Yükseklik: 98px; Marjı alt: 32px;) Giriş [Type \u003d "Gönder"] (Genişlik: 200px; Şamandıra: Sağ; Sınır: Yok; Arka Plan: # 595B5F; Renk: #FFF; Metin- Dönüştür: Büyük harf;)

CSS'yi boyamak için detaylı olarak, noktayı görmüyorum, dikkatinizi sadece kilit noktalara çekeceğim:

  1. Formdaki her etikete kayıt yazmayın. Seçicilerinizi oluşturmaya çalışın, böylece bir çift kod satırı ihtiyacınız olan tüm öğeleri yapar.
  2. Çizgileri kullanmayın ve girintiler yaratmayın, türüne göre ekstra etiketler < br>, < p> Vb. Neden kullanmıyorum hakkında daha fazla bilgi < br> Maddede BR makalesinde okuyabilirsiniz ve gerekli mi? .
  3. Tablo düzenini formlar için kullanmayın. Bu, bu etiketin anlambilimini çelişiyor ve arama motorları anlamsal kodu sever. Görsel bir belge yapısı oluşturmak için, yeterince DIV etiketlerine ve CSS'de belirlenen ekran özelliklerine sahibiz: satır içi blok (üst üste blok oluşturur) ve dikey hizala: üst (etrafında çalışmalarına izin vermez) Ekran), onlara gerekli yüksekliği ve volata soruyoruz, gereksiz bir şey yok ve her şey ihtiyacımız olarak bulunuyor.

Site tasarımında zamanlarını kurtarmak isteyenler için, özellikle kendi kendine yazılmış siteler oluştururken CSS çerçeveleri kullanmayı tavsiye edebilirim. Bu plandaki seçimim Twitter Bootstrap'dır. Kullanımı ile formların tasarımında ders görülebilir.

Php.

Peki, formumuzu uygulanabilir hale getirme zamanı.

Sitenin kök dizinimize gidiyoruz ve daha önce form etiketinin form özniteliğindeki yolu gösterdiğimiz bir mail.php dosyası oluştururuz.

Sonuçta, kodu şöyle görünecek:

Mesajınız başarıyla gönderilmiştir \\ "JavaScript: Tarihçe.back () \\"\u003e Geri dön

" ; if (! Boş ($ _POST ["ad"]) ve! Boş ($ _POST ["telefon"]) ve! Boş ($ _POST ["Posta"]) ve! Boş ($ _POST ["mesaj"]))) ($ isim \u003d trim (strip_tags ($ _POST ["ad"])); $ telefon \u003d trim (strip_tags ($ _POST ["telefon"])); $ mail \u003d trim (strip_tags ($ _POST ["posta"]) ); $ Mesaj \u003d trim (strip_tags ($ _POST ["mesajı"])); Posta ("yazdınız:" $ isim. "
Onun numarası: "$ telefon."
Postası: "$ posta. "
Onun mesajı: "
. $ Mesaj,); Eko. "Mesajınız başarıyla gönderildi!
Yakında cevabı alacaksın
$ geri "
; çıkış; Başka (yankı; çıkış;)?\u003e

Bu belgenin HTML ve CSS bölümlerinin tartışılması atlanabilir. Özünde, bu, isteğiniz ve gerekliliğinizi ayarlayabileceğiniz sitenin normal sayfasıdır. Bunun en önemli kısmını düşünün - PHP Form İşleme Komut Dosyası:

$ geri \u003d "

\\ "JavaScript: Tarihçe.back () \\"\u003e Geri dön

" ;

Bu dize için önceki sayfaya dönmek için bir bağlantı oluştururuz. Önceden bilmediğimiz için, kullanıcının bu sayfaya düşeceğini, küçük bir JS işlevi ile yapılır. Gelecekte, ihtiyacımız olan yerlerde onu geri çekmek için bu değişkeni basitçe ifade edeceğiz.

if (! Boş ($ _POST ["ad"]) ve! Boş ($ _POST ["telefon"]) ve! Boş ($ _POST ["Posta"]) ve! Boş ($ _POST ["mesaj"]))) ( // işleyicinin iç kısımları ) Başka (yankı "Bir mesaj göndermek için tüm alanları doldur! $ Geri"; çıkış; )

Burada, tarlaların dolgunluğundaki şekil kontrolünü vidalayın. Tekliflerde, $ _POST ["İsim"] açısından tahmin ederken, inkontinimizin ad özniteliğinin değerini yazıyoruz.

Tüm alanlar doldurulursa, komut dosyası verileri iç kısmında işlemeye başlayacaktır, ancak en az bir alan doldurulmamışsa, mesaj dolumunu göndermek için tüm yankı form alanlarını doldurma isteği ile mesaj görüntülenecektir. Tüm alanlar! $ geri "ve ilk dizgiyi oluşturduğumuz önceki sayfaya geri dönmek için referans.

Form işleyicisinin içine dale ekleyin:

$ İsim \u003d Trim (Strip_Tags ($ _POST ["NAME"])); $ Telefon \u003d trim (strip_tags ($ _POST ["telefon"])); $ Posta \u003d trim (strip_tags ($ _POST ["posta"])); $ Message \u003d Trim (Strip_Tags ($ _POST ["mesajı"]));

Böylece, kullanıcı tarafından girilen verileri HTML etiketlerinden ve gereksiz boşluklardan temizledik. Bu, kendinizi bize gönderilen mesajlarda kötü amaçlı bir kod almaktan korumamızı sağlar.

Çekler karmaşık olabilir, ancak zaten isteğinizdadır. Sunucu tarafındaki minimum koruma, daha önce ayarladık. Ayrıca, JS kullanarak müşteri tarafında yapacağız.

Sunucu tarafındaki formu JS lehine korumayı tamamen reddetmesi önerilmez, çünkü son derece nadir olmasına rağmen, ancak unitümler, tarayıcıda bağlantısı kesildi.

Etiketleri temizledikten sonra, bir mesaj göndermek ekleyin:

posta ( "[email protected]", "Address_Isight ile mektup""Ben sana Yazdım:". $ İsim. "
Onun numarası: "$ telefon."
Postası: "$ posta. "
Onun mesajı: "
. $ Mesaj, "İçerik türü: Metin / HTML; Charset \u003d Windows-1251") ;

Bu çizgidir ve oluşumuyla meşgul ve bize bir mesaj gönderir. Aşağıdaki gibi doldurulur:

  1. "[email protected]" - Tırnaklar Arasında Posta Ekle
  2. "Address_name ile mektup", postaya gelecek mesajın konusudur. Burada bir şey yazabilirsiniz.
  3. "Yazdınız:" $ isim. " < br /> Onun numarası: "$ telefon." < br /> Postası: "$ posta." < br /> Mesajı: "$ Mesaj - Mesaj metninin kendisini oluşturuyoruz. $ İsim - Kullanıcı tarafından doldurulan bilgileri, önceki adımdan gelen alanlara itirazda bulur, alıntılarda bu alanın ne anlama geldiğini açıklayın. < br /> Hattın transferini, böylece mesajın genel olarak okunabilmesi içindir.
  4. İçerik tipi: Metin / HTML; Charset \u003d Windows-1251 - Sonunda, mesajda iletilen veri türünün ve kodlamasının net bir göstergesi vardır.

ÖNEMLİ!

Belgenin "kafasına" olarak belirtilen kodlama ( < meta http- equiv= "Content-Type" content= "Metin / HTML; Charset \u003d Windows-1251" /> ), içerik türünden kodlama: Metin / HTML mesajı; charset \u003d Windows-1251 ve genel olarak, PHP dosyasının kodlaması, aksi takdirde "Krakoyarbra", Rusça veya İngilizce harfler yerine görüntülenecektir.

Birçoğu, açıkça gönderilen mesajın kodlamasını, ancak bazı posta istemcilerinde, bu nedenle, gelecekte sorunlar olabilir (okunamayan mektuplar postaneye gel), bu yüzden bunu belirtmesini tavsiye ederim.

Yeterli veri için formun doğrulanması

Böylece kullanıcıların dikkatsizlik için alanlara gülmemesi ve her şeyi doldurmadıkları, giriş verilerini doğrulamak için doğru bir şekilde ihtiyaç duyar.

Bu, hem sunucu tarafındaki ve istemci tarafındaki JS'de hem PHP tarafından yapılabilir. İkinci seçeneği kullanıyorum, çünkü böylece bir kişi, sayfalarda ek geçiş yapmadan hemen ne yaptığını ve hatayı düzelttiğini öğrenebilir.

Script kodu aynı dosyaya, formun bir HTML kısmına sahibiz. Olayımız için şöyle görünecek:

< script> Fonksiyon kontrolü (form) (Form) (var name \u003d form. Name. Değer; var n \u003d İsim. Eşleşme (/ ^ [a-za-zaza] * [a-za-za-i] + $ /); if (! N) (Uyarı ( "İsim yanlış girilir, lütfen hatayı düzeltin"); Yanlış döndür; ) Var telefonu \u003d form. Telefon. Değer; Var p \u003d telefon. Eşleşme (/ ^ [0 - 9 +] [0 - 9 -] * [0 - 9 -] + $ /); if (! p) (uyarı ( "Telefon yanlış girilir"); Yanlış döndür; ) Var mail \u003d form. Posta. Değer; Var m \u003d mail. Maç (/ ^ [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) (uyarı ( "E-posta yanlış girildi, lütfen hatayı düzeltin"); Yanlış döndür; ) Doğru döndürün; )

Şimdi, şimdi olağan analiz:

İçin, gönder düğmesine tıklayın, test ettik Komut dosyamızın başlatılmasını form etiketine gizliyoruz:

< form method= "post" action= "mail.php" onSubmit= "return checkForm(this)" >

Şimdi, noktalarda, doğrulamanın bileşimini alırız:


Böyle bir mini çekin her biri için her bir mini çek yazılır. Bir ekran görüntüsünde kırmızı bir kare ile tahsis ettiğim bir alanda bir inceleme, diğer alanlarda benzer bir yapıya sahiptir ve bir alan eklemek veya kaldırmak gerekirse, artık kolayca yapabilirsiniz.

Bu derste, fonksiyonla tanışacağız posta (), yaratma örneğinde pHP'de geri bildirim formları Ardından postaya veri gönderir.

Bunu yapmak için iki dosya oluşturun - forma.php. ve mail.php.. İlk dosyada, kullanıcıya girmek için alanları olan sadece bir form olacaktır. İçinde etiket form - Buton "E-posta" Ve öznitelik aksiyon.hangi işleyiciyi ifade eder - mail.php., Buna bastığınızda formdaki verilerin gösterildiği içindir. "E-posta". Örneğimize göre, bu formlar başlıklı bir web sayfasına gönderilir. "/Mail.php". Bu sayfa komut dosyasını kayıt yaptı. Php.Form verilerini bu işler:


Bu formlar yöntemle gönderilir. İLETİ. (Olarak işlendi $ _POST.). $ _POST. - Bu, yöntem boyunca mevcut komut dosyasına aktarılan bir dizi değişkendir. İLETİ..

Aşağıda dosyanın içeriğini görüyorsunuz forma.php.Alanları kullanıcıyı bir web sitesine doldurur. Tüm alan giriş alanlarının bir niteliğe sahip olması gerekir İsim., Mantıka dayanarak kendinizi kendiniz reçete ediyoruz.




PHP'de Posta Gönderme Gönderme Formu


PHP'de geri bildirim formu







Mesaj bırakın:
Adınız:



E-posta:

Telefon numarası:

İleti:

Metin alanı sınırsız sayıda karakter içerebilir -\u003e







Böylece form görsel olarak tarayıcıya bakar.

Bir sonraki dosya için kod yazma kodu mail.php.. Değişkenler için kendinize isimleri icat edin. İÇİNDE Php. Değişken bir işaret ile başlar $ ve sonra değişkenin adı. Değişkenin metin değeri alıntılardır. Bir yönetici e-postasındaki değişkenleri kullanarak, formun içeriği iletilir, basitçe form öğesinin adını kare parantez içine yerleştirin - değer İsim..

$ to \u003d " [E-posta Korumalı]"; // veri alıcısının formdan e-posta
$ Tema \u003d "PHP'de geri bildirim formu"; // Eamel'in teması alındı
$ MESAJ \u003d "Adınız:" $ _ post ["İsim"]. "
"; // adından elde edilen değişken bir değer atama \u003d ad formu
$ Mesaj. \u003d "E-posta:". $ _ Sonrası ["e-posta"]. "
"; // form adından elde edilen \u003d e-posta
$ Mesaj. \u003d "Telefon numarası:" $ _ post ["telefon"]. "
"; // adından alındı \u200b\u200b\u003d telefon formu
$ Mesaj. \u003d "Mesaj:". $ _ Post ["Mesaj"]. "
"; // adından alındı \u200b\u200b\u003d mesaj formu
$ Başlıklar \u003d "MIME-Version: 1.0". "\\ r \\ n"; // başlık formata karşılık gelir ve bir dize çeviri sembolü
$ Başlıklar. \u003d "İçerik türü: Metin / HTML; Charset \u003d UTF-8". "\\ r \\ n"; // gönderilen içeriğin türünü gösterir
Posta ($ 'ya, $ tema, $ mesaj, $ başlıklar); // e-postadaki alıcıya değişken değerleri gönderir
?>

Böylece, dizi veriler $ _POST. ilgili değişkenlere aktarılacak ve işlevi kullanarak postaya gönderilecektir. posta. Şeklimizi dolduralım ve Gönder düğmesini tıklayın. E-postanızı belirtmeyi unutmayın. Mektup anında geldi.

Site için geri bildirim formuSize - AJAX teknolojisinin kullanımına dayanarak göstereceğim. Ama endişelenmeyin, bunu bilmenize gerek yok, her şey zaten hazır, bu formu yüklemek ve kendiniz için kurmanız gerekecek!

Erkekler - komut dosyası tamamen modası geçmiş. Birisi işe yarıyor, birinin yok. Ve anlıyorum ve tüm güncelleme - tembellik. Bu nedenle, takdirinize göre sınayın.

Posta gönderme ile PHP geri bildirim formu

Bu sitede geri bildirim formu Kendi içinde çok işlevsel olarak, çekici bir görünüm oluşturur ve girdiğiniz verilerin geçerliliğini (düzeltmeyi okuyun) kontrol eder. Bu eklentiler büyük ve güçlü çalışır! Ve şunu denir:

    1. Jqtransform - Geri bildirimimizi güzelleştirmenize olanak tanıyan eklenti!

    2. formValidator - ve bu eklenti, girilen bilgilerin doğruluğu üzerindeki temas formunu kontrol eder ve bu durumda açılır pencereler görüntülenir!

Bunun için bu formun tam çalışması için sınıf - phpmailer kullanılacaktır. En iyilerinden biri olarak kabul edilir!

En zeki için not:

Site için geri bildirim formu HTML'de yapılabilir! Ancak sadece PHP ile çalışmaya başlayacak! Ve hiçbir şekilde!

Bu, yalnızca HTML'de bir geri bildirim formu arayanlar için benim için. Yap, ama işe yaramayacak!

Bu nedenle, sizinki PHP'yi desteklemeli ve bu kişiler için PHP, Beşinci sürümden daha düşük olmamalıdır. Umarım, açıktır? Ayrıca, şimdi, herhangi bir normal barındırma bu koşulları destekliyor!

Www.tutorialzine.com sitesinde bu geribildirim biçimini çözdüm. Bağlantı doğrudan orijinal sayfaya yol açar, yani. Bu formun yazarının web sitesi!

Her şey orada İngilizce'dir, bu yüzden sasha ile küçük bir tinker vardı, bu temas formunu ve buna bağlı eklentileri sallıyor.

Dürüst davranmayı itiraf ettim ve bu "küf" ile iki gün vardı, çünkü çeşitli ayakkabılar ortaya çıkmaya başladı ve ters iletişim formu sona erdi, o kadar güzel, dışarı çıkmak istemedim! Öyleyse, her şeyi kendiniz yapmak için bir amatörseniz ve düşünce ışık başınıza uyacak - kendim bu formu Rusya'ya, birkaç ipucunu sınırlamayacağım, çünkü sadece cümlelerin çevirisi ile sınırlı kalmayacak.

    1. Bu geri bildirim şekli, burjuvaların altında, oradan ve indirilmiştir, bu nedenle normal Rus karakterleri yerine size gönderir - Krakoyablla. Kodlamayı gözlemleyin. Genel olarak, tüm "mühürler" ile ilişkilendirilecektir!

    2. Doğrulama komut dosyası başlangıçta mektuplarımızı anlamıyor, bu yüzden onları kaydetmeleri gerekecek!

    3. Bu işlemlerden sonra bile, Rusça'da yazma konusunu belirtirseniz, mektup konuyla birlikte gelir - hiçbir konu (doğru yazdığını umuyorum), phpmailer sınıfı dosyasındaki kodlamayı belirtirseniz, tedavi edilir.

    4. Orijinal formda, giriş alanlarındaki metin, ortada değil, altına bastırılır. Bu bir JQTRANSForm eklenti aksamı.

Her şey boya gibiydi ve uyardı. Hadi daha ileri gidelim!

Öyleyse, başlayalım, sayfayı ve stillerini yerleştireceğimiz ilk şey. İşaretleme, iki giriş (telefon, posta) ve bir metin alanı ile olağan geri bildirim formunu içerecektir, burada, fikrimizde, kullanıcının mesajını girecektir. Form işleyicisi ayrı bir sayfaya yerleştirilecektir.

Geri bildirim formu

Telefona girin:

Mail adresiniz:

Senin sorun:


Özel stiller:

HTML, Gövde (Yükseklik:% 100; Marjı: 0;) HTML (Arka Plan-Renk: #FFF; Renk: # 333; Yazı Tipi: 12px / 14px Verdana, Tahoma, Sans-Serif; İmleç: Varsayılan;) # Geri bildirim-Form (arka plan rengi: #ececec; marjı: 50px otomatik 0; metin-hizala: Merkez; genişlik: 430px; dolgu: 15px;) # Geri bildirim-Form H2 (Marj-alt: 25px;) # Geri bildirim-form girişi, #feedback -Form textarea (arka plan rengi: #fff; kenarlık: 1px katı # A9A9A9; dolgu: 1px 5px; genişlik:% 90;) # geri bildirim-form girişi (yükseklik: 26px;) # Geri bildirim-Form TextArea (Yükseklik: 75px; Dolgu topu: 5px;) # Geri bildirim-form girişi (kenar boşluğu: 15px; arka plan rengi: # 0b7bb5; sınır: 1px katı #cccccc; renk: #ffffff; font-ağırlık: kalın; yükseklik: 40px; hat- Yükseklik: 40px; Metin dönüşümü: büyük harf; genişlik: 225px; imleç: işaretçi;)

Tüm bu eylemlerin bir sonucu olarak, bu form olacaktır:

Şimdi sunucuyu yapmanın zamanı geldi. Komut dosyamız birkaç parça içerecektir:

  • Ayar;
  • İkincil fonksiyonlar;
  • Gönderme verilerini işleme;
  • Mesajları görüntüleme.

Tüm bu kısımlar, elbette, koşullu, çünkü kimse koddan bir yulaf lapası yapmak için ya da aksine, anahtar parçaları diğer dosyalara dönüştürür. Ancak, işleyicinin bir dosyayla yapılması daha iyi olduğunu düşünüyorum, böylece diğer projelere bağlanmak için uygun.

Ayar

Bu aşamada, üç değişken oluşturacağız: $ My_Email (verilerin gönderildiği posta kutusu), $ path_log (günlük dosyasının yolunu) ve $ time_back (zaman iade kullanıcısı siteye geri döner).

// posta kutunuzu belirtin $ My_Email \u003d " [E-posta Korumalı]"; // $ Path_Log \u003d" log.txt "günlüklerinin nerede saklanacağını belirtin; // kullanıcıyı siteye geri döndürülecek, $ time_back \u003d 3;

İkincil fonksiyonlar

Burada veri işlemeyi basitleştirecek beş işlevi tarif ediyoruz.

Mesaj çıkış şablonları:

Fonksiyon ERROR_MSG ($ mesaj) ($ mesaj \u003d "

"$ Mesaj."

"$ Mesaj geri dönüş;) fonksiyon başarma_msg ($ mesaj) ($ mesaj \u003d"

"$ Mesaj."

"; $ Mesaj geri dönüş;)

Formdan gelen verileri temizleme:

Fonksiyon Clear_Data (Dönüş Trim (Strip_Tags ($ var));)

Gönderme Mektubu:

Send_mail ($ e-posta, $ subj, $ metin, $ 'dan) ($ başlıklar \u003d "dan:". $ Dan. "\\ R \\ n"; $ başlıklar. \u003d "MIME-Version: 1.0 \\ r \\ n"; $ Başlıklar. \u003d "İçerik türü: metin / html; charset \u003d utf-8 \\ r \\ n"; $ sonuç \u003d posta ($ e-posta, $ subj, $ metin, $ başlıklar); eğer (! $ Sonuç) (iade) yanlış;) Doğru döndürün;)

Ve telefonu ve postaları formatlarının kaydının doğruluğunu kontrol edecek olan son özellik.

Fonksiyonu check_format ($ veri, $ türü) (durum "e-posta": $ pattern \u003d "/) (+ (* +)) *.) +++ $ / i"; eğer (Preg_match ($ desen, $ veri)) (TRUE döndürün;) Break; vaka "telefon": $ pattern \u003d "/ ^ (\\ +? \\ D +)? \\ S * (\\ (\\ d + \\))? [\\ S-] * ([[\\ d -] *) $ / "; eğer (preg_match ($ pattern, $ veri)) (doğru dönüş;) Break;) False döndürün;)

Yazdığımız küçük bir boyutun tüm işlevlerini görebileceğiniz gibi. Onlara veri işleme için dayanmamak mümkündü, ancak bir şeyi değiştirmeniz veya genişletmeniz gerektiğinde, örneğin Check_Format (), daha kolay ve daha uygun olacaktır.

Gönderme Verileri İşleme

Her şeyden önce, kullanıcının hangi sayfadan geldiğini öğreniyoruz. Sonra mesajlarımızın depolandığı değişkenleri ve mektup gönderme durumunu tanımlarız.

// Önceki Sayfayı Bul $ Prev_Page \u003d $ _Server ["http_referer"]; // posts $ msg \u003d ""; // harf durumu $ status_email \u003d "";

Şimdi kodlama problemi olmayacak şekilde, başlığıyla belirtin.

Başlık ("içerik türü: metin / html; charset \u003d utf-8");

İf ($ _ sunucu ["Request_Method"] \u003d\u003d "POST") (if (issas ($ _ sonrası ["numarası], $ _POST [" e-posta "], $ _POST [" soru "])) ($ number \u003d Clear_data ($ _post ["number"]); $ e-posta \u003d clear_data ($ _ post ["e-posta"]); $ soru \u003d clear_data ($ _ post ["soru"]); eğer (check_format ($ numara, "telefon ") && check_format ($ e-posta," e-posta ") &&! Boş ($ soru)) (// $ e_title \u003d" (! Lang: Yeni Mesaj"; $e_body = "!} "; $ e_body. \u003d" "$ E_body. \u003d" Telefon: ". $ Numarası; $ e_body. \u003d"
"; $ e_body. \u003d" Mail: ". $ e-posta; $ e_body. \u003d"
"; $ e_body. \u003d" Soru: "$ Soru; $ e_body. \u003d""; $ e_body. \u003d""; // sonu bir eğer mektubu oluştururuz (Send_mail ($ my_mail, $ e_title, $ e_body, $ prev_page))) ($ status_email \u003d" başarı "; $ msg \u003d Success_msg (" Sorunuz için teşekkür ederiz.
Yakında size cevap vereceğiz. ");) Başka ($ status_email \u003d" hata "; $ msg \u003d error_msg (" Bir harf gönderirken bir hata oluştu. ");) // $ STR \u003d" STR \u003d "TIME:". Tarih ("DMY G: I: S"). "\\ n \\ r"; $ str. \u003d "Telefon:". $ number. "\\ n \\ r"; $ str. \u003d "Posta:" $ e-posta. " \\ N \\ r "; $ str. \u003d" Soru: "$ Soru." \\ N \\ r "; $ str. \u003d" Mektup: "$ status_email." \\ N \\ r "; $ str. \u003d" \u003d \u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \\ n \\ r "; file_put_contents ($ path_log, $ str, file_append);) başka ($ msg \u003d error_msg (" formun doğru! ");)) başka ($ msg \u003d error_msg (" hata oluştu! ");))) başka (çıkış;)

Yazılı kodda, bir formun gönderilip gönderilmediğini tanımlarız, aksi takdirde bu dosyayı çıkış işlevini kullanarak kapatıyorum. Ardından, eğer geldilerse, verilerimizle hücre dizisindeki varlığını kontrol edin, olası çöplerden temizleyin. Temizledikten sonra, e-posta ve telefon formatlarını ve ayrıca değişken bir sorunuzdaki metnin varlığını kontrol edin. Daha sonra, verilerin yanı sıra, bir harf gönderme durumunu kaydederiz. Bu yüzden Posta () işlevinin çalışmasını izleyebileceğiz ve aynı zamanda verileri kaybetmeyin.

Mesajları Görüntüle

Kullanıcıya başarılı veya "çok" olmayan bir işlemin tamamlanmasına ve formu ile siteye geri döndürdüğümüzü bildirimde bıraktık. Bunu yapmak için, İşaretlemeyi PHP komut dosyasının kapanması ile kullanıyoruz.

Kullanıcıyı siteye geri yönlendirmek için, PHP kodunun eklerini oluşturdukları değişkenlerle birlikte yaptıkları yerde Yenileme MetaGo'yu kullanacağız. Bir sayfayı biraz dinamik hale getirmek için hala JavaScript kullanmamız gerekiyor. Yönlendirmeden önce saniyeyi saymak için ters sırada olacak saat sırtındaki () işlevini yazıyoruz.

Geri bildirim formu işleyicisi

Sayfaya iade edileceksiniz vasıtasıyla

Hepsi bu, geri bildirim şekli hazırdır.

Yazardan: Sana selamlar, arkadaşlar. Bu makale, sayfayı yeniden başlatmadan sunucuya form verilerini gönderme yaptığımız bir devam olacaktır. Burada bu konuya devam edeceğiz ve sunucuya veri almayı ve formun gönderilmesini e-postaya (e-posta) nasıl uygulayacağız. Öyleyse, geri bildirim formunu yapılandıralım ve e-postaya gönderme olasılığını ekleyelim.

Geçerli makalenin kaynak dosyaları yazılımı indirebilirsiniz.

Bu derste her şeyi mümkün olduğunca basit ve kendi başlarına yapacağız. Özellikle, harf göndermek için, mektup göndermek için önce kullanılacak olan Posta () adlı özel PHP işlevini kullanacağız.

Posta işlevi sözdizimi ile başlayalım. Bu fonksiyon üç zorunlu parametreye sahiptir ve iki isteğe bağlı (gerekli değildir). Gerekli parametreler:

- e-posta alıcısı (ayrıca birkaç adres belirleyebilir, virgülle aktarabilirsiniz);

konu - Mektubun konusu;

mesaj - Mektup metni.

İsteğe bağlı parametrelerden, yalnızca ilk önce her zaman kullanılır, bu, harfin başlıklarından sorumludur: Kodlama, Gönderen, Mektup Tipi, vb.

Bu özelliği kullanarak bir mektup göndermeye çalışalım. Formdan veri kabul ettiğimiz Mail.php dosyasında yapın. Bu dosyanın yeni kodu:

Mesajınız yayınlandı

";) Başka (yankı"

Hata!

"; }

< ? php

$ to \u003d " [E-posta Korumalı]" ; // alıcının adresi

$ Konu \u003d. "Sipariş Çağrısı"; // harf konusu

$ Mesaj \u003d. "Adı: ($ _POST [" adı "]) \\ r \\ n"; // metne isim ekle

$ Mesaj. \u003d. "Telefon: ($ _POST [" telefon "])"; // Telefonu metne ekle

$ Başlıklar. \u003d. "İçerik türü: Metin / Sade; Charset \u003d UTF-8". "\\ r \\ n"; // kodlamayı ayarladık

$ Başlıklar. \u003d ":: [E-posta Korumalı]"." \\ r \\ n "; // göndereni ekle

eğer (posta ($ 'ya, $ konusu, $ mesaj, $ başlık)) (

eko. "

Mesajınız yayınlandı

" ;

) BAŞKA (

eko. "

Hata!

" ;

Bu, gönderilecek bir mesaj oluşturmanıza izin verecek asgari koddur. Nasıl çalıştığını kontrol edelim:

Gördüğünüz gibi, kod çalışır, cevap olarak, mektubun gönderdiği bir mesaj alırız. Yerel bir sunucuda çalıştığımızdan bu yana, burada harfler gerçekten posta () işlevine gönderilmez, özel bir klasörde bir metin dosyası olarak kaydedilir. Açık sunucuda, bu bir klasör \\ userData \\ temp \\ e-posta \\. Bu klasörü açalım ve mektubun orada olduğundan emin olalım, şöyle görünecek:

Mükemmel! JS komut dosyasını engellemeyecek birkaç nokta kaldı. Örneğin, basit bir metinle değil, HTML kodunu yanı sıra, mesajı gönderdikten sonra form alanlarını temizlemeniz yeterlidir. Son JS kodu:

$ (İşlev (). Gönder (e.preventDefault (e); var verileri \u003d $ (this) .Serialize (); $ .ajax ((URL: "Mail.php", Tip: "Post", Veri: Veriler, Beforesert: Function () () () ($ ("# Gönder"). Sonraki (). Metin (Ben "Gönderim ...");), Başarı: İşlev (RES) (res) ($ ("Giriş"). Bul ("Giriş"). ). Val (""); $ ("# Gönder"). Sonraki (). HTML (RES);), Hata: İşlev () () ("Hata!");)));)));)))););); ;

$ (İşlev () (

$ ("#Recall"). Gönder (işlev (e) (

e. önleme ();

var data \u003d $ (bu). serialize ();

$. Ajax (((((

uRL: "mail.php",

tip: "Gönderi",

veri: Veriler,

beforesert: Function () () ()

$ ("#Submit"). Sonraki (). Metin ("Gönderim ...");

Konuya devam ediyor:
Akıllı telefon

Özel AHCI modunu yapılandırın ve etkinleştirin, tercihen her kullanıcıya önemli ölçüde genişletmek isteyen her kullanıcıya ve aynı anda, bilgisayarınızın çalışması için çalışmalarını iyileştirin ...