Как я могу узнать, был ли доступ к php-странице через http или https?
Если запрос был отправлен с помощью HTTPS, у вас будет дополнительный параметр в супергелбале $ _SERVER – $ _SERVER ['HTTPS']. Вы можете проверить, установлено ли оно или нет.
if( isset($_SERVER['HTTPS'] ) ) {
Если ваш запрос отправлен HTTPS, у вас будет дополнительная переменная сервера с именем «HTTPS»,
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') { //HTTPS }
$protocol = strtolower(substr($_SERVER["SERVER_PROTOCOL"],0,5))=='https'?'https':'http'; $protocol = isset($_SERVER["HTTPS"]) ? 'https' : 'http';
Они должны работать
Это может усложниться в зависимости от того, где PHP находится в вашей среде, так как ваш вопрос довольно широк. Это может зависеть от того, есть ли балансировка нагрузки и как она настроена. Вот несколько связанных вопросов:
$_SERVER['HTTPS']
Это будет содержать «непустое» значение, если запрос был отправлен через HTTPS
Переменные сервера PHP
Вы должны сделать это, проверив значение $_SERVER['HTTPS']
(его следует устанавливать только при использовании https).
См. http://php.net/manual/en/reserved.variables.server.php .