diff --git a/Practicas/Practicas_PHP/UF1844_alumnos.zip b/Practicas/Practicas_PHP/UF1844_alumnos.zip new file mode 100644 index 0000000..fd0035d Binary files /dev/null and b/Practicas/Practicas_PHP/UF1844_alumnos.zip differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/Examen_UF1844_xx.html b/Practicas/Practicas_PHP/ejercicios/examen/Examen_UF1844_xx.html new file mode 100644 index 0000000..e5f8505 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/examen/Examen_UF1844_xx.html @@ -0,0 +1,123 @@ + + + + + Examen_UF1844 + + + + +
+
+

Alquiler de vehículo

+

Introduzca número de dias de alquiler + +

Elige la fecha de inicio del alquiler

+

Seleccione el tipo de vehículo + +

+

Elementos opcionales

+

Silla Infantil * 15 Euros por día de alquiler

+

GPS * 5 Euros por día de alquiler

+

Seguro

+

** El seguro a terceros es obligatorio y tiene un coste de 10 Euros/día sin IVA

+

Seguro a todo riesgo

+

Conductor menor de 30 años

+

Coste total

+ + +

*Nombre:

+

*Correo electrónico:

+

*Teléfono:

+

Check-in online (opcional):

+

Adjunte fotocopia de DNI

+

+ + + + +
+
+
+ + diff --git a/Practicas/Practicas_PHP/ejercicios/examen/Examen_practico_UF1844_24.pdf b/Practicas/Practicas_PHP/ejercicios/examen/Examen_practico_UF1844_24.pdf new file mode 100644 index 0000000..4f7354c Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/Examen_practico_UF1844_24.pdf differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deLucas.jpg b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deLucas.jpg new file mode 100644 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deLucas.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deMaria.jpg b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deMaria.jpg new file mode 100644 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deMaria.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deMario.jpg b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deMario.jpg new file mode 100644 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_deMario.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco.jpg b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco.jpg new file mode 100644 index 0000000..aa049e4 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco.pdf b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco.pdf new file mode 100644 index 0000000..fc513d1 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco.pdf differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_gif.gif b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_gif.gif new file mode 100644 index 0000000..0054c4b Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_gif.gif differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_grande.jpg b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_grande.jpg new file mode 100644 index 0000000..0c1c9d3 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_grande.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_grande.pdf b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_grande.pdf new file mode 100644 index 0000000..86d5847 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_grande.pdf differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_pequeno.jpg b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_pequeno.jpg new file mode 100644 index 0000000..a3a35cf Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_pequeno.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_png.png b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_png.png new file mode 100644 index 0000000..d2e06cb Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaco_png.png differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaolo.jpg b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaolo.jpg new file mode 100644 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/archivos_prueba/dni_dePaolo.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/buscador_alquileres.php b/Practicas/Practicas_PHP/ejercicios/examen/buscador_alquileres.php new file mode 100644 index 0000000..b2b8ce9 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/examen/buscador_alquileres.php @@ -0,0 +1,154 @@ + + + + + + + + + + + + + Busqueda y eliminacion de registros + + + +
+

*Término a buscar:

+

