SORU
23 Temmuz 2009, PERŞEMBE


Sen'yeniden kullanmadan HTTPS $_SERVER bulmak için nasıl['']HTTPS

Eğer HTTPS ile güvenli bağlantı $_SERVER['HTTPS'] kontrol etmeniz gerekir diyor birçok dersler online gördüm. Benim sorunum ben kullanmak bazı sunucular, $_SERVER['HTTPS'] bir hata sonucu bu tanımsız bir değişken olmasıdır. Her zaman tanımlanmalıdır kontrol edebileceğim başka bir değişken var mı?

Sadece temiz olması için, şu anda bu kod eğer bir HTTPS bağlantısı varsa gidermek için kullanıyorum:

if(isset($_SERVER['HTTPS'])) {
    if ($_SERVER['HTTPS'] == "on") {
        $secure_connection = true;
    }
}

CEVAP
21 Mayıs 2010, Cuma


Bu her zaman $_SERVER['HTTPS'] tanımsız olduğunda bile çalışması gerekir:

function isSecure() {
  return
    (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
    || $_SERVER['SERVER_PORT'] == 443;
}

Kod IIS ile uyumludur.

PHP.net documentation and user comments :

1) boş olmayan bir değer için eğer betik HTTPS protokolü ile sorgulanan olsaydı Ayarlayın.

2) IIS ile ISAPI kullanırken, değer "" eğer isteğin HTTPS protokolü ile yapıldı. kapalı olacağını Unutmayın (Aynı davranış Hızlı bir CGI uygulaması olarak çalışan IIS7 PHP için bildirilmiştir).

Ayrıca, Apache 1.x sunucusu (ve kırık yüklemeleri) ise güvenli bağlanma bile $_SERVER['HTTPS'] tanımlı olmayabilir. Garanti olmasa da, bağlantı noktası 443 bağlantıları convention, secure sockets, dolayısıyla ek bağlantı noktası çeki kullanma olasılığı vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HER0R

    HER0R

    16 Aralık 2007
  • sinumatic

    sinumatic

    19 Aralık 2006
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008