Bir PHP sayfası verileri kalıcı kolay yolu

8 Cevap php

Ben (PHP geliştirilmektedir) geliştirmeye çalışıyorum bir web uygulaması bir kullanıcı mesaj kullanıcı çok uzunluk formu doldurmak zorundadır hizmet için herhangi bir istek.

Kullanıcı formu doldurur ve onu gönderdikten sonra başka bir sayfa (onay sayfası) kullanıcı tarafından doldurulacak bütün değerleri göstermek olduğu yüklenir. Ben bu aşamada veriler henüz MySQL kaydedilmez işaret gerekir. Şimdi bu sayfadaki kullanıcı hizmet isteği kaydetmek veya geri gidebilirsiniz.

Benim sorun burada başlıyor. Ne zaman kullanıcı goes back. Bütün data edilir lost doldurulur. MEZUNLARI Kullanıcı Tarayıcılar Geri düğmesi yerine onay sayfasında sağlanan geri düğmesini kullanma eğiliminde.

Nasıl kullanıcı verilerine değişiklik yapmak / düzenlemek ve tekrar değiştirilen veri gönderebilirsiniz böylece kullanıcı tarafından doldurulacak veri devam edilir olabilir.

8 Cevap

u Kodunu kullanabilirsiniz:

`session_cache_limiter('must-revalidate');`

Bu benim için iyi çalışıyor. ) Bu hat (session_start önce gitmek gerektiğini unutmayın. Ben oturumları ile birlikte tüm oturum değişkenleri ile uğraşmak zorunda değilsiniz, çünkü Neyse, bu benim için yararlıdır.

OR put the form data into a session like so: Code:

$_SESSION['myFormData'] = $_POST;

Henüz DB persisting değilseniz, yapabileceğiniz tek şey, potansiyel kullanıcı oturumunda değerleri saklamak olduğunu. Yani, kullanıcı ileri gittiğinde, oturumuna bilgilerini kaydetmek ve sonra geri vurduğunuzda, oturumdan bilgi yüklemek. Onlar DAT nihayet emin olduğunuzda o zaman DB gönderebilirsiniz.

Muhtemelen en kolay yolu oturumda veri depolamak için olacaktır. Veri giriş formu veri olup olmadığını görmek için oturumu kontrol ve eğer, bu verilerle formu ön doldurmak var.

Bu işlemi tamamlamak ve verileri DB saklanır sonra, oturumu bu değerleri temizleyin.

Çerezleri ve JavaScript'i olabilir kullanarak:

  1. form gönderildiğinde bir tanımlama tüm değerleri saklamak
  2. çerez bulunan verilerle formu çerez kontrol ve doldurmak için onload işleyici kullanın

Çerezler veya JavaScript olmadan kullanıcıların sayfayı kullanmak için izin veren bir şekilde kod unutmayın; onlar sadece formu onlar için doldurulan var alamadım.

Her bir kez birisi iyi bir çözüm ile geliyor ise. Bu o zaman.

HTML 5 çevrimdışı depolama IE8 yana tüm büyük tarayıcılarda artık destekleniyor. Unutmayın ki, ben bir kez ve tüm formu durumunu mücadele böylece tüm betik dilleri ve hatta HTML sayfaları formu devlet tutabilirsiniz karar verdi. No cookies gerekli, ihtiyaç duyulan bellek hogging oturumları, hiçbir sunucu tarafı programlama gerekli ve ne olursa olsun URL, geri gelmek istiyorum ve kaldığınız yerden formu olduğu yerde kısmen gitmek formunu doldurabilirsiniz. Sadece bazı küçük komut dosyası açılır ve bitirdiniz.

İşte ücretsiz -> http://www.jasonsebring.com/dumbFormState

Bana ne düşündüğünüzü bildirin.

Kullan sessions. Bunlar, kullanımı çok kolaydır.

Lütfen onay sayfada tüm değerleri ve önceki sayfaya onları yayınlayacağız bir Back Gönder düğmesini içeren gizli alanları ile bir form koyabilirsiniz. Ayrıca veritabanına değerleri yazacak bir url için yayınlayacağız bu form üzerinde ikinci Gönder düğmesini olabilir.

Ben şartlardan birini kullanıcı bir sonraki / önceki gitmek ve hatta ileri ve geri tamamlanmış olmuştu adımlara atlamak gerekir ki bir kaç yıl önce bir sihirbaz yaptım, böylece kullanıcı adım 4 tamamlanmış ve 2 adımları atladı olsaydı Geri önceki 2 kere tıklayarak o / o "sihirbaz Progressor" ve adım 4'e atlama adım 4 tıklayın gerekir. Bunun için kullanılan Serializing objects - objects in sessions ve bir veritabanında "sihirbaz nesne" saklı , oldukça iyi IIRC çalıştı.

EDIT: Ahh, evet. Kullanıcıların posta adresi için bir yokmuş başka gereksinimleri kullanıcı sihirbazı terk dönmek ve tamamlamak sihirbaz birkaç hafta sonra ya da devam etmek gerekir ki oldu.