Tatsız doğrulama php. PHP kullanarak doğrulama ve veri temizleme. Kendi doğrulama kuralınızı kaydetme

Web uygulamaları oluştururken, özellikle kullanıcılardan veri almayla uğraşmanız gerektiğinde güvenliği ciddiye almak önemlidir.

Genel bir güvenlik kuralı kimseye güvenmemektir, bu nedenle kullanıcıların formlara her zaman doğru değerleri girmelerine güvenemezsiniz. Örneğin, kullanıcı alana doğru e-posta adresini girmek yerine yanlış bir adres, hatta bazı kötü amaçlı veriler girebilir.

Kullanıcı verilerinin doğrulanması söz konusu olduğunda, bu işlem istemci tarafında (web tarayıcısında) veya sunucu tarafında yapılabilir.

Daha önce istemci tarafı doğrulama yalnızca JavaScript kullanılarak yapılabiliyordu. Ancak her şey değişti (veya neredeyse değişti), çünkü HTML5'in yardımıyla doğrulama, JavaScript'te karmaşık doğrulama komut dosyaları yazmaya gerek kalmadan tarayıcıda yapılabilir.

HTML5 Kullanarak Form Doğrulama

HTML5, şu etiket özelliklerine dayalı oldukça sağlam bir mekanizma sağlar: type, model ve require. Bu yeni özelliklerle, veri doğrulama işlevlerinin bir kısmını tarayıcıya aktarabilirsiniz.

Form doğrulamada nasıl yardımcı olabileceklerini anlamak için bu özelliklere bakalım.

tür özelliği

Bu özellik, veri işleme için hangi giriş alanının görüntüleneceğini belirtir; örneğin aşağıdaki gibi tanıdık bir alan:

Bazı giriş alanları, ek kod yazmaya gerek kalmadan zaten standart doğrulama yöntemleri sağlar. Örneğin, girilen değerin geçerli bir e-posta adresinin şablonuyla eşleştiğinden emin olmak için bir alanı kontrol eder. Bir alana yanlış karakter girilmesi durumunda, değer düzeltilinceye kadar form gönderilemez.

Aşağıdaki demoda e-posta alanı değerleriyle oynamayı deneyin.

Sırasıyla numaraları, URL'leri ve telefon numaralarını doğrulamak için ve gibi başka standart alan türleri de vardır.

Not: Telefon numarası formatları, telefon numaralarındaki rakam farklılıkları ve format farklılıkları nedeniyle ülkeden ülkeye farklılık gösterir. Sonuç olarak, spesifikasyon, telefon numaralarını kontrol etmek için bir algoritma tanımlamamaktadır, bu nedenle, bu özelliğin yazıldığı sırada, tarayıcılar tarafından yeterince desteklenmemektedir.

Şanslıyız ki, telefon numarası doğrulaması, düzenli ifadeyi bağımsız değişken olarak alan ve daha sonra ele alacağımız model özelliği kullanılarak yapılabilir.

desen özelliği

Desen özelliği muhtemelen birçok ön uç geliştiricinin sevinçten zıplamasına neden olacaktır. Bu özellik, alana girilen verilerin doğruluğunu kontrol etmek için kullanılacak bir normal ifadeyi (JavaScript düzenli ifade formatına benzer) kabul eder.

Düzenli ifadeler, metni ayrıştırmak ve işlemek için kullanılan bir dildir. Genellikle karmaşık bulma ve değiştirme işlemlerinin yanı sıra girilen verilerin doğruluğunu kontrol etmek için kullanılırlar.

Bugün, düzenli ifadeler en popüler programlama dillerinin yanı sıra birçok komut dosyası dilinde, düzenleyicide, uygulamada, veritabanlarında ve komut satırı yardımcı programlarında bulunmaktadır.

Düzenli ifadeler (RegEX), tek tek karakterler, kelimeler veya karakter kalıpları gibi bir metin dizesini eşleştirmek için güçlü, kısa ve esnek bir araçtır.

Desen özelliğinin değeri olarak normal bir ifadeyi ileterek, belirli bir giriş alanı için hangi değerlerin kabul edilebilir olduğunu belirleyebilir ve kullanıcıyı hatalar hakkında bilgilendirebilirsiniz.

