El propósito de este artículo es verificar si la página se llama desde ‘HTTPS’ o ‘HTTP’, podemos usar los siguientes dos enfoques.
Enfoque 1: verifique si la conexión usa SSL y si el valor de $_SERVER[‘HTTPS’] está configurado, entonces podemos decir que la conexión está protegida y se llama desde ‘HTTPS’. Si el valor está vacío, esto significa que el valor está establecido en ‘0’ o ‘desactivado’, entonces podemos decir que la conexión no es segura y la página se llama desde ‘HTTP’.
$_SERVER es una array que contiene toda la información sobre los encabezados de las requests, las rutas y las ubicaciones de los scripts. Tendrá un valor ‘no vacío’ si la solicitud se envió a través de HTTPS y vacío o ‘0’ si la solicitud se envió a través de HTTP.
Sintaxis:
if (isset($_SERVER['HTTPS'])) { // page is called from https // Connection is secured } else { // page is called from http // Connection is not secured }
Diagrama de flujo:
Ejemplo:
PHP
<?php // checking if $_SERVER['HTTPS'] is set or not // i.e. if it is set that mean value is '1' or 'on' // and page is called from HTTPS if (isset($_SERVER['HTTPS'])) { echo "Page is called from HTTPS and connection is secured."; } else { // if $_SERVER['HTTPS'] is not set mean // value is '0' or 'off' echo "Warning : Connection is not secured,Page is called from HTTP"; } ?>
Producción:
Warning : Connection is not secured,Page is called from HTTP
Enfoque 2: un problema con el enfoque anterior es que en algunos servidores, $_SERVER[‘HTTPS’] no está definido y esto podría generar un mensaje de error al verificar que la página se llame desde ‘HTTPS’ o desde ‘HTTP’. Entonces, para superar esto, también debemos verificar el número de puerto del servidor, si el número de puerto utilizado es 443, la conexión se realiza a través de ‘HTTPS’.
Pseudocódigo:
check if $_SERVER['HTTPS'] is set and $_SERVER['HTTPS'] is set to 'on' then Connection is Secured and through HTTPS request OR if $_SERVER['HTTPS'] is set and $_SERVER['SERVER_PORT'] is 443 ( https use 443 ) then Connection is secured else Connection is not secured and made through HTTP request
Sintaxis:
if ((isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on'))) || (isset($_SERVER['HTTPS']) && $_SERVER['SERVER_PORT'] == 443)) { Page is called through HTTPS } else { Page is called through HTTPS }
Diagrama de flujo:
Ejemplo:
PHP
<?php // checking if $_SERVER['HTTPS'] is set and its value is 'on' // or '1' and if server port number is 443 then we can say the // connection is made through HTTPS if (isset($_SERVER['HTTPS'])) { if ($_SERVER['HTTPS'] == 'on') { } } else if (isset($_SERVER['HTTPS'])) { if ($_SERVER['SERVER_PORT'] == 443) { echo "Connection is secured and page is called from HTTPS"; } } else { // Connection is made through HTTP echo "Connection is not secured and page is called from HTTP"; } ?>
Producción:
Connection is not secured and page is called from HTTP
Publicación traducida automáticamente
Artículo escrito por amnindersingh1414 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA