diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deLucas.jpg b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deLucas.jpg new file mode 100755 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deLucas.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deMaria.jpg b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deMaria.jpg new file mode 100755 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deMaria.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deMario.jpg b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deMario.jpg new file mode 100755 index 0000000..2b43d0a Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_deMario.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco.jpg b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco.jpg new file mode 100755 index 0000000..aa049e4 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco.pdf b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco.pdf new file mode 100755 index 0000000..fc513d1 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco.pdf differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_gif.gif b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_gif.gif new file mode 100755 index 0000000..0054c4b Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_gif.gif differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_grande.jpg b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_grande.jpg new file mode 100755 index 0000000..0c1c9d3 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_grande.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_grande.pdf b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_grande.pdf new file mode 100755 index 0000000..86d5847 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_grande.pdf differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_pequeno.jpg b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_pequeno.jpg new file mode 100755 index 0000000..a3a35cf Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_pequeno.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_png.png b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_png.png new file mode 100755 index 0000000..d2e06cb Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaco_png.png differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaolo.jpg b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaolo.jpg new file mode 100755 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/archivos_prueba/dni_dePaolo.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/busqueda.php b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/busqueda.php new file mode 100755 index 0000000..09d14d9 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/busqueda.php @@ -0,0 +1,139 @@ + + + + + + + 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 ReservaNombreEmailNº TelefonoFecha de entradaFecha de salidaFecha de registroNº de nochesAcciones
$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); + return ($flagEncontrado && file_put_contents($nombre_archivo,$registros)); + } + + function eliminaRegistro($idReserva){ + $dir_reservas ="reservas/"; + $nombre_archivo = "$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/Plantilla Examen/caracteres.php b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/caracteres.php new file mode 100755 index 0000000..8031d70 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/caracteres.php @@ -0,0 +1,42 @@ + + + + + + Reservas hotel + + + + + + + +
+
+

Reserve su habitación

+
+ Datos de la reserva +

+

+

+ +

+

+ +

+

+

+ +

+

+ +
+
+ Datos personales +

+

+

+

Check-in online (opcional):

+

+

+
+
+ +
+
+ + +
+ +
+
+ +
+
+ + +
+ + + \ No newline at end of file diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/listado_reservas.txt b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/listado_reservas.txt new file mode 100755 index 0000000..e69de29 diff --git a/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/recibe_formulario_hotel.php b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/recibe_formulario_hotel.php new file mode 100755 index 0000000..1eaf6cd --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/Plantilla Examen/recibe_formulario_hotel.php @@ -0,0 +1,166 @@ + + + + + + + Reservas Hotel!!! + + +
+ +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) { + $datos[$campo] = trim($formulario[$campo]) ?? ''; + } + return $datos; +} + + +// Función para procesar la reserva +function procesarReserva($datosReserva) +{ + // Variables para el resultado del procesamiento + $exito = true; + $msgExito = []; + $msgError = []; + + // Obtener datos de reserva + $entrada = $datosReserva['entrada']; + $salida = $datosReserva['salida']; + $habitacion = $datosReserva['habitacion']; + $regimen = $datosReserva['regimen']; + $spa = $datosReserva['spa']; + $guia = $datosReserva['guia']; + $nombre = $datosReserva['nombre']; + $email = $datosReserva['email']; + $telefono = $datosReserva['telefono']; + $dni = $datosReserva['dni']; + $noches = $datosReserva['noches']; + $total = $datosReserva['total']; + + // Generar identificador de reserva + $idReserva = time() . '_' . mt_rand(1000, 9999); + // Fecha de reserva + $fechaReserva = date("d-m-Y H:i:s"); + + // Estructurar ficha de reserva + $fichaReserva = "Id reserva: $idReserva \r\n"; + $fichaReserva .= "Fecha de reserva: $fechaReserva \r\n"; + $fichaReserva .= "Fecha de entrada: $entrada \r\n"; + $fichaReserva .= "Fecha de salida: $salida \r\n"; + $fichaReserva .= "Tipo de habitación: $habitacion \r\n"; + $fichaReserva .= "Regimen de alojamiento: $regimen \r\n"; + $fichaReserva .= "Días Spa: $spa \r\n"; + $fichaReserva .= "Días Guia: $guia \r\n"; + $fichaReserva .= "Duración estancia: $noches \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 ="reservas/"; + !is_dir($dir_reservas) ? !mkdir($dir_reservas, 0777, true) : null; + $nombre_archivo = $dir_reservas . $idReserva . ".txt"; + if (file_put_contents($nombre_archivo, $fichaReserva) === false) { + $exito = false; + $msgError[] = "Error al guardar la ficha de reserva."; + } else { + $msgExito[] = "

Reserva confirmada !

" . "

". nl2br($fichaReserva)."

"; + } + + // Añadir al listado_reservas.txt una línea de reserva + $registroReserva = implode('/_/', [$idReserva, $nombre, $email, $telefono, $entrada, $salida, $fechaReserva, $noches]) . "\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['dnifile']) && $_FILES['dnifile']['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['dnifile']['name']]); + $extension_archivo = strtolower(pathinfo($_FILES["dnifile"]["name"], PATHINFO_EXTENSION)); + $tamano_maximo = 2 * 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["dnifile"]["size"] > $tamano_maximo){ + $exitoUpload =false; + $exito = false; + $msgError[] = "El fichero excede el tamaño maximo (2Mb)."; + } + + if ($exitoUpload){ + if(move_uploaded_file($_FILES["dnifile"]["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) +{ + + foreach ($resultado['msgExito'] as $key => $value) { + echo "

$value

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

Se han encontrado los siguientes problemas al procesar su solicitud:

"; + echo ""; + } +} +?> +
+ + \ No newline at end of file diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/Partes de codigo/codigo.php b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/Partes de codigo/codigo.php deleted file mode 100644 index 11764d4..0000000 --- a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/Partes de codigo/codigo.php +++ /dev/null @@ -1,140 +0,0 @@ - $exito, - 'mensaje' => $mensaje - ]; - - return $resultado; -} - -// Función para guardar la ficha de reserva en un archivo -function guardarFichaReserva($fichaReserva, $nombre_archivo) -{ - return file_put_contents($nombre_archivo, $fichaReserva) !== false; -} - -// Función para añadir al listado_reservas.txt una línea de reserva -function guardaListaDatos($registroReserva, $nombre_archivo) -{ - return file_put_contents($nombre_archivo, $registroReserva, FILE_APPEND | LOCK_EX) !== false; -} - - - - - - - - - - -// Función para mostrar el resultado al usuario -function mostrarResultado($resultado) -{ - if ($resultado['exito']) { - echo "

{$resultado['mensaje']}

"; - } else { - echo "

No se ha podido realizar la reserva correctamente.

"; - } -}