Autor | Zpráva | ||
---|---|---|---|
xlifer Profil |
Chci použít toto řešení, ale asi nebude fungovat vždy, resp. 100% spolehlivě?
$protocol = isset($_SERVER['HTTPS']) ? "https://" : "http://"; Toto řešení by mělo být více "vychytané", ale nejsem si jistý $protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5)) == "https" ? "https" : "http"; $protocol = isset($_SERVER["HTTPS"]) ? "https://" : "http://"; Existuje vůbec nějaký "100%" způsob, jak zachytit spolehlivě protokol webu? Pročítal jsem i nějaké zahraniční fóra, odkud pochází výše uvedené řešení, ale u všech způsobů se řeší, že to není 100%, tak jsem s toho jelen... Poradíte prosím jak z toho ven? |
||
Alphard Profil |
#2 · Zasláno: 26. 7. 2016, 00:00:21
Vlastní zkušenosti nemám, v rychlosti jsem našel ještě How to find out if you're using HTTPS without $_SERVER['HTTPS'].
|
||
xlifer Profil |
#3 · Zasláno: 27. 7. 2016, 12:12:57
Alphard:
Díky za tip, toto vlákno jsem taky prohlížel... těch způsobů je jak jsem psal opravdu hodně, ale vždy se tam objevuje tvrzení, že to nefunguje spolehlivě a vždy. |
||
TomášK Profil |
#4 · Zasláno: 27. 7. 2016, 13:29:31
Spolehlivě a vždy to nedokážeš, web-server může být nastavený tak, že to zatají, resp. nebudou nastavené proměnné, ze kterých jde poznat protokol. S tím na straně php nic neuděláš. Pokud je představený nějaký load-balancer, který řeší HTTPS a pak to HTTP distribuuje na další web-servery, může se snadno stát, že se informace o původním protokolu po cestě ztratí. Jsou to specifické případy, které zřejmě nemusíš řešit, ale stát se můžou a 100 % pak změní na 99.9 %.
|
||
Časová prodleva: 8 let
|
0