$ _POST Formu vs PHP benzersiz ID

0 Cevap php

İşte fikir: Kullanıcı o bir "öğesi oluşturabilirsiniz bir sayfa vurur Bu sayfada o dosyaları upload ve before göndererek formu (Flaş / Javascript desteği ile kullanıcılar için Flash tarafından desteklenmektedir ve saf PHP + tarafından desteklenmektedir olabilir. 5 dosya unputs + Flaş / Javascript olmadan kullanıcılar) için iframe. Aynı sayfada kalmak gerekiyor.

When user hits a page I'm using this snippet to create long unique ID:
$random_id = hash('SHA512', (time() * microtime()) . mt_rand(1, 1000) . mt_rand(1, 1000) . uniqid((time() * microtime())));. This variable is stored in session. Anyway, I need to recreate it every time user hits this page (because he may cancel adding item this time and decide to add it few minutes later). I store it also in hidden input in frontend (to let Flash/HTML form send this variable with $_POST array)

Kullanıcı Flash / Javascript ile bir dosya yüklediği zaman YA o ben, dosyalarını doğrulamak yeniden adlandırma ve kulüpler PHP / iframe kullanarak bir dosyayı gönderdiğinde geçici bir adla geçici bir dizine taşıyarak ($randon_id).

Form gönderildiğinde I $random_id yüklenen dosyaları bulmak ve dosyaları masaya doğru öğe id eklemek için kullanıyorum.

Şimdi oldukça büyük bir sorunla karşı karşıya ediyorum. Os Elbette önuç doğrulama kullanabilirsiniz (ama o "oyuncak" bir tür, sadece kullanılabilirliğini artırmak için değil) bu yüzden PHP ile formu doğrulamak gerekir. Bazen kullanıcı hatalı veri (yanlış formatı, vb) temin olur. Kullanıcı hits düğmesi, sayfaların yeniden gönderdiğinizde. Ve şimdi benim problem ile gelir:

Tazelenmiş davranıyor gibi sayfa $random_id değişiklikleri yeniden zaman. Yani, HTML biçiminde gizli bir giriş (bir kez daha, yanı sıra Flash form ve HTML formu tarafından kullanılır). Bunu önlemek için nasıl?

Netleştirmek için: No, I Flaş / Javascript olmadan kullanıcılar için web siteme engellemek istemiyorum. Erişilebilirliği benim için, bu web sitesi (ve JavaScript / Flash, vs olmadan) herkes için çalışması gereken bir anahtardır.

PS. I'mg KohanaPHP çerçevesini kullanarak.

Regards,
Top

0 Cevap