+ +
+
+ + + 0) { + echo " + + + + + + + + + + + + "; + foreach ($registros as $registro) { + $campos = explode("/_/", $registro); + echo ""; + foreach ($campos as $campo) { + echo ""; + } + echo ""; + echo ""; + } + echo ""; + echo "
Id AlquilerNombreCorreoTelefonoFecha de InicioFecha de AlquilerDuracionTipo VehiculoAcciones
$campo " . genButtonDel($campos[0]) . "
"; + } else { + echo "

No se han encontrado registros con los terminos indicados

"; + } + } + + function genButtonDel($idReserva) + { + return "
+ + +
"; + } + ?> + + + + +
+

*ID de reserva para borrar:

+ + +
+
+ + "; + echo "

Actuaciones sobre el registro: $idReserva


"; + echo eliminaDeLista($idReserva) ? + "

Se ha encontrado el registro en el archivo y se ha eliminado

" : + "

No se encontro el registro especificado en el archivo

"; + echo eliminaRegistro($idReserva) ? + "

Se ha eliminado correctamente el registro de reserva

" : + "No se ha encontrado el registro de reserva especificado

"; + echo eliminaUpload($idReserva) ? + "

Se ha eliminado el documento almacenado con el registro

" : + "

No se ha encontrado documentos asociados al registro

"; + echo ""; + } + unset($_POST); + } + + function eliminaDeLista($idReserva) + { + $nombre_archivo = "listado_reservas.txt"; + $flagEncontrado = false; + $registros = []; + $archivo = fopen($nombre_archivo, 'r'); + while (($linea = fgets($archivo)) !== false) { + if (strpos($linea, $idReserva) === false) { + $registros[] = $linea; + } else { + $flagEncontrado = true; + } + } + fclose($archivo); + $res=file_put_contents($nombre_archivo, $registros); + return ($flagEncontrado && ($res!==false)); + } + + function eliminaRegistro($idReserva) + { + $dir_reservas = "alquileres/"; + $nombre_archivo = "alquiler_" . "$idReserva.txt"; + return file_exists($dir_reservas . $nombre_archivo) ? + unlink($dir_reservas . $nombre_archivo) : + false; + } + + function eliminaUpload($idReserva) + { + $dir_uploads = "dni_clientes/"; + $file = glob($dir_uploads . "*" . $idReserva . "*"); + return (count($file) > 0) ? unlink($file[0]) : false; + } + + ?> + + + + \ No newline at end of file diff --git a/Practicas/Practicas_PHP/ejercicios/examen/buscador_alquileres.php.pdf b/Practicas/Practicas_PHP/ejercicios/examen/buscador_alquileres.php.pdf new file mode 100644 index 0000000..c5e8dca Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/buscador_alquileres.php.pdf differ diff --git a/Practicas/Practicas_PHP/ejercicios/examen/caracteres.php b/Practicas/Practicas_PHP/ejercicios/examen/caracteres.php new file mode 100644 index 0000000..8031d70 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/examen/caracteres.php @@ -0,0 +1,42 @@ + + + + + + + + + + + + + Reserva alquiler!!! + + + + + No se han recibido datos del formulario"; + } + + + // Función para recopilar datos del formulario y sanitizarlos + function recopilarDatosReserva($formulario, $campos) + { + $datos = []; + foreach ($campos as $campo) { + if (isset($_POST[$campo])) { + $datos[$campo] = $formulario[$campo]; + } else { + $datos[$campo] = ""; + } + } + return $datos; + } + + + // Función para procesar la reserva + function procesarReserva($datosReserva) + { + // Variables para el resultado del procesamiento + $exito = true; + $msgExito = []; + $msgError = []; + + $dias = $datosReserva['dias']; + $fecha_inicio = $datosReserva['fecha_inicio']; + $tipo = $datosReserva['tipo']; + $silla = $datosReserva['silla'] ? "Seleccionado" : "No seleccionado"; + $gps = $datosReserva['gps'] ? "Seleccionado" : "No seleccionado"; + $riesgo = $datosReserva['riesgo'] ? "Seleccionado" : "No seleccionado"; + $menor = $datosReserva['menor'] ? "Seleccionado" : "No seleccionado"; + $total = $datosReserva['total']; + $nombre = $datosReserva['nombre']; + $email = $datosReserva['email']; + $telefono = $datosReserva['telefono']; + $dni = $datosReserva['dni']; + $info = $datosReserva['info']; + $entrega = $datosReserva['entrega']; + $recargo = $datosReserva['recargo']; + + // Generar identificador de reserva + $idReserva = time() . '_' . mt_rand(1000, 9999); + // Fecha de reserva + $fechaReserva = date("d-m-Y H:i:s"); + + $fichaReserva = "Id alquiler: $idReserva \r\n"; + $fichaReserva .= "Fecha de alquiler: $fechaReserva \r\n"; + $fichaReserva .= "Fecha de inicio: $fecha_inicio \r\n"; + $fichaReserva .= "Tipo de coche: $tipo \r\n"; + $fichaReserva .= "Gps: $gps \r\n"; + $fichaReserva .= "Silla: $silla \r\n"; + $fichaReserva .= "Todo riesgo: $riesgo \r\n"; + $fichaReserva .= "Menor de 30: $menor \r\n"; + $fichaReserva .= "Duración del alquiler: $dias \r\n"; + $fichaReserva .= "Coste Total: $total \r\n"; + $fichaReserva .= "Nombre: $nombre \r\n"; + $fichaReserva .= "Correo electrónico: $email \r\n"; + $fichaReserva .= "Teléfono: $telefono \r\n"; + $fichaReserva .= "DNI: $dni \r\n"; + + + // Enviar correo electrónico con los detalles de la reserva + $destinatario = "appasin04@gmail.com"; + $asunto = "Informacion de reserva - $idReserva"; + $headers = 'Reply-To: appasin04@gmail.com' . "\r\n"; + $headers .= 'Bcc: ' . $email . "\r\n"; + if (!mail($destinatario, $asunto, $fichaReserva, $headers)) { + $exito = false; + $msgError[] = "Error al enviar el correo electrónico."; + } + + + // Guardar la ficha de reserva en un archivo + $dir_reservas = "alquileres/"; + !is_dir($dir_reservas) ? !mkdir($dir_reservas, 0777, true) : null; + $nombre_archivo = $dir_reservas . "alquiler_" . $idReserva . ".txt"; + if (file_put_contents($nombre_archivo, $fichaReserva) === false) { + $exito = false; + $msgError[] = "Error al guardar la ficha de reserva."; + } else { + $msgExito[] = "

