Saltar a contenido

Prueba de conocimiento UT 04

Parte 1: Preguntas tipo test

  1. ¿Cuál de las siguientes variables superglobales contiene los datos enviados mediante el método POST?

    • a. $_GET
    • b. $_FILES
    • c. $_SERVER
    • d. $_POST
  2. ¿Cuál es una característica de los formularios que usan el método GET?

    • a. No permite el uso de arrays en los parámetros
    • b. Los datos viajan ocultos
    • c. Pueden ser almacenados en marcadores del navegador
    • d. Aceptan archivos binarios
  3. ¿Qué cabecera se utiliza para redirigir a una nueva URL en PHP?

    • a. Content-Type
    • b. Content-Disposition
    • c. Expires
    • d. Location
  4. ¿Qué array contiene información como HTTP_USER_AGENT o SERVER_NAME?

    • a. $_COOKIE
    • b. $_ENV
    • c. $_SESSION
    • d. $_SERVER
  5. ¿Qué función se usa para establecer una cookie en PHP?

    • a. set_session()
    • b. create_cookie()
    • c. setcookie()
    • d. cookie_start()
  6. ¿Qué propiedad de $_FILES contiene el nombre temporal del archivo cargado?

    • a. tmp_name
    • b. filename
    • c. name
    • d. type
  7. ¿Cómo se inicia una sesión en PHP?

    • a. session_begin()
    • b. start_session()
    • c. session_start()
    • d. new_session()
  8. ¿Qué función permite destruir completamente una sesión?

    • a. session_unset()
    • b. session_destroy()
    • c. session_close()
    • d. end_session()
  9. ¿Cuál de las siguientes cabeceras se usa para controlar la caché en el navegador?

    • a. Content-Type
    • b. Cache-Control
    • c. Redirect
    • d. Set-Cookie
  10. ¿Qué función PHP convierte caracteres especiales a entidades HTML para evitar XSS?

    • a. strip_tags()
    • b. htmlspecialchars()
    • c. addslashes()
    • d. urlencode()
  11. ¿Cuál es una ventaja del patrón MVC?

    • a. Aumenta el acoplamiento entre componentes
    • b. Facilita el uso de SQL
    • c. Mejora la separación de responsabilidades
    • d. Reduce el número de archivos necesarios
  12. ¿Qué componente en MVC se encarga de acceder a la base de datos?

    • a. Vista
    • b. Controlador
    • c. Modelo
    • d. Router
  13. ¿Qué hace la función filter_var() en PHP?

    • a. Convierte una cadena a entero
    • b. Limpia o valida una variable
    • c. Añade filtros gráficos
    • d. Cambia el tipo MIME
  14. ¿Qué superglobal usarías para acceder a una cookie llamada idioma?

    • a. $_SESSION["idioma"]
    • b. $_GET["idioma"]
    • c. $_COOKIE["idioma"]
    • d. $_FILES["idioma"]
  15. ¿Qué se debe hacer antes de usar header() para redirigir en PHP?

    • a. Mostrar HTML
    • b. Llamar a session_destroy()
    • c. No haber enviado salida al navegador
    • d. Utilizar JavaScript
  16. ¿Qué cabecera se usa para forzar la descarga de un archivo CSV?

    • a. Location
    • b. Content-Disposition: attachment
    • c. Content-Type: text/html
    • d. Pragma
  17. ¿Cuál de las siguientes opciones no forma parte del array $_SERVER?

    • a. PHP_SELF
    • b. REQUEST_METHOD
    • c. REMOTE_ADDR
    • d. USER_PASSWORD
  18. ¿Qué función se usa para mover un archivo subido a una ubicación final?

    • a. copy_uploaded_file()
    • b. move_uploaded_file()
    • c. upload_file()
    • d. send_file()
  19. ¿Qué elemento HTML se utiliza para enviar varios valores como array en un formulario?

    • a. multiple="false"
    • b. name[]
    • c. array="true"
    • d. value="multi"
  20. ¿Qué función en PHP permite validar un patrón de texto usando expresiones regulares?

    • a. ereg()
    • b. preg_replace()
    • c. preg_match()
    • d. str_replace()

Parte 2: Ejercicio práctico

Ejercicio 1: Gestión de formularios en dos pasos usando sesiones

  1. form1.php
    - Mostrar un formulario que solicite:

    • Nombre
    • Email
    • Sexo (radio)
    • Al enviar, guardar estos datos en $_SESSION y redirigir a form2.php.
  2. form2.php
    - Iniciar sesión y leer los datos de la sesión.
    - Mostrar un segundo formulario con:

    • Número de convivientes (number)
    • Aficiones (checkbox, mínimo 4 opciones)
    • Menú favorito (select multiple, mínimo 4 opciones)
    • Al enviar, redirigir a resumen.php.
  3. resumen.php
    - Iniciar sesión y leer todos los valores guardados en $_SESSION.
    - Mostrar un resumen de los datos en una tabla HTML.

Ejercicio 2: Autenticación básica con validación y sanitización

  1. login.php
    - Mostrar un formulario que solicite:

    • Usuario (text)
    • Contraseña (password)
    • Método: POST, acción sobre el mismo login.php.
  2. Procesamiento
    - Al recibir el formulario:

    • Validar que el campo Usuario cumple formato de email con filter_var(..., FILTER_VALIDATE_EMAIL).
    • Sanitizar ambos campos con htmlspecialchars().
    • Comprobar credenciales estáticas:
    • Usuario válido: usuario@mail.com
    • Contraseña válida: usuario
    • Si es correcto, guardar el usuario en $_SESSION y redirigir a bienvenida.php.
    • Si no, mostrar de nuevo el formulario con un mensaje de error.
  3. bienvenida.php
    - Iniciar sesión, comprobar que hay un usuario en $_SESSION.
    - Mostrar un mensaje “Bienvenido, \<nombre de usuario>”.
    - Incluir un enlace “Cerrar sesión” que destruya la sesión y vuelva a login.php.