Variables en PHP
Declaración y Asignación
En PHP, no es necesario declarar el tipo de las variables. La asignación de valores se puede realizar por valor, por referencia (usando el símbolo &) o mediante la creación dinámica de nombres de variables.
Tipos de Variables
Para determinar el tipo de una variable, se utiliza la función gettype()
. Además, existen funciones específicas para verificar si una variable pertenece a un tipo particular, como is_array()
, is_bool()
, is_null()
, is_object()
, is_resource()
, is_scalar()
, is_string()
, is_float()
, is_integer()
, is_numeric()
y is_nan()
.
Ámbito de las Variables
- Local: Las variables definidas dentro de una función están limitadas a esa función y se eliminan al finalizar su ejecución, a menos que se declaren como
static
. - Global: Las variables globales existen durante todo el proceso del archivo y se eliminan al finalizar. No se pueden definir dentro de funciones a menos que se declare con la palabra clave
global
o se acceda mediante el array$GLOBALS[índice]
.
Paso de Parámetros
Por defecto, los parámetros se pasan por valor. Para pasar por referencia, se utiliza el símbolo & antes del nombre de la variable (e.g., &$a
).
Argumentos por Defecto
Los argumentos con valores por defecto deben colocarse siempre al final de la lista de argumentos.
Servidor Web con PHP
Funcionamiento del Intérprete de PHP
El cliente solo ve los resultados generados por el código PHP, no el código en sí. El servidor PHP agrega cabeceras HTTP al mensaje. Apache ejecuta PHP como un módulo, no como un CGI (Common Gateway Interface).
Seguridad
Los archivos sensibles deben ubicarse fuera de la raíz del servidor web (docroot-httpdocs).
Ejemplo de URL
http://piruleta.atwebpages.com/PHP/P0/partials/portal0.php?action=listar
- Nombre del servidor: piruleta.atwebpages.com
- Recurso: portal0.php
- Parámetros: action=listar
Cabeceras HTTP
PHP puede agregar datos a la cabecera HTTP. Una vez que se envía contenido a la salida estándar (e.g., con print
o echo
), ya no se pueden modificar las cabeceras.
Variables Predefinidas en el Servidor Web
PHP proporciona variables predefinidas disponibles en todos los ámbitos:
$GLOBALS
: Array con todas las variables globales.$_SERVER
: Información del entorno del servidor y de ejecución.$_GET
($_POST
): Variables HTTP GET (POST).$_FILES
: Variables de carga de archivos HTTP.$_REQUEST
: Variables HTTP Request: GET + POST + COOKIE$_SESSION
: Variables de sesión.$_COOKIE
: Variables con datos de cookies.$_ENV
: Variables del entorno.
Nota: $GLOBALS[$_REQUEST] === $_REQUEST
Formularios en HTML
Radio Buttons
Ejemplo:
Sexo:
Mujer
Checkbox
Ejemplo:
Garaje
Piscina
Jardín
Procesamiento:
foreach ($extras as $extra) print(...)
Button
Ejemplo:
if ($actualizar) { print(.....); }
Select Múltiple
Ejemplo:
Idiomas:
Inglés Francés Alemán Holandés
Procesamiento:
foreach ($idiomas as $idioma) print(...);
Sesiones en PHP
Simulación de Sesiones
Dado que HTTP es un protocolo sin estado, se utilizan diferentes métodos para simular sesiones:
- Controles HTML ocultos (e.g.,
<input type="hidden" name="session" value="1234">
) - URL rewriting: Incluir información de estado en la URL.
- Cookies.
- Combinación de cookies y bases de datos.
- Objeto
SESSION
de PHP.
Cookies
Las cookies son información que el servidor envía al cliente para almacenar en un archivo y reenviar en posteriores accesos. Se utilizan para:
- Recordar preferencias del cliente.
- Almacenar información de sesión.
- Simular sesiones.
No se deben utilizar para almacenar información privada.
Variables de las Cookies
Las cookies son archivos con pares clave-valor de tamaño limitado. Las variables principales son:
name
: Nombre de la cookie.expires
: Fecha de caducidad.secure
: Tipo de seguridad (solo HTTPS).path
: Ruta específica a los recursos a los que se envía la cookie.domain
: Ámbito con el cual el cliente identifica si debe enviar la cookie al servidor.
Desventajas de las Cookies
- Privacidad: Otros servidores podrían leer la información.
- Alteración de datos: Los usuarios podrían modificar el archivo de la cookie.
- Implementación compleja.
- Tamaño de datos limitado.
Uso de Cookies en PHP
- Las cookies se envían del cliente al servidor en cada petición HTTP y se almacenan en la variable
$_COOKIE
. - El programa PHP envía cookies al servidor mediante la función
setcookie()
, antes de enviar cualquier texto a la salida estándar.
Objeto SESSION en PHP
PHP proporciona un sistema de gestión de sesiones mediante el objeto SESSION
. Se inicializa con la función session_start()
, que busca en la cookie un session_id
y carga el archivo correspondiente a la sesión. Si no existe, genera un nuevo session_id
, envía la cookie y crea el archivo para almacenar los datos en el servidor.
Autenticación de Usuarios
La autenticación requiere credenciales o pruebas de identidad. Se puede realizar de diferentes maneras:
- Autentificación en el servidor (e.g., archivos .htaccess en Apache).
- Autentificación en el cliente (e.g., firma digital).
- Autentificación por programa.
Proceso de Autenticación Básica en el Servidor
- Autentificación básica: Solicita al cliente un usuario y contraseña, que se envían encriptados con codificación base64.
- Autentificación por programa: Se muestra un formulario de inicio de sesión y se verifica la información proporcionada por el usuario.
Autorización de Recursos
La autorización implica controlar el acceso de los usuarios a zonas específicas del sitio web. Generalmente, se requiere autenticación previa.
Proceso de Producción de un Proyecto Web
Las etapas típicas de un proyecto web son:
- Planificación (arquitectura de la información)
- Diseño (diseño web)
- Prototipado (mockup)
- Desarrollo
- Implementación
- Evaluación
- Mantenimiento
Definición de la Interfaz de Servicios
Para cada servicio, se define la siguiente información:
- Título
- URL
- Método (GET/POST)
- Parámetros de URL
- Parámetros del formulario
- Respuesta si es correcto
- Respuesta si es error
- Pre-condiciones y post-condiciones