Reserva de alquiler confirmada!!!!

" . + "

". nl2br($info) . "

" . + "

Esta es la informacion detallada de tu reserva !

" . "

" . nl2br($fichaReserva) . "

"; + } + + // Añadir al listado_reservas.txt una línea de reserva + $registroReserva = implode('/_/', [$idReserva, $nombre, $email, $telefono, $fecha_inicio, $fechaReserva, $dias, $tipo]) . "\r\n"; + $nombre_archivo = "listado_reservas.txt"; + if (file_put_contents($nombre_archivo, $registroReserva, FILE_APPEND | LOCK_EX) === false) { + $exito = false; + $msgError[] = "Error al guardar la lista de reservas."; + } + + if (isset($_FILES['dni_archivo']) && $_FILES['dni_archivo']['error'] === UPLOAD_ERR_OK) { + $exitoUpload = true; + $dir_uploads = "dni_clientes/"; + !is_dir($dir_uploads) ? !mkdir($dir_uploads, 0777, true) : null; + $nombreArchivo = implode("_", [$dni, $idReserva, $_FILES['dni_archivo']['name']]); + $extension_archivo = strtolower(pathinfo($_FILES["dni_archivo"]["name"], PATHINFO_EXTENSION)); + $tamano_maximo = 1 * 1024 * 1024; + $extensiones_permitidas = array("jpg", "jpeg", "pdf"); + + if (!in_array($extension_archivo, $extensiones_permitidas)) { + $exitoUpload = false; + $exito = false; + $msgError[] = "El fichero no tiene una extension valida."; + } + + if ($_FILES["dni_archivo"]["size"] > $tamano_maximo) { + $exitoUpload = false; + $exito = false; + $msgError[] = "El fichero excede el tamaño maximo (1Mb)."; + } + + if ($exitoUpload) { + if (move_uploaded_file($_FILES["dni_archivo"]["tmp_name"], $dir_uploads . $nombreArchivo)) { + $msgExito[] = "

El fichero adjunto se almaceno correctamente

"; + } else { + $exito = false; + $msgError[] = "Ocurrio un error al almacenar el fichero adjunto"; + } + } + } + + $resultado = [ + 'exito' => $exito, + 'msgExito' => $msgExito, + 'msgError' => $msgError + ]; + return $resultado; + } + + function mostrarResultado($resultado) + { + echo "
"; + foreach ($resultado['msgExito'] as $key => $value) { + echo "

$value

"; + } + if (!$resultado['exito']) { + echo "

Se han encontrado los siguientes problemas al procesar su solicitud:

"; + echo ""; + } + echo "
"; + } + + ?> + + + + \ No newline at end of file diff --git a/Practicas/Practicas_PHP/ejercicios/examen/recibeformulario_coches.php.pdf b/Practicas/Practicas_PHP/ejercicios/examen/recibeformulario_coches.php.pdf new file mode 100644 index 0000000..ab5d872 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/examen/recibeformulario_coches.php.pdf differ