Bir sorun var. İnsanların benim sitede bir sayfayı yenilemek mümkün olacağını istemiyorum. Ben bunu nasıl yapabilirim?
Yenile bir tarayıcı yan çözümdür. Sunucu tarafında onu kısıtlamak olamaz.
Ne yapabilirim aslında iki kez herhangi bir sayfasını ziyaret engellemek için PHP'nin OTURUMU kullanmak için aslında.
<?php
session_start();
if(!isset($_SESSION['disablethispage'])){
$_SESSION['disablethispage'] = true;
// serving the page first time
}else{
// visited before or page was refreshed
}
Ancak kullanıcı hala o / o web siteniz için oturum tanımlama kaldırır eğer aynı sayfaya geri gelmek mümkün değildir.
Çift ilanıyla ilgili söz ediyorsanız, size POST-REDIRECT-GET Çözüm bakmak isteyebilirsiniz. Bkz: http://en.wikipedia.org/wiki/Post/Redirect/Get
Bunun gibi, onlar o sayfayı ziyaret son kez saklamak için deneyin:
<?php
session_start();
if(isset($_SESSION['last_visit']) && time() - $_SESSION['last_visit'] < 10) {
die('Wait ten seconds before you reload this page');
}else{
$_SESSION['last_visit'] = time();
}
?>
Bu on saniye başına bir sayfa yükler kısıtlamak olacaktır.
Bu yöntem, kullanıcı tanımlama boş olmadığını bağlıdır, böylece daha sıkı bir çözüme ihtiyacınız varsa IP adresini kontrol edin ve bir veritabanında o kaydetmek zorunda, ama o daha fazla sunucu kaynağı gerektirir.
Cant. İnsanların sayfayı yenilemek mümkün istemiyorum neden açıklamak, belki biz daha iyi bir çözüm açıklayabilir.
Ferahlatıcı sonrası formları kısıtlayan için güzel bir çözüm, bir formu gönderdiğinizde tarayıcı yönlendirmek. Bu gibi çalışır:
Sonuç olarak, bir kullanıcı pageC.php yeniler, daha sonra formu yeniden gönderilen olmasıdır. Kullanıcı tekrar öne ardından geri düğmesine vurur ve eğer, tarayıcı pageC.php yükler ve böylece formu sonra da ya teslim edilmez.