PHP tanımlama sorunu, diğer tarayıcı Firefox'ta değil çalışıyor

5 Cevap php

Ben php çerez ayarı ile ilgili bir sorun var. Ben çok php ile deneyimli, belki çok aptalca bir sorun değilim söylemek ettik.

Ben fotoğraf zaten olarak görmek için bir cookie kontrol gereken bir ajax derecelendirme sistemi var.

Cookie için ajax çekle denilen sayfası, ona oy veriyorsun fotoğrafın id ekleyin ve bu işlevi çağırır:

   setcookie("Name", $cookie, time()+(60*24*365), "/",  $_SERVER['HTTP_HOST'], 0);

Fotoğrafı görüntülemek sayfası da çerez aramak

   $cookie = $_COOKIE['Name'];

ve zaten oy verdiniz olmadığını görmek için kontrol edin.

Bir sorun ajax sayfa fotoğrafı görüntülemek sayfanın farklı bir dizinde olduğu gerçeği olabilir.

Fotoğraf kök dizininde görüntülemek sayfasında, oylarını page / ajax / vote.php olduğunu

Ben IP'leri kontrol, ama ben çerezleri kontrol etmek gerekir biliyorum önce oylama sistemi çalışır.

Bu herhangi bir sorun olmadan Firefox'ta çalışır, ama IE ve Safari test başladım zaman onlar çerez görmüyorum görünüyor.

Ben IECookieViewer ile kontrol ettik ve ben bir oy zaman çerez tamam oluşturulur, ama geri sayfasına gittiğinizde, bu çerez bulmuyorum sayfa gibi görünüyor. Başka oylarını Ayrıca eğer çerez bir yenisi ile değiştirilir.

Kötü İngilizce için özür dilerim, ben sorun anlaşılabilir umut

P.S. Sorunu ile ilgili olabilecek bir şey unuttu işaret. Sayfa bir iframe içinde.

5 Cevap

Diğer tarayıcılarda çerez ayarlarını kontrol edin ve çıkışta tüm veya boş engellemek için set eğer.

Çerezleri bir tarayıcıda çalışır, ancak başka ise, diğer tarayıcı ilk etapta çerezleri ayarlamak icar emin olmak gerekir.

Eğer çerez oluşturmak gibi Bazen bakacağız, ama sonra kaybolur veya her sayfayı yeniden silinir.

Cookies from an iframe

Ayrıca mümkün olduğunu size tarayıcıları bir üçüncü taraf çerez olarak görmek ve açıkça için tarayıcı tercihlerinde belirtilen sürece reddetmek olabilir, bir iframe çerezleri ayarlaması çünkü allow third-party cookies.

Bu durumda size çerezleri gelen ayarlamak için çalışıyoruz yerden sayfalarında kompakt bir gizlilik politikası (veya a compact P3P header) gerekir.

PHP için, çerez ayarı sayfası için başlık olarak bu eklemek istiyorum:

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

Ben bir yerel ağ sunucusu (192.168.0.102 veya böyle bir şey) ile çalışıyordu eğer çerezleri IE değil firefox tarafından ayarlanmış ancak olacağını geçmişte benzer bir sorun yaşadım ama ben kamu sunucuya her yerinde taşıdık zaman Bir etki alanı adı iyi çalıştı.

IE kurabiye ve alan adları hakkında garip kuralları çeşit olabilir. Bu durumda da yardımcı olur emin değilim.

Eğer aynı URL çerez ayarı mı? Eğer kullanıyorsanız başka bunu ayarlanmış olabilir iken $_SERVER['HTTP_HOST'] sonra bir tarayıcı http://example.com için ayarlanmış olabilir http://www.example.com. Eğer alternatif sürümünü ziyaret ederseniz çerez ayarlanır olmayacaktır.

Alıntı için the PHP docs:

Cookie mevcut olan etki. Example.com tüm alt etki alanları üzerinde çerez kullanılabilir yapmak için o zaman bunu bırakacağım '. Example.com'. . Gerekli ama daha tarayıcılar ile uyumlu hale getirir değil. Www.example.com ayarlamadan www alt etki alanı çerez sadece sağlayacaktır.

Yani ayarlamaya çalışın '. Yoursite.com' etki alanı olarak.

Denemek için diğer şeyler:

  • Sonra her şey $ sona erecek ve o inşaat görmek atlama deneyin - $ isim setcookie işlevi sadece gerekli bir parametredir.
  • Uzun bir yol geleceğe değeri sona bir $ ayarlamayı deneyin. Belki bir zaman soruna neden bilgisayarınıza veya sunucudaki bir şey var mı?
  • Çerez kesinlikle ayarlanır ediliyor eğer tarayıcınızda kontrol ettiniz mi? Her çerez seti listelemek için bir yol olmalıdır. Çerez ayarlayın ve tarayıcınızı kontrol edin.

IFRAME çerezleriniz kaybolur ediliyor nedenidir. Sizin PHP oturum kimliği tanımlama da kaybolmuş ve yeni bir oturum bu nedenle önceki devletin izini kaybetmeden, her istek üzerine oluşturulur.

P3P başlıkları yardımcı olsa da, istemci tarayıcılar hala üçüncü parti çerezleri engellemek üzere ayarlanabilir ve P3P bu geçersiz kılamaz. Security Now! podcast ün Steve Gibson defalarca izleme tanımlama gibi şeyler duruyor çünkü üçüncü parti çerezleri engelliyor etkinleştirmek için önerir.

Yapmanız gereken form tabanlı bir oturum kimliği geçmek olduğunu. PHP session_id() değeri ile sorgu dizesi veya gizli giriş form değişken birinde "PHPSESSID" form değişken sağlayarak bu kolaylaştırır. Eğer taşınabilir olmasını istiyorsanız ya da, web sunucusu örtmek ini_get('session.name') değerini kontrol "PHPSESSID" farklı bir özel oturum değişken adı ile yapılandırılmıştır.

problema en cookies para ie SOLUCIONADO: problem at cookies for ie SOLVED:

BASİT es, Cuando declaren la çerez y escriben en el EXPIRE: time () +60 * 60 * 24 * 30, los 60'ların por CAMBIEN 120 asi: time () +120 * 120 * 24 * 30. Bir MTBE bana funcion'o a la perfeccion.

Basit, zaman aşımına "zaman (* 30) +60 * 60 * 24" de, çerez ilan zaman, yani 120 tarafından los 60 değişim: time () +120 * 120 * 24 * 30. Bu benim için çalıştı.