php: sayfaları aracılığıyla Büyük veri dizileri geçmek

4 Cevap php

Ben başka bir sayfaya Büyük veri dizileri geçmesi gereken bir sorunu çözmek için çalışıyorum, bu benim senaryo:

Kullanıcı girişi bir form içinde onun / gmail giriş bilgileri, ben sonra ben kimlik doğrulaması ve tüm kişileri alıp bir ajax sayfasına bu bilgileri göndermek, giriş geçersiz tekrar deneyebilirsiniz ancak bu doğrulanmış eğer ben onları göndermek gerekir Ben tüm e-postaları ayrıştırmak ve sitede herhangi kullanıcıları uyup uymadığını kontrol sonraki sayfa.

Yöntem 1 (işe yaramadı):

Oturumları için bir boyut sınırı var gibi dizi küçük ise bir oturumda içindeki tüm verileri, bu sadece iş saklayın.

Yöntem 2 (işe yaramadı):

Add an hidden input with javascript and then submit the form (also with javascript). As it turns out you can't submit the form and return true (change page) unless the user triggers the event.

Peki nasıl gitmeli, ben sadece ajax doğrulamasını atlamak gerektiğini ve işe yaramadı eğer önceki sayfaya geri göndermek ya da benim sorunun bazı geçici çözüm var mı?

4 Cevap

MySQL sizin için kullanılabilir değilse neden, bir veritabanı MySQL veya SQLite veri depolamak değil. Orada, kullanıcıların oturum kimliği ile bağlantılı dizinizin tefrika versiyonunu saklamak istiyorsunuz.

Ben düşünüyorum MySQL tablo:

id | session_id | veri

http://php.net/manual/en/function.serialize.php diziyi serialize nasıl.

Eğer bir sonraki sayfada tekrar verileri almak mümkün ise, bunun yerine sayfaları arasında geçirmeden o yapabilirdi.

JQuery kullanarak bu yana bir kullanıcı tıklama olmadan doğrudan veya formda gizli unsuru olarak veri gönderebilirsiniz. Yapabilirsiniz AJAX ikinci sunulması olduğunu varsayarsak:

 $("#mydiv").load("secondpage.php", {email1: 'blah'}, function(){
   alert("Submitted everything nicely");
 });

Depending on your webserver, but session variables do not typically have a size restriction. Apache+PHP you could handle extremely large sizes, instead you should care about http://ca.php.net/manual/en/ini.core.php#ini.memory-limit. In addition, PHP.ini carries session.size variable that you could adjust. I am not sure how it did not work for you; you used $_SESSION, right?

Son olarak, daha iyi bir ısrarcı I Danga's memcached. Bu yaygın olarak kullanılan, çok kararlı ve her türlü dil lezzet sarıcılarıdır vardır kullanarak öneriyoruz uçucu depolama (Veritabanı daha hızlı) henüz hızlı yapmak için.