Prueba de conocimiento UT 04¶
Parte 1: Preguntas tipo test¶
-
¿Cuál de las siguientes variables superglobales contiene los datos enviados mediante el método POST?
- a.
$_GET
- b.
$_FILES
- c.
$_SERVER
- d.
$_POST
- a.
-
¿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
-
¿Qué cabecera se utiliza para redirigir a una nueva URL en PHP?
- a.
Content-Type
- b.
Content-Disposition
- c.
Expires
- d.
Location
- a.
-
¿Qué array contiene información como
HTTP_USER_AGENT
oSERVER_NAME
?- a.
$_COOKIE
- b.
$_ENV
- c.
$_SESSION
- d.
$_SERVER
- a.
-
¿Qué función se usa para establecer una cookie en PHP?
- a.
set_session()
- b.
create_cookie()
- c.
setcookie()
- d.
cookie_start()
- a.
-
¿Qué propiedad de
$_FILES
contiene el nombre temporal del archivo cargado?- a.
tmp_name
- b.
filename
- c.
name
- d.
type
- a.
-
¿Cómo se inicia una sesión en PHP?
- a.
session_begin()
- b.
start_session()
- c.
session_start()
- d.
new_session()
- a.
-
¿Qué función permite destruir completamente una sesión?
- a.
session_unset()
- b.
session_destroy()
- c.
session_close()
- d.
end_session()
- a.
-
¿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
- a.
-
¿Qué función PHP convierte caracteres especiales a entidades HTML para evitar XSS?
- a.
strip_tags()
- b.
htmlspecialchars()
- c.
addslashes()
- d.
urlencode()
- a.
-
¿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
-
¿Qué componente en MVC se encarga de acceder a la base de datos?
- a. Vista
- b. Controlador
- c. Modelo
- d. Router
-
¿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
-
¿Qué superglobal usarías para acceder a una cookie llamada
idioma
?- a.
$_SESSION["idioma"]
- b.
$_GET["idioma"]
- c.
$_COOKIE["idioma"]
- d.
$_FILES["idioma"]
- a.
-
¿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
-
¿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
- a.
-
¿Cuál de las siguientes opciones no forma parte del array
$_SERVER
?- a.
PHP_SELF
- b.
REQUEST_METHOD
- c.
REMOTE_ADDR
- d.
USER_PASSWORD
- a.
-
¿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()
- a.
-
¿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"
- a.
-
¿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()
- a.
Parte 2: Ejercicio práctico¶
Ejercicio 1: Gestión de formularios en dos pasos usando sesiones¶
-
form1.php
- Mostrar un formulario que solicite:- Nombre
- Sexo (radio)
- Al enviar, guardar estos datos en
$_SESSION
y redirigir aform2.php
.
-
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
.
-
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¶
-
login.php
- Mostrar un formulario que solicite:- Usuario (text)
- Contraseña (password)
- Método: POST, acción sobre el mismo
login.php
.
-
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 abienvenida.php
. - Si no, mostrar de nuevo el formulario con un mensaje de error.
- Validar que el campo Usuario cumple formato de email con
-
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 alogin.php
.