Bir web sitesi için birçok sayfadan fazla bilgi izleme

4 Cevap php

Sizi yanıtlayan için mükemmel belirsiz sorunun bir tür var. Ben bunu çok farklı sayfalara oluşuyordu nerede doldurmak için benim kullanıcı için bir form yaşadım bir noktaya genelinde birçok kez geldim. Şimdiye kadar, ben bir oturumda kaydederek oldum, ama ben bir oturum sona olabilir beri bu uygulama hakkında biraz endişeliyim ve bunu yapmanın oldukça uçucu bir şekilde görünüyor.

Ben her sayfanın sonunda kaydetmek SQL geçici formlar için bir tabloya sahip, örneğin, görebiliyordu. Ben sonraki sayfaya şimdiye kadar alınan tüm verileri gönderme görebiliyordu. Bu doğrultuda şeyler. Siz bunu nasıl yaparsınız? Bu durumlar için iyi bir uygulama nedir?

4 Cevap

Evet, kesinlikle veritabanında ara verileri kaydetmek ve daha sonra kullanıcı nihai sonucu gönderdiğinde kayıt bitmiş olduğunu göstermek için bazı bit çevirebilirsiniz. Eğer veri toplama ayrýlýyoruz bağlı olarak, her sayfa (bir araya bağlayan bir anahtar ile) farklı bir tablodaki bir satır oluşturarak olabilir.

Ayrıca, tek bir sütunda XML olarak daha serbest form şekilde verileri kaydetme düşünebilirsiniz. Bu basit bir veri şema karmaşık veri yapılarını korumak sağlayacak, ancak (veritabanı xml sütun türlerini destekler sürece en modern enterprisey veritabanları hangi yapmak) zor veri sorgulama yapacaktır.

Veritabanında geçici veri depolamak için bir diğer avantajı eğer isterse kullanıcı daha sonra geri dönebilirsiniz olmasıdır. Onun iş öğesi bir bağlantı ile başladığında sadece kullanıcıya bir e-posta gönderin. Tabii ki, emin bir başkası onun iş öğesi dönmez yapmak için bunun üstüne ne olursa olsun güvenlik katmanları eklemek gerekebilir.

DB geçici verileri saklamak da kullanıcı başka bir sayfadan diğerine etrafında atlamak ve geçmiş sayfaları tekrar sağlar.

Gizli alanlar da iyi bir yaklaşım, ancak kullanıcı daha sonra geri dönmek için izin vermez.

Ben, oturumda büyük veri yapılarını saklamak önleyeceğini kullanıcı açıkça oturumunu geçersiz etmez ve eski oturumları temizlemek için iyi bir mekanizma yoksa, bu dolmuş oturumlar uzun bir süre için yaklaşık yapışabilir yana eğer.

Sonunda, gerçekten özel iş ihtiyaçlarına bağlıdır, ama umarım bu size düşünmek için bir şey verir.

Bir kullanıcı formları tamamlamak değildir eğer ne yapardın: Ben bu aşamada daha fazla veya daha az geçici olarak oturumda veri tutmak sopa ile olur? Sen tamamlanmamış verileri düzenli bütün uygulama daha karmaşık yapmak için SQL tablosu kontrol etmesi gerekir.

Bu arada, yani güvenlik dolan oturumu için bir neden yoktur. Oturum sona erdiğinde ve kendinizi tanımlayabilirsiniz.

Neden sadece gizli parametrelerinde boyunca şeyler geçemiyor?

Ahh, iyi bir soru.

Ben (bu doğrusal ise) harika bir yoldur bu işlemek için bulduk. Aşağıdaki (örneğin MVC) bir PHP sayfası içine farklı içerik (sayfa) dahil olmadığını özellikle iyi çalışır. Eğer URL'ye URL'den gitmek gerekiyorsa Ancak, bir yönlendirme karşısında POST edemez, çünkü zor olabilir (iyi, bunu yapabilirsiniz, ama hiçbir tarayıcılar destek).

Siz detayları doldurabilirsiniz.

$data = array();
//or//
$data = unserialize(base64_decode($_POST['data']));


// add keys to data


// serialize
$data = base64_encode(serialize($data));


<input type="hidden" name="data" value="<?= htmlspecialchars($data, ENT_QUOTES); ?>" />