Introducción a PHP: Variables, Servidor Web, Formularios y Sesiones

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:

  1. Planificación (arquitectura de la información)
  2. Diseño (diseño web)
  3. Prototipado (mockup)
  4. Desarrollo
  5. Implementación
  6. Evaluación
  7. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.