Bir 'formunu onaylamak' sayfası yapımında bazı php yardım

3 Cevap php

I have a main form with a lot of inputs. The forms action is set to a php file. After submitted the php-page shows up with all the inputs that the user typed into the form. The user has to re-check everything and hit an 'approve' button! The problem is, I don't know how to do this...

Sonunda bir MySQL veritabanı içine tüm verileri koymak istiyorum, ancak vurduktan sonra formu göndererek değil, onaylama!

'Onaylama' butonuna tıkladıktan sonra 'geri çağırma' php komut dosyası için bir yolu var mı?

Bu nasıl yapılır? Yani, MySQL veritabanı bilgi yazmak istemiyorum, ve sonra kullanıcı pişmanlıklar ve vurmak ETMEZ 'onaylama' ve ardından veri veritabanında zaten.

Teşekkürler!

Sadece (ben o soruyu güncelleyecektir) daha fazla girdi ihtiyacınız varsa bana bildirin

3 Cevap

Bunu yapmanın bir yolu, sadece html gizli girdilerin şeklinde onay forma sunulmuş olup, her bir değer yeniden. Bu gibi:

<form name="approval" method="post>
    <input type="hidden" name="firstname" value="<?php echo htmlspecialchars($_REQUEST['firstname']); ?>" />
    <input type="hidden" name="lastname" value="<?php echo htmlspecialchars($_REQUEST['lastname']); ?>" />
    ...
    <input type="submit" value="Approve!" />
</form>

Diğer kullanıcı oturumda değerleri depolamak ileri sürmüşlerdir. Eğer bu yolu gitmek seçerseniz, kullanıcının aynı anda birden fazla açık tarayıcı pencereleri ile çalışmak isteyenlere konusunda dikkatli olun. Onların farklı biçimleri aynı oturumunu paylaşır ve kod çok saf ise onlar formları göndermek için tercih ne sipariş bağlı olarak, bazı çapraz teller ile bitebileceğini. Bu etrafında bir yolu her bir form için benzersiz bir anahtar oluşturmak ve sayfadan sayfaya onu etrafında geçmektir. Bu tabii ki ben gizli form alanı yaklaşımı tercih neden olan dağınık alır.

Oturum yaklaşımla ilgili bir başka tuzak PHP'nin varsayılan oturum uygulama oturum verilerini saklamak için yerel dosya sistemini kullanır. Eğer gereksiz web sunucuları var bu ayırır. Sen, elbette (belki memcached göre) daha sofistike bir şey için varsayılan dosya temelli bir oturum uygulanmasını takas edebilirsiniz. Fakat yine de, bu sadece daha karmaşık olduğunu. Neden karmaşıklığı önlemek ve gizli form alanları sopa ile değil?

Iki yoldan biriyle bilgileri saklayabilirsiniz: oturum veya gizli form girişlerini kullanarak.

Using a Session Bu durumda use the session mantıklı bir sürü olur. Yani, ilk form gönderildiğinde, kullanıcı ile oturum başlatmak ve içindeki tüm değerleri kaydedin. Ardından, onay sayfası sadece verileri gösterir. Kullanıcı "onaylama" çarptığında, bu oturumda zaten bilgileri depolamak için komut tetikler. Bu istekler arasında bilgi ısrarcı için iyi bilinen bir yöntemdir.

Eğer "onaylamak" sayfasını yazmak gibi Using a Hidden Form, ayrıca görüntülenen onay veri ile birlikte gizli bir form girişleri yazabilirsiniz. Bu onay değeri gördüğünde kullanıcı bu verileri onayladığını belirtmek için yeni bir alan ekleyerek, script sadece veritabanına yazacak.

Lütfen uygulama hakkında çok fazla bilmeden, ben bu durumda oturumları kullanmayı tercih ediyorum.

Önce bir oturumda bütün bilgileri saklamak olabilir. Sonra hesaplamalar yapmak, ve kullanıcı bilgilerini onaylaması var. Veritabanına oturumdan bunları yazmak.