Sayfaları arasında oturumu bırakarak CakePHP

6 Cevap php

Ben birden fazla bölgeye ve çeşitli gelen bağlantıları olan bir uygulama var. Öncül de daha önce çalıştı app_controller de, ben bu gelen linkler patlak ve oturumda bunları olmasıdır.

Yani bu yakalar ve oturumda iki değişkenlerini ayarlar benim * app_controller * büyük bir beforeFilter() var. Viewing.region ve Search.engine, sorun yok.

Sorun oturum sayfası istekleri karşısında inatçı gibi görünmüyor ortaya çıkar. Yani, örneğin, /reviews/write (userReviews/add) kullanıcı siteye geldi kuruldu kullanılabilir bir oturum olmalıdır olacak. Gözden kayboldu gibi görünüyor olsa da!

Bu $this->params * app_controller * açıkça yakalanmış ve bir oturum değişkeni yazılı olmadıkça, diğer sayfalarda yok gibi görünmektedir.

Şimdiye kadar ben de aynı davranışı sergilemek gibi görünüyor 'kek' de oturumu ve 'php' depolanması arasındaki takas, denedim. Ben varsayılan olarak 'php' kullanın. Benim Session.timeout '120 olduğunu ', Session.checkAgent Yanlış ve Security.level olan' düşük. Bütün bunlar oturumları yaşamak için en oda izin çerçevesinde yeterince hoşgörülü vermelidir!

Ben oturumu yeniden veya yeni bir sayfa talep edilirken boşaltılır ya görünüyor neden olarak stumped biraz değilim. Ben requestAction() emin bir fark görünmüyor, aynı zamanda oturum isteği nesne, kafa karıştırıcı değil yapmak için çağırır dışarı yorumladı.

Herhangi bir yardım Ben emmek gibi, url parametreleri ile tüm çeşitli değişkenler geçmek siteyi kodlamak zorunda yok gibi, harika olurdu, ve böylece $this->Session->read('Viewing.region') açmadan önce çalışmış tüm kod!

6 Cevap

Orta veya düşük için / app / config / core.php dosyasında güvenlik ayarını ayarlamayı deneyin. Ben vardı bir oturum sorunu çözüldü.

i benim için bir çözüm ya da en azından bu işi vardı

Eğer userReviews eylem doğru eklemek kontrolör kontrolör yorum eylem yazma geçmek için denemek??

controller userReviews katiyen php etiketi bitmelidir kontrol ">" ve daha fazla yer yok

SO bu gibi Someting varsa

line
999 //more code lines
1000 ?>
1001

Lütfen oturum başarısız

Eğer bu vardı zorunda

line
999 //more code lines
1000 ?>

sorry for my bad english soo you

It would appear that unless $this->params is caught explicitly in the *app_controller* and a session variable written, it does not exist on other pages.

Bu sayfadan sayfaya veri gönderme sürece uygun davranış gibi geliyor. Eğer herhangi bir değişken devam etmek istiyorsanız, (o dernek ile devam edecek nerede) modelinde belirlenen veya bir işlevi geçti, veya açıkça oturum bileşenini kullanarak oturumda ayarlanmalıdır ya:

$this->Session->write('Viewing.region');

(Bkz: http://book.cakephp.org/view/398/Methods)

İlgili bir not olarak, ben veritabanında saklanan oturumları ile en başarı elde ettik. App / config 'den dosyasını çalıştırın ve db ayarlayın. Görmek eğer yardımcı olur.

Ayrıca, oturum iş için Kek çekirdek testler yapmak?

Might it be this problem? Essentially, cake's session resets if the user-agent changes It's a shame that I ran into this very problem you mention a few days ago and now I cannot find the link that helped me solve it.

Ayrıca: Eğer veritabanı veya düz php oturumları kullanıyorsunuz?

Ben senin koduna bakmak mümkün olmadan burada bir uzuv çıkmak için gidiyorum, ama bu "yorum" denetleyicisi (veya ne olursa olsun) kendi beforeFilter vardır () ve ebeveynin beforeFilter (aramazsa mümkün olabilir ) açıkça?

Bu beni daha önce yanmış ...

Bir CakePHP siteyi taşırken bu sorunu vardı. Benim sorunum oturum dizini yazılabilir değildi. Sen klasör app / tmp ve (oturumları dahil) tüm en alt klasörler iznine 777 olduğundan emin olun.