2013-05-06 15 views
5

Açılış sayfası vurulduğunda kullanıcılara bir UUID atayan bir CodeIgniter sitem var. Açılış sayfasının yeniden yüklenmesi yeni bir UUID atayacaktır, ancak formlar üzerinden ilerlemeye başladığınızda UUID'niz aynı kalır. Ancak bir şey oluyor, kullanıcının geri düğmesini ne zaman kullandığını tam olarak anlayamıyorum ve davranış, hangi URL ile geldiğine bağlı olarak farklı mı?URL, GET parametreleri içeriyor mu yoksa eğik çizgi mi içeriyorsa, geri düğmesi sayfayı yenilemiyor mu?

Durum 1: domain.com/somehash?key=value VEYA domain.com/somehash/

Eğer bir GET parametresini içeren yukarıdaki url ile ulaşırlarsa, (sizin uuid içerir) ilk formu göndermek ve geri düğmesine basın, açılış sayfasına dönmek fakat UUID'niz değişmez.

Durum 2: İlk formu gönderin (sizin uuid içerir) ve geri düğmesine basarsanız hiçbir GET parametrelerle domain.com/somehash

, açılış sayfasına dönün ve YENİ bir uuid alırlar.

Bunu en son Chrome ve Firefox'ta test ettim, uyguladıkları bir çeşit önbelleğe alma stratejisiyle bağlantılı mı? İdeal olarak geri çekilmek sayfayı yenilemez.

DÜZENLEME: oturumları dışarı

ayrıntılı düzenleme vardır bu yüzden, bu araç için çerezleri kullanamaz dikkat etmelidir: Sadece bir ters eğik çizgi ekleyerek domain.com/ gidiyor, geri düğmesini tıklama zaman serinletici UUID'sini durur. CodeIgniter routes.php veya .htaccess ile ilgili olabilir?

İlgili .htaccess girişleri:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?/$1 [L] 

routes.php:

$route['default_controller'] = "home"; 
$route['404_override'] = ''; 

$route['(:any)'] = 'home/index/$1'; 
+0

bir oturum kullanın() – Vector

+0

UUID, php veya JS'yi nerede ataıyorsunuz? – Justin

+0

PHP, Denetleyicide CI'de Görüntüle'ye geçmeden önce oluşturulur. – xref

cevap

1

Bu başlıklara belirlemeyi deneyin ve bu her iki senaryoda da tutarlı bir davranış yaparsa bakın:

$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate"); 
$this->output->set_header("Cache-Control: post-check=0, pre-check=0"); 
$this->output->set_header("Pragma: no-cache"); 
$this->output->set_header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); 

Daha fazla bilgi: http://ellislab.com/codeigniter/user-guide/libraries/output.html

+0

Hiçbir değişiklik, bir GET parametresine veya arkaya eğik çizgisine sahip olmak, Geriye vururken hala bir yenilemeyi zorlamaz. Bir ters eğik çizgi/GET isabet olmadan geri yenileme zorlar. – xref

+0

Garip. Sorunuzu, UUID'yi URL'ye eklemek için kullandığınız php ile günceller misiniz? – Justin

+0

aslında UUID sadece gizli bir form alanıdır, açılış sayfasına girdiğinizde gömülüdür, URL'de görünmez. – xref

İlgili konular