Giriş alanlarının değerini doğrulamak için normal ifadelerin kullanımına ilişkin birkaç örneğe bakalım.

Telefon numaraları

Daha önce de belirtildiği gibi, farklı ülkelerdeki telefon numarası formatlarındaki tutarsızlıklar nedeniyle tel alanı türü tarayıcılar tarafından tam olarak desteklenmemektedir.

Örneğin, bazı ülkelerde telefon numaralarının formatı xxxx-xxx-xxxx'tir ve telefon numarasının kendisi de şuna benzer: 0803-555-8205.

Bu kalıbın eşleştiği normal ifade şöyledir: ^\d(4)-\d(3)-\d(4)$ . Kodda bu şu şekilde yazılabilir:

Telefon numarası:

Alfasayısal değerler Özellik gerekli

Bu, formu göndermek için belirli bir alanın değerinin doldurulması gerektiğini belirtmek için kullanılan bir Boole özelliğidir. Bu özelliği bir alana eklediğinizde tarayıcı, formu göndermeden önce kullanıcının bu alanı doldurmasını isteyecektir.

Bu bizi, geliştiricilere biraz zaman kazandırabilecek JavaScript kullanarak alan doğrulama uygulamaktan kurtarır.

Örneğin: veya (XHTML uyumluluğu için)

Yukarıda gördüğünüz demoların tümü gerekli özniteliği kullanıyor; dolayısıyla herhangi bir alanı doldurmadan formu göndermeyi deneyerek deneyebilirsiniz.

Çözüm

Form doğrulama için tarayıcı desteği oldukça iyidir ve daha eski tarayıcılar için çoklu doldurmaları kullanabilirsiniz.

Bu kontroller saldırganlar veya botlar tarafından kolayca atlatılabileceğinden, yalnızca tarayıcı tarafı doğrulamaya güvenmenin tehlikeli olduğunu belirtmekte fayda var.

Tüm tarayıcılar HTML5'i desteklemez ve komut dosyanıza gönderilen verilerin tümü formunuzdan gelmez. Bu, kullanıcıdan gelen verileri nihai olarak kabul etmeden önce sunucu tarafında doğruluğunun kontrol edilmesi gerektiği anlamına gelir.

Form gönderim verilerini daha ileri işlemler için almadan önce formunuza yapılan girişin doğrulanması çok önemlidir. Formda çok fazla alan olduğunda PHP doğrulama betiği çok karmaşık hale gelir. Üstelik, yaptığınız formların çoğu için aynı veya benzer doğrulamayı yaptığınızdan, form doğrulamaları için çok fazla mükerrer çaba harcanır.

Bu genel PHP form doğrulama komut dosyası hakkında

Bu genel PHP form doğrulayıcı betiği, formunuza doğrulamalar eklemenizi çok kolaylaştırır.

Formdaki her öğeyle bir dizi "doğrulama tanımlayıcısı" oluşturup ilişkilendiririz. “Doğrulama tanımlayıcısı” gerçekleştirilecek doğrulama türünü belirten bir dizedir. Örneğin, "req" gerekli anlamına gelir, "alfa" yalnızca alfabetik karakterlere izin verilir vb. anlamına gelir.

Formdaki her alanın sıfır, bir veya daha fazla doğrulaması olabilir. Örneğin, giriş boş olmamalı, 25 karakterden az olmalı, alfa-sayısal vb. olmalıdır.

Formdaki her giriş alanı için bir dizi doğrulama tanımlayıcısını ilişkilendirebilirsiniz.

PHP form doğrulama komut dosyasını indirin

PHP form doğrulama komut dosyasını aşağıdan indirebilirsiniz:
Zip dosyası form doğrulama komut dosyası formvalidator.php'yi, belgeleri ve kullanım örneklerini içerir.

