PHP doğrulama ile bir göndermek nasıl?

4 Cevap

PHP ile bu formu göndermek istiyorum. telefon numarası ve e-posta alan için gerekli alan ve doğrulama için doğrulama ile de

<form action="" method="" id="get-protected">
<div class="row requiredRow">
    <label for="txt_FirstName">
        First Name</label>
    <input id="txt_FirstName" type="text" class="required" title="First Name. This is a required field" />
</div>
<div class="row">
    <label for="txt_LastName">
        Last Name</label>
    <input id="txt_LastName" type="text" title="First Name. This is a required field" />
</div>
<div class="row">
    <label for="txt_Phone">
        Phone</label>
    <input id="txt_Phone" type="text" title="First Name. This is a required field" />
</div>
<div class="row requiredRow">
    <label for="txt_Email">
        Email</label>
    <input id="txt_Email" type="text" class="required" title="Email. This is a required field" />
</div>
<div class="row">
    <input type="submit" value="" class="button" />
</div>
</form>

4 Cevap

Lütfen method niteliği içeride sizin form, ya post veya get bildirmek gerekir.

Lütfen action niteliğidir beri de doğrulama için denetler kodunuzu sahip böylece "" Bu, yerine başka bir sayfaya yönlendirme daha sayfasında itself sunacaktır Aynı PHP dosyası. Sık sık kontrol edilir İlk doğrulama değişken bir value kullanarak sahip olduğunu isset :

if(isset($_POST['txt_Phone'])) { ... }

Bu sadece Telefon numarası alanı boş veri içermediğini denetler. Ben herhangi kullanıcıları zararlı kod gönderme yok bu yüzden strongly suggest you perform other validation checks on the POST dizisi.

Eğer değerleri ile yapmak plan ne bağlı kullanıcı tarafından sağlanan metni engellemek için htmlspecialchars gibi işlevleri kullanabilirsiniz

İşte onlar görülmelidir sırayla yol boyunca size yardımcı olacak bazı referanslar vardır.

Sizin form etiketi (GET veya POST ya) yöntemi alanında eylem alanında bir hedef ve bir yöntem gereklidir. Yani eylem PHP komut yapmak.

<form name="input" action="form_submit.php" method="get">

Alan doğrulama için olduğu gibi, PHP bu içini ayrıştırmak ve bir yanıt döndürür veya anında kontrol etmek için tarayıcınızda Javascript kullanmak zorunda kalırsınız ya.

İşte böyle bir senaryonun shcema olduğunu:

if ($_SERVER['REQUEST_METHOD']=='POST') { 
  //data validation:
  $err="";
  if (valid_phone($_POST['phone'])) $err="Wrong phone no";
  if (!$err) { 
    //record data:
    $sql="...";
    query($sql);
    Header("Location: ".$_SERVER['REQUEST_URI']);  //redirect and exit
    exit; 
  } 
} 
?> 
<html> 
<head></head> 
<body> 
<? if ($err) ?> <font color=red><b><?=$err?></b></font> 
<form method="POST" id="get-protected"> 
here goes your form

Tamam, öncelikle, ben formu action <?=$_SERVER['REQUEST_URI']?> arka geçerli sayfaya gönderebilirsiniz, ancak bunu çok iyi çalışır gibi onu terk etmek için ayarlamak ister.

İkincisi, tüm <input> sa name niteliğini vermek gerekir. Bu PHP göreceksiniz değişken adıdır.

Kullanıcıların bir hata aldığınızda (bir şey düzgün doğrulamaz) onlar kaybolmaya girilen tüm verileri istemiyorum. Yani daha önce girmişti ne her giriş value özelliklerini ayarlamak zorunda kalıyoruz. Böylece, formu bu gibi görünmeye başlar:

<form action="<?=$_SERVER['REQUEST_URI']?>" method="" id="get-protected">
<div class="row requiredRow">
    <label for="txt_FirstName">
    First Name</label>
    <input id="txt_FirstName" type="text" class="required" title="First Name. This is a required field" name="first_name" value="<?=htmlspecialchars($_POST['first_name'])?>" />
</div>
...
<div class="row">
    <input type="submit" name="submit" value="" class="button" />
</div>
</form>

Eğer bilmiyordum <?= bir temelde <?php echo için bir kısayol ancak sunucu short tags etkinse, sadece çalışacaktır. Ben tembelim, bazı insanlar uzun (onlar sunucuları daha sonra geçiş yapmak istediğiniz durumda, veya gelecekteki uyumluluk için, ya da nutbars çünkü) yolu yazın dışarı tercih, ama ben onları vida söylüyorlar.

Üzerinde formu vardır Bu sayfa, bir .php uzantısı ile kaydedilmiş olan (iyi, teknik etmez have, ama bu başka bir hikaye). Sonra doğrulama formu işlemek gerekir. Kendini o kadar kod zorunda. Böyle bir şey (bir yere şeklinde yukarıda koymak) görünebilir

<?php
if($_POST['submit']) {
    $errors = array()
    if(empty($_POST['first_name'])) $errors[] = 'please enter your first name';

    if(empty($errors)) {
        // save the data to database or do whatever you want with it
        header('redirect:succcess.php');
    } else {
        foreach($errors as $e) {
            echo $e;
        }
    }
}
?>

Ben sözdizimi hataları varsa beni affet PHP kodlu ettik çünkü bir süre oldu. İşte zaten bunun jist, ben orada doğrulama kütüphaneleri bulabilirsiniz eminim Google edin. E-posta adreslerini ve bu doğrulamak için çalışıyor dışarı homurtu bazı iş alabilir.