Geri düğmesi yeniden gönderme formu veri ($ _POST)

5 Cevap php

Benim sorunum geri düğmesi Önceki sayfa bir form tarafından oluşturulduğu "Sayfa doldu" gibi bir şey söylemek için tarayıcı neden olmasıdır.

Örnek:

  • page1: form submitted with search criterias ($_POST request, form points to page2)
  • page2: Receives $_POST request and show result (list of user with links, points to page3)
  • page3: Show kullanıcı profili

Ziyaretçi tarayıcıda geri düğmesine tıkladığında Şimdi "Sayfa doldu" gibi bir şey göstereceğim.

Bunun yerine önceki sayfa (userlistdeyse ile page2), hiçbir uyarı ile gösterilir olmalıdır

Nasıl bu davranışa geçici almak için stratejiler nelerdir?

5 Cevap

Eğer arama parametreleri ile bir göndererek iseniz, bazı değişiklik değil, get bazı veriler için çalışıyoruz.

Yani, HTTP GET yöntemi kullanmalısınız ve POST değil: verileri değiştirmek / oluşturmak niyetinde POST kullanılmalıdır, ve bazı verileri almak niyetinde olduğunda kullanılmalıdır GET.


Or, if you have some create/modify operation that has to be done :

  • The form first POSTs to a first page
    • Bu sayfa bazı işlemleri yapar (like writing something to a database)
    • Ve sonra bir Location HTTP başlığını kullanarak, başka bir sayfaya yönlendirir.
  • O URL alınan parametrelerden getirilen verileri görüntüleyen bir GET istekleri kullanarak tarayıcı tarafından sorgularının, bu son sayfası.

Bu konuda wikipedia Post/Redirect/Get sayfasını bakın.

Sonra gelen sayfaya işaret, size POSTed komut bir Location başlığı gönder.

Arama için POST kullanmayın. O şey değiştirmez çünkü ara güvenle GET ile yapılabilir.

Bu PHP ve IE8 için geçerlidir.

Eğer özel için cacheingini ayarlamanız gerekir, ancak 4 cacheing başlıklarını kaldırmak gerekir ve bu sadece PHP 5.3 ile yapılabilir değil. PHP 5.2 sadece Zend Framework SetHeader () yöntemini kullanarak, boş değerlere 4 başlıkları ayarlayabilirsiniz. Nedense değerleri boşaltmak için 4 başlık değerlerini ayarlamak için IE8 üzerinde yeterli değildir. İşte PHP 5.3 için kod:

    header_remove("Expires");
    header_remove("Cache-Control");
    header_remove("Pragma");
    header_remove("Last-Modified");