aynı alandan php çerezini doğru şekilde çalışmıyor

PHP'de pek iyi değilim ve şu anda bildiğim her şey, internette dolaşarak kendimi yeni öğrendim.

Şu anda bir günlüğüne kalıcı bir giriş yapmak için sayfamdaki çerezlerle çalışmaya çalışıyorum.

Temel olarak, oturum kullanıcı adının bir değeriyle bir çerez oluşturmaya kadar yönetildim. Bu değer, kullanıcı oturum açtığında ayarlanır. Böylece kullanıcı kimlik bilgilerini girer, PHP MySQL veritabanına karşı kontrol eder, eğer başarılı olursa kullanıcı adı oturum değişken olarak ayarlanır ve bu daha sonra bir çerez olarak ayarlanır.

Bu, bu php'yi çalıştırdığım ve hemen cookie'yi eklediğim gibi çalışır, kullanıcı adı görüntülenir.

Bu, bir kutucukta açılan bir oturum açma formumda yapılır (bir lightbox'a ve diğer açılır pencerelere benzer). Kurabiye ve yankı buradan doğru çalışıyor gibi görünüyor.

Ancak, oturum açma başarılı olduğunda, ana sayfayı (sitemin kök sayfası) yeniler ve her şey iyi görünür. Ancak, daha sonra cookie'yi indeks sayfasından eklemeye çalışırsam, ona erişemem.

Çerezlerin güvenlik konusunda onlara sınırlama getirdiğini biliyorum, ancak giriş sayfamın ve ana sayfamın aynı alanda nasıl olduğunu gördüğümde, bunun işe yaradığını düşündüm.

Muhtemelen yanlış yaptığım bir şey mi yoksa bir kurabiye sınırlaması mı? Kurabayı bir küçük kutu içinden değil, indeks sayfasından kendim ayarlayabilir miyim?

Kullanmakta olduğum kod örnekleri isteyen varsa, sağlanabilir.

Çok teşekkürler eds

0
Kendi çerezinizi auth rutine döndürmeye çalışmak bir kötü fikirdir (özellikle PHP'de harika değilim dediğiniz gibi) - sizi nasıl öğreneceğinizden caydırmaya çalışmıyorum Bunu yapmak için, ancak başlayarak değil, örnek olarak öğrenin. sıfırdan. Çok fazla güvenlik sorunu olacak, benim düşünemeyeceğiniz% 99.99 eminim.
katma yazar DaveRandom, kaynak
Orada çok fazla önceden yapılmış rutinler var (iyi bir başlangıç ​​için yukarıdaki bağlantıya bakın) ve eğer yapmak istediğiniz şey buysa onlara bakmaya başlamanızı öneririm (bir sonraki yorumda da devam ediyor)
katma yazar DaveRandom, kaynak
... ama bu alıştırmanın amacı olarak tanımladığınızdan, oturumları . Bunu yaparsanız, a) PHP sizin için tüm çerez işlemlerini gerçekleştirir ve b) yalnızca oturum hakkında istediğiniz kadar veri depolamanıza izin vermek için tek bir tanımlama bilgisine ihtiyaç duyarsınız (bu nedenle). Böylece izinler dizinizi saklayabilirsiniz oturumda ve her zaman veritabanını sorgulamak zorunda değilsiniz.
katma yazar DaveRandom, kaynak
Oturumun çerez ömrünü değiştirmek zorunda kalacaksınız, çünkü varsayılan olarak, kullanıcılar tarayıcıyı kapattığında imha edilen (beklenmedik şekilde) oturum çerezleridir. Ancak, bu, session_set_cookie_params()
katma yazar DaveRandom, kaynak
Teoride evet, bunu tekrar gözden geçirmiş olmama rağmen, şimdi PHP'nin oturum ömrünün tam olarak davranışının, beklediğiniz gibi bir şey olmadığını hatırlıyorum - dikkate alınması gereken pek çok faktör var ve bunu elde etmek için çok karmaşık ve çok portatif olmaya başlıyor. nasıl çalıştığını anlatıyor. Bu konuda güvenlik konusunda gerçekten endişelenmiyorsanız, muhtemelen orijinal yaklaşımınızı kullanmalısınız (serseri bilgi için üzgünüm).
katma yazar DaveRandom, kaynak
Yani, orijinal soruya geri dön - çereziniz için $ yol parametresini ayarladınız mı? Eğer yaptıysanız, bunun sorunun sebebi olabileceğinden şüpheleniyorum. Lütfen pencerede açılan komut dosyasının konumunu, formun gönderildiği komut dosyasının konumunu, ana sayfanızdaki komut dosyasının konumunu ve kuralı ayarlamak için kullandığınız kod satırını tanımlayın. Bakalım neler olup bittiğine bakabilirim.
katma yazar DaveRandom, kaynak
katma yazar DaveRandom, kaynak
Öğrenmiş olduğum diğer şeylerin çoğunun diğerlerinden kod örnekleri kullandığını itiraf etmeliyim, bu yüzden neden çerez örneklerini aramadığımı bilmiyorum. Genelde scartach ile başlamayı denerim, böylece temelde oldukça iyi bir kavrayış elde edebilirim, ama bu durumda benim için de ötesindedir. Güvenlik yalnızca çok büyük bir sorun değildir, çünkü bu sadece bir iç intranet içindir ve giriş yapmamın tek nedeni güvenlikten ziyade tercihler içindir. En azından incelemek ve çalışmak için önceden hazırlanmış rutinler bulmayı önerir misiniz? tavsiyen için teşekkürler!
katma yazar Eds, kaynak
Şu anda bir veritabanı tabanlı kullanıcı tercihlerini kontrol etmek için oturumları kullanıyorum, ancak oturumların sadece bu oturum için olduğu gibi, sürekli oturum açma için çerezlere bakıyordum. Bir seansın ömrünü değiştirebileceğinin farkında değildim. Bu yüzden oturumların paramizlerini ayarlayarak, bir kullanıcı giriş yapabilir, tarayıcısını kapattıktan sonra ertesi gün geri gelebilir ve yine de giriş yapabilir miyim? Tüm yardımlarınız için çok teşekkürler!
katma yazar Eds, kaynak
eğer ($ rem == 'yes') {$ cookievalue = $ _SESSION ['SESS_USERNAME']; setcookie ("newcookie", $ cookievalue, time() + 60); echo $ _COOKIE ["newcookie"];
katma yazar Eds, kaynak
Bir yorum kutusunda okumak zor, ama temelde, rem değişkeni oturum açma formumda oturum açma hatırlamak için bir onay kutusu, daha sonra $ cookievalue değişken benim oturum kullanıcı adıdır. Bu yüzden, kurabiyi ayarlarken cookievalue ve 60 saniyelik bir son kullanma ile bir newcookie adıyla ayarladım. Eğer cookie'leri hemen eklediysem, eğer kodun eksi satırını yankılanmak için ana sayfanın içine koyarsam, başarısız olur. ebeveyn, intranet alanında index.php'dir. Teşekkürler
katma yazar Eds, kaynak

2 cevap

Bu konuda DaveRandom tarafından yardım edildi.

Görünüşe göre çerez için kök yol olarak "/" ekledim, böylece ana sayfalar için kullanılabilir oldu.

0
katma

Hangi gezgini kullanıyorsunuz? Chrome, yerel çerezlerle varsayılan olarak çalışamaz. Komut satırı --enable-dosya-çerezleri ile etkinleştirebilirsiniz

http://code.google.com/p/chromium/issues/detail ? id = 3014

0
katma
IE9 kullanarak tasarım ve test yapıyorum, ama çoğu şey krom, firefox ve safari'de beklendiği gibi çalışıyor gibi görünüyor.
katma yazar Eds, kaynak