PHP form doğrulama komut dosyasını kullanma
  • formvalidator.php'yi form işleme komut dosyanıza ekleyin
  • require_once "formvalidator.php"
  • Bir FormValidator nesnesi oluşturun ve form doğrulama tanımlayıcılarını ekleyin.
  • $doğrulayıcı = new FormValidator(); $validator->addValidation("İsim", "req", "Lütfen Adı giriniz"); $validator->addValidation("Email","email", "E-posta girişi geçerli bir e-posta değeri olmalıdır"); $validator->addValidation("Email", "req", "Lütfen E-postayı doldurun");

    İlk argüman formdaki giriş alanının adıdır. İkinci argüman, gerekli doğrulamanın türünü söyleyen doğrulama tanımlayıcısıdır. Üçüncü argüman, doğrulama başarısız olursa görüntülenecek hata mesajıdır.

  • ValidateForm() işlevini çağırarak formu doğrulayın
  • if(!$validator->ValidateForm()) ( echo "Doğrulama Hataları:"; $error_hash = $validator->GetErrors(); foreach($error_hash as $inpname => $inp_err) ( echo "

    $inpname: $inp_err

    \n"; )) Örnek

    Aşağıdaki örnek fikri daha net hale getirecek

    Ad: E-posta:

    Özel Doğrulama Ekleme

    Doğrulama tanımlayıcıları tarafından sağlanmayan özel bir doğrulama eklemek istiyorsanız bunu yapabilirsiniz. İşte adımlar:

  • Özel doğrulama için bir sınıf oluşturun ve DoValidate() işlevini geçersiz kılın
  • class MyValidator, CustomValidator'ı genişletir ( function DoValidate(&$formars,&$error_hash) ( if(stristr($formars["Comments"],"http://")) ( $error_hash["Comments"]="URL'ye izin verilmez yorumlarda"; false değerini döndür; ) true değerini döndür; ))

  • Özel doğrulama nesnesini ekleyin
  • $doğrulayıcı = new FormValidator(); $validator->addValidation("İsim", "req", "Lütfen Adı giriniz"); $validator->addValidation("Email","email", "E-posta girişi geçerli bir e-posta değeri olmalıdır"); $validator->addValidation("Email", "req", "Lütfen E-postayı doldurun"); $custom_validator = new MyValidator(); $validator->AddCustomValidator($custom_validator);

    Özel doğrulama işlevi, diğer doğrulamalardan sonra otomatik olarak çağrılacaktır.

    Doğrulama Tanımlayıcıları Tablosu

    Tüm doğrulama tanımlayıcılarının listesi aşağıdadır:

    Doğrulama TanımlayıcısıKullanım
    talepAlan boş olmamalıdır
    maxlen=???Girilen verilerin uzunluğunu maksimuma kadar kontrol eder. Örneğin, izin verilen maksimum boyut 25 ise doğrulama tanımlayıcısını “maxlen=25” olarak verin.
    minlen=???Girilen dizenin uzunluğunu gereken minimum değere kadar kontrol eder. örnek “minlen=5”
    yıllıkVerilerin alfabetik veya sayısal karakterler dışında başka karakterler içerip içermediğini kontrol edin
    alnum_sYalnızca alfabetik, sayısal ve boşluk karakterlerine izin verir
    sayıSayısal verileri kontrol edin
    alfaAlfabetik verileri kontrol edin.
    alfa_larAlfabetik verileri kontrol edin ve boşluklara izin verin.
    e-postaAlan bir e-posta alanıdır ve verilerin geçerliliğini doğrular.
    lt=???
    daha az=???
    Verilerin iletilen değerden küçük olduğunu doğrulayın. Yalnızca sayısal alanlar için geçerlidir.
    örnek: değerin 1000'den küçük olması gerekiyorsa doğrulama açıklamasını “lt=1000” olarak verin
    gt=???
    büyüktür=???
    Verilerin iletilen değerden büyük olduğunu doğrulayın. Yalnızca sayısal alanlar için geçerlidir.
    örnek: değerin 10'dan büyük olması gerekiyorsa doğrulama açıklamasını "gt=10" olarak verin
    normal ifade=???Değerin normal ifadeyle eşleşmesi gerektiğini normal bir ifadeyle kontrol edin.
    örnek: “regexp=^(1.20)$” en fazla 20 alfabetik karaktere izin verir.
    seçmeyin=??Bu doğrulama tanımlayıcısı seçili giriş öğeleri (listeler) içindir. Normalde, seçme liste kutularında 'Birini Seç' yazan bir öğe bulunur. Kullanıcı bu seçeneğin dışında bir seçenek seçmelidir. Bu seçeneğin değeri 'Birini Seçin' ise doğrulama açıklaması "dontselect=Birini Seçin" olmalıdır
    seçmeBu doğrulama tanımlayıcısı onay kutuları içindir. Kullanıcı verilen onay kutusunu seçmemelidir. ?? yerine onay kutusunun değerini belirtin.
    Örneğin, donselectchk=on
    olmalıBu doğrulama tanımlayıcısı onay kutuları içindir. Kullanıcı verilen onay kutusunu seçmelidir. ?? yerine onay kutusunun değerini belirtin.
    Örneğin, Shouldselchk=on
    radyoyu seçmeBu doğrulama tanımlayıcısı radyo düğmeleri içindir. Kullanıcı verilen radyo düğmesini seçmemelidir. ?? yerine radyo düğmesinin değerini girin.
    Örneğin, radyoyu seçmeyin=HAYIR
    radyo seçBu doğrulama tanımlayıcısı radyo düğmeleri içindir. Kullanıcı verilen radyo düğmesini seçmelidir. ?? yerine radyo düğmesinin değerini girin.
    Örneğin, radyo seç=evet
    selmin=??Bir onay kutusu grubundan en az n sayıda onay kutusunu seçin.
    Örneğin: selmin=3
    yalnızRadyo grubunu zorunlu kılar. Kullanıcı radyo grubundan en az bir öğe seçmelidir.
    eqelmnt=???formdaki iki öğeyi karşılaştırın ve değerlerin aynı olduğundan emin olun. Örneğin, 'şifre' ve 'şifreyi onayla'. ???'yı değiştirin diğer giriş öğesinin adıyla birlikte.
    Örneğin: eqelmnt=confirm_pwd

    POST veya GET verilerinin doğrulanmasından bahsedeceğiz, ancak prensipte bu, çerezler gibi diğer yöntemlerle alınan verilere de uygulanabilir. Bir web uygulaması geliştirirken, kullanıcılarla etkileşim kurmak için bir arayüz yazmanız ve doğal olarak kullanıcıların sunucuya veri göndermesi için çeşitli formlar oluşturmanız gerekir. örneğin bunlar yorum olabilir. Alınan verilerin türe, boyuta ve belirtilen aralığa uyup uymadığının kontrol edilmesi gerektiğinin herkes için açık ve net olduğunu düşünüyorum. Öncelikle sistemin, web sitesinin veya veri tabanının güvenliği için bu gereklidir, çünkü... Yanlış iletilen veriler veya kasıtlı olarak kötü oluşturulmuş bir istek, saldırganın erişimini açabilir.

    İkinci olarak, doğrulanmamış veriler yanlışsa komut dosyasının, sistemin veya tüm sunucunun dengesiz çalışmasına neden olabilir. Bu nedenle, tüm verilerin kontrol edilmesi ve iki kez kontrol edilmesi gerekiyor; belki birisi aşırı paranoyaya gerek olmadığını söyleyecektir, ancak bu konuda bunun aşırı olamayacağına inanıyorum.

    Hiçbir bahane altında, hiçbir koşulda kullanıcılardan alınan verilere güvenmeyin. Alınan verileri bir kez daha kontrol eden bir kod yazamayacak kadar tembeliz veya mevcut doğrulama yöntemlerinin yeterli olduğunu umuyoruz ve bunun sonucunda kendimize taviz veriyoruz.

    Konudan küçük bir alıntı:
    Projeler üzerinde çalışmak, web siteleri, scriptler ve diğer sistemleri geliştirmek ve programlamak (çalışma süresi dışında) neredeyse boş zamanımın tamamını alıyor, yani bu işi günde mümkün olan maksimum saat boyunca yapıyorum. Zaman zaman eğlence için ya da sadece merak için bir şeyi test etmeye ihtiyaç duyulur. Sonuç olarak, ev yapımı motorlar veya eski versiyonların CMS'si kullanılarak aceleyle yapılan siteler, benzer test laboratuvarı fareleri haline gelir. Tabii ki, yukarıdakilerin tümü çarpık yazılmış kodlardan, veri kontrolü eksikliğinden muzdariptir ve çeşitli hatalarla doludur. Aslında, çoğu durumda, bu tür sitelerde yaptığım bir saatlik deneylerde, birçok ciddi güvenlik açığı bulmayı başardım ve bunların çoğu, gelen verilerin yetersiz doğrulanmasından kaynaklanıyor. Son zamanlarda bu duruma genellikle JavaScript + Ajax'tan alınan POST verilerini işleyen komut dosyalarında rastlanmaktadır.

    Görünen o ki, Ajax kullanarak bu komut dosyalarını yazan programcılar, tüm isteklerin arka planda, kullanıcının bilgisi olmadan veya sayfayı yeniden yüklemeden gerçekleştiğinden, verilerin özellikle kontrol edilmesine gerek olmadığına inanıyorlar.

    Kural olarak, bu senaryolardan pek çoğunun o kadar deliklerle dolu olduğu ortaya çıkıyor ki, fazla çaba harcamadan daha büyük bir delik açıp kabuklarını su basmayı başarıyorlar. elbette, yalnızca deneme amaçlıdır ve başka bir şey değildir (bu tür sitelerin yönetimi her zaman mevcut güvenlik açıkları konusunda bilgilendirilir).

    Doğrulamanın öneminin herkes için açık olduğunu düşünüyorum. Uzun bir süre boyunca her seferinde aynı kod parçasını yazdım, ardından çoğu çok ilkel olan ve kural olarak (dahil edilen) dosyaların farklı bölümlerine dağılmış olan kendi veri doğrulama işlevlerimi kullandım. Kısa süre sonra, projelerim için ödünç aldığım verileri doğrulamak için her biri kendi sınıfını uygulayan Zend, CI, Kohana PHP çerçeveleriyle tanışmaya başladım. Sonunda CI sınıflarından birini ihtiyaçlarıma göre uyarlamaya karar verdim, ancak programlama bloglarından birinin yazarının bununla zaten ilgilendiği ortaya çıktı. Daha sonra çalışmalarını yani değiştirilmiş CodeIgniter kütüphanesini paylaşıyorum.

    Aşağıdaki koda bakalım:

    Kodu görüntüle PHP

    require_once "validator.class.php"; $doğrulayıcı = yeni Doğrulayıcı() ; $validator -> set_rules ("isim", "Adınız", dizi ("gerekli" =>, "alfa" => ) ); $validator -> set_rules ("email" , "E-postanız" , array ("gerekli" => "%s alanı gerekli" , "valid_email" => ) ); if ($doğrulayıcı -> çalıştır () ) ( echo "Doğrulama başarılı oldu"; ) else ( echo $doğrulayıcı -> get_string_errors () ; )

    Örnekte de görebileceğiniz gibi ilk satıra sınıf dosyasını dahil ediyoruz. validator.calss.php senaryomuza. Daha sonra sınıfın bir örneğini oluşturuyoruz ve nesneyi bir değişkene kaydediyoruz. $doğrulayıcı.
    Daha sonra yöntemi kullanarak $validator->set_rules($field, $label, $rules) doğrulama için alanları ayarlayın.

    Bu yöntem 3 parametre alır:

  • $alan- doğrulama alanının adı (etiketteki name özelliğinin değeri)
  • $etiket- doğrulama alanının adı, hata mesajlarına eklenecektir
  • $kurallar- doğrulama kuralının anahtar olarak kullanıldığı ve bu kurala ilişkin hata mesajının değer olarak kullanıldığı bir doğrulama kuralları dizisi
  • Doğrulama için tüm alanlar ayarlandıktan sonra, yöntemi kullanarak doğrulayıcıyı başlatıyoruz. $validator->run(). Doğrulama başarılı olursa bu yöntem değeri döndürür DOĞRU, aksi takdirde herhangi bir hata varsa geri döner YANLIŞ.

    Hata mesajlarını almanın üç yöntemi vardır:

  • get_string_errors()- tüm hata mesajlarını bir dize olarak döndürür
  • get_array_errors()— tüm mesajları bir dizi olarak döndürür; burada anahtar olarak alan adı kullanılır ve değer olarak bu alanın hata açıklaması kullanılır.
  • form_error($alan)- $field parametresi olarak iletilen alan için bir hata mesajı döndürür
  • Varsayılan olarak hata mesajları bir etikete sarılır . Tasarımınızı ayarlamak için yöntemi kullanın set_error_delimiters($önek, $sonek). Örneğin şöyle:

    Hata mesajları artık şu şekilde görünecektir: div sınıfla "hata"

    Gördüğünüz gibi her şey çok basit.

    Kodu görüntüle PHP

    $validator -> set_error_delimiters("","");

    Doğrulama kurallarını ayarlamak için yöntemi kullanabilirsiniz. set_rules($alanlar)çok boyutlu bir ilişkisel diziyi iletir. Bir örneğe bakalım:

    Kodu görüntüle PHP

    $rules = array ( array ( "alan" => "isim" , "etiket" => "Adınız" , "kurallar" => array ( "gerekli" => "%s alanı gerekli" , "alfa" = > "%s alanı yalnızca harfler içermelidir" ), array ( "field" => "e-posta" , "label" => "E-posta adresiniz" , "kurallar" => array ( "gerekli" => "% s alanı gerekli" , "valid_email" => "%s alanı geçerli bir e-posta adresi içermelidir" ) ) ) ; $doğrulayıcı -> set_rules ($kurallar) ;

    Gördüğünüz gibi, ilk örnekteki doğrulama kurallarının aynısını yalnızca çok boyutlu bir ilişkisel dizi biçiminde yazdım. Belirli bir durumda size en uygun yöntemlerden herhangi birini kullanabilirsiniz.

    Peki bu sınıf hangi doğrulama kurallarını destekliyor?

    Bu sınıfa herkesin karşılaştığı en yaygın doğrulama kurallarını getirdim. İşte bu kuralların tam listesi:

    gerekliAlan boşsa FALSE değerini döndürür
    tamsayıDeğer bir tamsayı değilse FALSE değerini döndürür
    batmadan yüzmekDeğer sayısal bir değer değilse FALSE değerini döndürür
    geçerli_urlDeğer geçerli bir URL değilse FALSE değerini döndürür
    geçerli e-postaDeğer geçerli bir e-posta adresi değilse FALSE değerini döndürür
    geçerli_ipIP adresi geçerli değilse FALSE değerini döndürür
    maçlarÖğe başka bir alan öğesinin değeriyle eşleşmiyorsa FALSE değerini döndürür
    alfaÖğe yalnızca harflerden fazlasını içeriyorsa FALSE değerini döndürür
    geçerli_captchaOturum alanındaki değer form alanının değerine eşit değilse FALSE değerini döndürür
    geçerli tarihÖğe geçersiz bir tarih içeriyorsa FALSE değerini döndürür

    Bu kuralların çoğu PHP 5'te kullanıma sunulan filtreleri kullanır.

    İsterseniz Validator sınıfına gerekli fonksiyonları ekleyerek doğrulama için kurallar kümesini her zaman genişletebilirsiniz.

    İşlenen POST veri değerini almak için aşağıdaki yöntemi kullanın:

    Kodu görüntüle PHP

    Tipik olarak bu yöntem, formun başarılı bir şekilde işlenmesi üzerine formu temizlemek için çağrılır.

    Herkese iyi akşamlar (daha çok gece gibi - editörün notu). Bugün bunu biraz geliştireceğiz. Öncelikle PHP'de form doğrulamanın nasıl yapıldığını öğrenelim ve bazı güvenlik manipülasyonlarını yapalım.

    Bu nedenle, aşağıdaki koda bakın ve aşağıdaki değişiklikleri ve değişikliklerin aşağıdaki nedenlerini not edin. Tüm yeni satırları renkle vurguladım.

    Form alanlarının adı değiştirildi. Şunu sorabilirsiniz: Buna neden ihtiyacımız var? Çok basit, sana cevap vereceğim. Bildiğim kadarıyla bazı spam botları form arayan siteleri tarıyor ve formları bu alanların adlarına göre dolduruyor. Teorik olarak, eğer bir eşleşme bulamazlarsa evlerine giderler ki biz de bunu istiyoruz. Elbette bu korumanın derecesinin çok iyi olduğunu düşünmüyorum ama bize zarar vermez ve spam e-postalar 1 harf azalırsa bu iyi olur =).

    E-posta adresinin doğru girilip girilmediği kontrol ediliyor. 17. satır, bize olumlu bir yanıt verilmesi durumunda kontrol edilecek olan elseif operatörünü kullanıyor, yani e-posta adresinin hiç eksik olduğunu, yani girilmediğini söylüyor. Burada girilen adresi karşılaştırmamızı sağlayan preg_match fonksiyonunu kullanıyoruz. Düzenli ifade. Belki daha sonra düzenli ifadeler hakkında kısaca yazacağım, ancak şimdilik düzenli ifadenin dizemizin kontrol edildiği bir tür şablon oluşturduğunu bilmekte fayda var. Ve eğer bizim durumumuzda girilen adres ifadeyle eşleşmiyorsa, o zaman tekrar bir hata görüntülenecektir. Örneğin, burada birkaç normal ifade daha var:
    |^[-а-яе\s\.,;:\?!]+$|i– bu normal ifade yalnızca Rus alfabesini ve boşluk, nokta, virgül vb. gibi bazı karakterleri kullanmanıza olanak tanır.
    #http://[-a-z0-9_.]+[-a-z0-9_:@&?=+,.!/~*’%$]*\.(html?|php)#i– ve bu ifade, İnternet'teki bir adresin doğru yazılışını kontrol etmenizi sağlar.

    Daha sonra, bir mektup göndermek için tüm kodumuzun zaten aktarıldığı else operatörünü kullanıyoruz. İstediğiniz miktarda doğrulama kurallarını kendiniz oluşturabilirsiniz, örneğin bir e-posta adresini kontrol etmek için yenilerini eklemeniz yeterlidir; mutlu olursunuz.




    İrtibat kurulacak kişi:



    İletişim E-posta:



    İleti:






    Yabancı hiçbir şeye başvurmadan PHP formlarınızı bu şekilde doğrulayabilirsiniz. Bir dahaki sefere formlar konusundaki bir yazıda jQuery'deki formların doğrulanmasının ele alınacağını düşünüyorum. Bu arada yorumlarınızı ve dileklerinizi bekliyorum. Herkese iyi geceler ve mutlu sabahlar =).

    Bu ve sonraki bölümlerde form verilerini doğrulamak için PHP'nin nasıl kullanılacağı gösteriliyor.

    PHP Form Doğrulaması

    PHP formlarını işlerken GÜVENLİĞİ düşünün!

    Bu sayfalarda PHP formlarının güvenlik göz önünde bulundurularak nasıl işleneceği gösterilecektir. Form verilerinin doğru şekilde doğrulanması, formunuzu bilgisayar korsanlarından ve spam gönderenlerden korumak için önemlidir!

    Bu bölümlerde üzerinde çalışacağımız HTML formu çeşitli giriş alanlarını içerir: zorunlu ve isteğe bağlı metin alanları, radyo düğmeleri ve gönder düğmesi:

    Yukarıdaki formun doğrulama kuralları aşağıdaki gibidir:

    Alan Doğrulama Kuralları
    İsim Gerekli. + Yalnızca harf ve boşluk içermelidir
    E-posta Gerekli. + Geçerli bir e-posta adresi içermelidir (@ ve . ile)
    İnternet sitesi İsteğe bağlı. Varsa geçerli bir URL içermelidir
    Yorum İsteğe bağlı. Çok satırlı giriş alanı (textarea)
    Cinsiyet Gerekli. Birini seçmelisin

    İlk önce formun düz HTML koduna bakacağız:

    Metin Alanları

    Ad, e-posta ve web sitesi alanları metin giriş öğeleridir ve yorum alanı bir metin alanıdır. HTML kodu şuna benzer:

    İsim:
    E-posta:
    İnternet sitesi:
    Yorum:

    Radyo Düğmeleri

    Cinsiyet alanları radyo düğmeleridir ve HTML kodu şöyle görünür:

    Cinsiyet:
    Dişi
    Erkek
    Diğer

    Form Öğesi

    Formun HTML kodu şöyle görünür: