Целью этой статьи является проверка того, вызывается ли страница с 'HTTPS' или 'HTTP'. Для этого мы можем использовать следующие два подхода.
Подход 1: Проверьте, использует ли соединение SSL, и если значение $_SERVER['HTTPS'] установлено, то мы можем сказать, что соединение защищено и вызывается с 'HTTPS'. Если значение пустое, то есть установлено значение '0' или 'off', то можно сказать, что соединение не защищено и страница вызывается с 'HTTP'.
$_SERVER - это массив, который содержит всю информацию о заголовках запроса, путях и расположении скриптов. Он будет иметь "непустое" значение, если запрос был отправлен через HTTPS, и пустое или "0", если запрос был отправлен через HTTP.
Синтаксис:
if (isset($_SERVER['HTTPS']))
{
// страница вызвана из https
// Соединение безопасно
}
else
{
// страница вызвана из http
// Соединение не безопасно
}
Подход 2: Проблема с предыдущим подходом заключается в том, что на некоторых серверах значение $_SERVER['HTTPS'] не определено, и это может привести к сообщению об ошибке при проверке того, что страница вызывается с 'HTTPS' или с 'HTTP'. Чтобы решить эту проблему, мы должны также проверить номер порта сервера, если номер используемого порта 443, то соединение осуществляется через 'HTTPS'.
Синтаксис:
if ((isset($_SERVER['HTTPS']) &&
(($_SERVER['HTTPS'] == 'on')))
|| (isset($_SERVER['HTTPS']) &&
$_SERVER['SERVER_PORT'] == 443))
{
// страница вызвана из https
}
else
{
// страница вызвана из http
}