PHP etki için setcookie () ama değil subdomains

3 Cevap php

Alt etki üzerine not okunabilir bir çerez ayarlamak için herhangi bir yolu var mı? Diğer bir deyişle, domain.com mevcut tanımlama, ancak not www.domain.com ya da xyz.domain.com.

//this is what i'm "intending"...
setcookie($name,$value,$expires,'/','domain.com');
//however, this is how it behaves:
setcookie($name,$value,$expires,'/','.domain.com');

Mantık: Ben bir alt etki alanı üzerinde bir statik CDN kuruyorum ve kullanıcı oturum çerezleri vs her görüntü, css dosyası, js dosyası için ileri ve geri gidiyor istemiyorum

... Benim site için www.domain.com kullanarak geri düşmek gerekiyor? Herhangi bir geçici çözüm var mı?

3 Cevap

Görünüşe göre, maç olacak "domain.com" çerez "*. Domain.com" sahip beklenen davranıştır.

Örneğin: PERSISTENT CLIENT STATE HTTP COOKIES devlet (some emphasis mine):

domain=DOMAIN_NAME

When searching the cookie list for valid cookies, a comparison of the domain attributes of the cookie is made with the Internet domain name of the host from which the URL will be fetched. ...
"Tail matching" means that domain attribute is matched against the tail of the fully qualified domain name of the host. A domain attribute of "acme.com" would match host names "anvil.acme.com" as well as "shipping.crate.acme.com".

Only hosts within the specified domain can set a cookie for a domain and domains must have at least two (2) or three (3) periods in them to prevent domains of the form: ".com", ".edu", and "va.us". Any domain that fails within one of the seven special top level domains listed below only require two periods. Any other domain requires at least three. The seven special top level domains are: "COM", "EDU", "NET", "ORG", "GOV", "MIL", and "INT".

Yani, gerekecek ya:

  • Siteniz için "www.domain.com" kullanımı
  • or use a totally different domain name for your static content (like ".anotherdomain.com")
    • Örneğin, bu stackoverflow yapılır nedir: Statik içerik sstatic.net arası servis edilir

Bu (bu da dahil olmak üzere) epeyce siteleri CDN olarak kullanmak için özel bir etki alanı kayıt nedeni de budur.

Çerez alanı tail matched alan adı karşı olduğu gibi mümkün değildir. Www ile gitmek zorunda kalacak.