reset olmadan form doğrulama

3 Cevap php

Gönderilen ve bir hatayı göstermek verileri sıfırlama OLMADAN form sayfasına bir PHP sayfası dönüş için bir form tarafından gönderilen verileri kontrol etmek için bir yolu var mı?

Form 20 alanlar vardır ve ben bir BD bunların birini kontrol etmek gerekir. Bu başarısız olursa kullanıcı formu doldurulur ve 'yanlış' olduğu alanda bir hata mesajı görüntüleniyor ile form sayfasına yönlendiriliyorsunuz olabilir.

Bunun yerine PHP kullanarak her alanı doldurmamak bir tekniğin herhangi bir tavsiye istiyorum.

GÜNCELLEME:

Ben kendim alanları yeniden doldurmanız içeren herhangi bir çözüm kullanmak istemiyorum!

Ben önceki değerleri ile doldurulan form sayfasına dönmek bir çözüm istiyorum. I) js.history.back veya window.back (gibi bir şey denedim. Ancak form boş döner ...

UPDATE : If you are looking for this type of behavior, nowadays there are several different techniques to achive this. I'm currently using jQuery (Ajax).

3 Cevap

Form alanları HTML, alan değeri olarak yayınlanmıştır değerleri ekleyin.

örn:

<input type='text' name='email' value='<?php echo $_POST['email']; ?>' />

Evet, sadece, önceden formları kontrol size doğrulama işleminden sonra formu HTML çalıştırmak emin olun, ve doğrulama başarısız olursa, alanlarında önceki tüm bilgileri formu yeniden.

Böyle bir şey olabilir:

<?php if(isset($_POST['submit']){
    // validation code goes here with a trigger variable to
    // contain true or false depending on the outcome    
}

if($trigger==false){
    // load up your post data here    
} 

echo '
    <!-- form HTML goes here -->
';

Senin Formu Doğrulama sayfada

<?php
$form_values = $_POST;
//Your Form Validation
//$form_validated = TRUE/FALSE;  // FALSE if there were errors

if ($form_validated) {$form_values = array();}
$_SESSION['form_values'] = $form_values; /* if your form validation page and form page is not on the same page and can also use the same technique for error messages */
?>

Her giriş alanı için Formu sayfada.

<?php
$form_values = $_SESSION['form_values']; //if your form validation page and form page is not on the same page
unset($_SESSION['form_values']);

echo '<input type="text" name="user_name" value="'.$form_values['user_name'].'" />';
?>

Farklı giriş türleri farklı $form_values dizi işlemek gerekir, ancak bu başlamak gerekir.

Eğer ayrı bir form doğrulama sayfasını kullanarak değilseniz, doğrudan $_POST dizisini oluşturan form değerleri alabilirsiniz.