PHP Multiform Doğrulama ve Yönlendirme

2 Cevap php

Ben Gönder düğmesini tıkladığınızda, vb öğeleri, miktar, nakliye veri girmek, bir form ile buy.php var, o ($ _SERVER ['PHP_SELF']) buy.php geri nakleder ve bazı veri doğrulama yapar. Eksik alanlar veya hatalar varsa, bunlar vurgulanır. Alıcı aslında satın almadan önce INFO son bir kez kontrol edebilirsiniz böylece verileri görüntüleyebilir, nerede: Her şey doğru ise, o zaman ('check.php Yeri') bir başlık yapmak, $ _SESSION değişkenleri $ _POST verileri kaydetmek.

Ben check.php yaşıyorum ve bu yüzden şeyler değiştirebilirim buy.php için Geri düğmesine basın eğer POST verileri yeniden istiyorsanız Şimdi, tarayıcı sorar. Bunu önlemek için çalışıyorum. Herkes PHP Multiform doğrulama için iyi bir tavsiye ya da iyi uygulamalar var? Ben doldurmak için kullanıcı için n sayfalar olsaydı Ayrıca, buy.php, buy2.php ... buyn.php check.php önce aynı fikirleri hala tutacaktı?

Yardımın için teşekkürler!

2 Cevap

Daha sonra sunucu check.php yönlendirmek gelmez oturum nesnesine kaydettikten sonra, bu demek olur buy.php için bir yönlendirme yapabileceğini Kullanıcı geri tıkladığında, onlar geri GET isteği değil POST isteği gidiyoruz

Evet - Ben yukarıda katılıyorum. Ben her zaman çok geri tıklayarak bu hataya VEYA yeniden başvuru olmaksızın geri sıçrar, bir redir uzakta son yazılan do. o da komplikasyonları önler. u zaman bir ?m veya &m ile redir bağlantı sayfası etiketleyebilirsiniz (örn: page.php?m) ve sayfanın üst kısmında bu var: (kullanım elseif sonra orada)

if (isset($_GET['m'])) {
  echo 'order placed.';
}
else {
  //...
}

Siz de tek bir sayfada tüm bu olabilir. Sadece isim düğmeleri gönderin submit1, submit2, gibi: (akılda size DBSKP'e ibraz için bir görüntü kullanırsanız, o olur $_POST['submit1_x'] :)

if (isset($_POST[submit1]) {
  //validate + save session data from form1
  //display form 2
} else if(isset($_POST[submit2])) {
  //validate + save session data from form2
  //display form 3
} else {
  //display first form
  //<input type="submit" name="submit1" value="Continue">
}