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

  • DJPixcell

    DJPixcell

    20 NİSAN 2007
  • Google Analytics

    Google Analy

    25 ŞUBAT 2008
  • Incredible Tutorials

    Incredible T

    27 EKİM 2006