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 new file mode 100644 index 0000000..11764d4 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/Partes de codigo/codigo.php @@ -0,0 +1,140 @@ + $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.

"; + } +} diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deLucas.jpg b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deLucas.jpg new file mode 100644 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deLucas.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deMaria.jpg b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deMaria.jpg new file mode 100644 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deMaria.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deMario.jpg b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deMario.jpg new file mode 100644 index 0000000..2b43d0a Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_deMario.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco.jpg b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco.jpg new file mode 100644 index 0000000..aa049e4 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco.pdf b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco.pdf new file mode 100644 index 0000000..fc513d1 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco.pdf differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_gif.gif b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_gif.gif new file mode 100644 index 0000000..0054c4b Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_gif.gif differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_grande.jpg b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_grande.jpg new file mode 100644 index 0000000..0c1c9d3 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_grande.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_grande.pdf b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_grande.pdf new file mode 100644 index 0000000..86d5847 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_grande.pdf differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_pequeno.jpg b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_pequeno.jpg new file mode 100644 index 0000000..a3a35cf Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_pequeno.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_png.png b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_png.png new file mode 100644 index 0000000..d2e06cb Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaco_png.png differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaolo.jpg b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaolo.jpg new file mode 100644 index 0000000..ba2fe40 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/archivos_prueba/dni_dePaolo.jpg differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/buscador_reservas_delete.php b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/buscador_reservas_delete.php new file mode 100644 index 0000000..468a558 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/buscador_reservas_delete.php @@ -0,0 +1,141 @@ + + + + + + + Buscador de reservas + + + + +
+

*Término a buscar:

+

+ +
+ + '; + echo ''; + echo ""; + + //Busco la coincidencia + $id_encontrado = null; + while (($linea = fgets($archivo)) != false) { + if (strpos(eliminar_tildes(strtolower($linea)), eliminar_tildes(strtolower($busqueda))) !== false) { + + // Mostrar la tabla con array + $arrayLinea = explode('/_/', $linea); + //foreach ($arrayLinea as $dato) { + // echo ""; + //} + echo ""; + + //Guardar el ID de reserva encontrado + //file_put_contents("dato_temporal.txt",$arrayLinea[0]); + $id_encontrado = $arrayLinea[0]; + } + } + // Cierrro la tabla + echo "
Id ReservaNombreCorreoTeléfonoEntradaSalidaFecha reservaDuración
$dato
$arrayLinea[0]$arrayLinea[1]$arrayLinea[2]$arrayLinea[3]$arrayLinea[4]$arrayLinea[5]$arrayLinea[6]$arrayLinea[7]
"; + //cerrar el archivo + fclose($archivo); + + // Vacio los datos de POST + unset($_POST); + } + ?> +
+
+

*ID de alquiler para borrar:

+ +
+ +

La ficha de reserva se ha borrado

"; + } else { + echo "

La ficha de reserva no se ha encontrado

"; + } + } + + // Borrar DNI + $directorio = "dni_clientes"; + // Obtener la lista de elemntos del directorio + $dni_clientes = scandir("dni_clientes"); + + // Iterar sobre la lista de archivos + foreach ($dni_clientes as $archivo_dni) { + // Verificar si es archivo o directorio + + if (is_file('dni_clientes/' . $archivo_dni)) { + // Verificar si el nombre del archivo contiene la cadena determinada + if (strpos($archivo_dni, $borrado) !== false) { + // Borrar el archivo + unlink('dni_clientes/' . $archivo_dni); + echo "

Archivo borrado: $archivo_dni

"; + } + } + } + + // Vacio los datos de POST + unset($_POST); + } + ?> + + + + \ No newline at end of file diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/busqueda_registro.php b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/busqueda_registro.php new file mode 100644 index 0000000..58237b3 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/busqueda_registro.php @@ -0,0 +1,81 @@ + + + + + + + + Busqueda de registros + + + +
+

Buqueda de registro

+ + +
+
+
+ + + + + Id Usuario + Nombre + Email + Nº Telefono + Fecha de entrada + Fecha de salida + Fecha de registro + Nº de noches + Acciones + "; + foreach ($registros as $registro) { + $campos = explode("/_/", $registro); + echo ""; + foreach ($campos as $campo) { + echo " $campo "; + } + + echo "
+ + +
"; + + echo ""; + } + + echo ""; + echo ""; + } + ?> + +
+

Eliminacion de registro

+ + +
+
+ + + \ No newline at end of file diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/caracteres.php b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/caracteres.php new file mode 100644 index 0000000..8031d70 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/caracteres.php @@ -0,0 +1,42 @@ + 0) { + deleteFile($archivoDni[0]); + } + } else { + echo "No se ha encontrado el registro indicado"; + } +} else { + echo "No se ha especificado id a eliminar"; +} + +function deleteFile($rutaArchivo) +{ + if (file_exists($rutaArchivo)) { + if (unlink($rutaArchivo)) { + return true; + } else { + return false; + } + } else { + return false; + } +} diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/envio_repaso_examen.zip b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/envio_repaso_examen.zip new file mode 100644 index 0000000..d253950 Binary files /dev/null and b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/envio_repaso_examen.zip differ diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/estilos.css b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/estilos.css new file mode 100644 index 0000000..1f053b4 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/estilos.css @@ -0,0 +1,129 @@ +@charset "UTF-8"; + +*{ + margin: 0; + padding: 0; + list-style: none; + text-decoration: none; + border: none; + outline: none; +} + +p{ + margin-bottom: 10px; +} + +table { + width:80%; + min-width:350px; + margin:auto; + background-color:#9d2236; + border:2px solid #000000; + color:white; +} + +td,th { + text-align: center; + padding:3px; +} + +form,div { + width:80%; + min-width:350px; + background-color:#9d2236; + border:2px solid #000000; + padding:10px; + box-sizing:border-box; + color:white; + font-size:18px; + margin:auto; + margin-top: 20px; + +} + +fieldset { + background-color:#9d2236; + border:2px solid #ffffff; + padding:10px; + box-sizing:border-box; + +} + +#flex { + display:flex; + justify-content:space-between; +} + +label { + margin-right:10px; + margin-bottom: 5px; +} + +input { + color:white; + background-color:#9d2236; + border: 2px solid white; + padding: 2px; + min-width: 300px; +} + +legend { + font-weight: bold; + font-size: 20px; + margin:10px; +} +select,option { + color:white; + background-color:#9d2236; + border: 2px solid white; + padding: 2px; +} + +textarea { + background-color:#9d2236; + width:100%; + height:200px; + color:white; + border: 2px solid white; + padding:10px; + box-sizing:border-box; + margin-left: 10px; +} + +input[type=submit], input[type=button],input[type=reset] { + background-color:#9d2236; + color:white; + font-size: 16px; + font-weight: lighter; + margin-top: 10px; + padding: 5px; + border:2px solid #000000; + border-radius:5px; + box-shadow: 1px 2px 3px #fff; + +} + +/* Media query para pantallas de menos de 450 píxeles de ancho */ +@media (max-width: 450px) { + + label { + display: block; + margin-bottom: 5px; + } + #flex { + flex-wrap:wrap; + flex-direction: column-reverse; + } + textarea { + margin-left: 0px; + } + + table { + display: block; + width: 80%; + overflow-x: auto; + } + + + +} \ No newline at end of file diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/formulario_hotel.html b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/formulario_hotel.html new file mode 100644 index 0000000..3b66646 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/formulario_hotel.html @@ -0,0 +1,197 @@ + + + + + + + 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/envio_repaso_examen/listado_reservas.txt b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/listado_reservas.txt new file mode 100644 index 0000000..e69de29 diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/recibe_formulario_hotel.php b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/recibe_formulario_hotel.php new file mode 100644 index 0000000..7a8083e --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/recibe_formulario_hotel.php @@ -0,0 +1,127 @@ + + + + + + + + Reservas hotel + + + +
+ +
"; + echo nl2br($fichaReserva); + echo "
"; + // Subir el DNI del cliente si cumple con con las siguientes características , tipo de archivo (jpg y pdf) y tamaño máximo 2mb. + if (isset($_FILES['dnifile']) && $_FILES['dnifile']['error'] === UPLOAD_ERR_OK) { + $nombreArchivo = implode("_", [$dni, $idReserva, $_FILES['dnifile']['name']]); + if (subirArchivo($_FILES['dnifile'], 2, ['image/jpeg', 'image/jpg', 'application/pdf'], 'dni_clientes/', $nombreArchivo)) { + echo "

Su DNI ha sido recibido

"; + } + } else { + echo "

No se ha enviado documento identificado con la reserva

"; + } + } else { + echo "

No se ha podido realizar la reserva correctamente!!!

"; + } + } else { + echo "No se han recibido datos del formulario"; + } + // ************************************************************ + function guardarFichaReserva($fichaReserva, $nombre_archivo) + { + $archivo = fopen($nombre_archivo, 'w'); + fwrite($archivo, $fichaReserva); + fclose($archivo); + } + function guardaListaDatos($registroReserva, $nombre_archivo) + { + $archivo = fopen($nombre_archivo, 'a'); + fwrite($archivo, $registroReserva); + fclose($archivo); + } + function subirArchivo($archivo, $tamanoMaximo, $tiposPermitidos, $carpetaDestino, $nombreArchivo) + { + $nombre = $nombreArchivo; + $tipo = $archivo['type']; + $tamano = $archivo['size']; + $tmp_name = $archivo['tmp_name']; + + if (!in_array($tipo, $tiposPermitidos)) { + echo "

Error al enviar el fichero al servidor

"; + echo "

Has intentado subir un archivo no permitido

"; + return false; + } + + if ($tamano > ($tamanoMaximo * 1024 * 1024)) { + echo "

Error al enviar el fichero al servidor

"; + echo "

El tamaño excede de $tamanoMaximo Mbytes

"; + return false; + } + + if (move_uploaded_file($tmp_name, $carpetaDestino . $nombre)) { + return true; + } else { + echo "

Error al enviar el fichero al servidor

"; + echo "

Error de servidor en el almacenamiento del fichero

"; + return false; + } + } + ?> +
+ + + \ No newline at end of file diff --git a/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/recibe_formulario_hotel_profesor.php b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/recibe_formulario_hotel_profesor.php new file mode 100644 index 0000000..6701683 --- /dev/null +++ b/Practicas/Practicas_PHP/ejercicios/envio_repaso_examen/recibe_formulario_hotel_profesor.php @@ -0,0 +1,110 @@ + + + + + + + Reservas hotel + + + +
+ "; + // Identificador reserva + $id_reserva = time() . "_" . rand(1000, 9999); + // Fecha de la reserva + $fecha_reserva = date('d-m-Y H:i:s', time()); + // Formatear los datos para escribir en el archivo + $datosReserva = "Id reserva: " . $id_reserva . "\n" . + "Fecha de reserva: " . $fecha_reserva . "\n" . + "Fecha de entrada: " . $entrada . "\n" . + "Fecha de salida: " . $salida . "\n" . + "Tipo de habitación: " . $habitacion . "\n" . + "Regimen de alojamiento: " . $regimen . "\n" . + "Días Spa: " . $spa . "\n" . + "Días Guia: " . $guia . "\n" . + "Duración estancia: " . $noches . "\n" . + "Coste Total: " . $coste . "\n" . + "Nombre: " . $nombre . "\n" . + "Correo electrónico: " . $email . "\n" . + "Teléfono: " . $telefono . "\n" . + "DNI: " . $dni . "\n\n"; + // Mensaje correo para el hotel + // Correo electrónico de destino + $destinatario = "appasinxx@gmail.com"; + // Asunto del correo electrónico + $asunto = "Hay una nueva reserva: $id_reserva "; + $headers = "Reply-To: " . $email . "\r\n"; + // Envía el correo electrónico + //mail($destinatario, $asunto, $datosReserva,$headers); + + // Ruta del archivo de reserva (dentro del directorio "reservas") + $archivoReserva = "reservas/reserva_" . $id_reserva . ".txt"; + // Crear la ficha de reserva + if (file_put_contents($archivoReserva, $datosReserva) !== false) { + echo "

Reserva confirmada !

"; + echo "
"; + } else { + echo "

Error al registrar la reserva!

"; + echo "
"; + } + // Escribir en listado de reservas + $lista_reservas = "listado_reservas.txt"; + $datos_reserva = $id_reserva . "/_/" . $nombre . "/_/" . $email . "/_/" . $telefono . "/_/" . $entrada . "/_/" . $salida . "/_/" . $fecha_reserva . "/_/" . $noches . "\r\n"; + file_put_contents($lista_reservas, $datos_reserva, FILE_APPEND | LOCK_EX); + // Mensaje cliente confirmación de opciones + echo nl2br($info); + echo "
"; + echo "
"; + echo "

Esta es la información detallada de tu reserva:

"; + echo nl2br($datosReserva); + // Recibir DNI cliente + // Directorio donde se guardarán los archivos subidos + $directorio_subida = "dni_clientes/"; + // Nombre del archivo y ruta de destino + $nombre_archivo = $_FILES["dnifile"]["name"]; + $nombre_archivo_final = $dni . '_' . $id_reserva . '_' . $nombre_archivo; + $ruta_archivo = $directorio_subida . $nombre_archivo_final; + // Tamaño máximo permitido (2MB) + $tamano_maximo = 2 * 1024 * 1024; + // Obtiene la extensión del archivo en minúsculas + $extension_archivo = strtolower(pathinfo($_FILES["dnifile"]["name"], PATHINFO_EXTENSION)); + // Array de extensiones permitidas + $extensiones_permitidas = array("jpg", "jpeg", "pdf"); + // Verifica si el archivo es una extensión permitida y no excede el tamaño máximo + if (in_array($extension_archivo, $extensiones_permitidas) && $_FILES["dnifile"]["size"] <= $tamano_maximo) { + // Intenta mover el archivo al directorio de destino + if (move_uploaded_file($_FILES["dnifile"]["tmp_name"], $ruta_archivo)) { + echo "Su DNI ha sido recibido."; + } else { + echo "Lo siento, hubo un error al subir su DNI."; + } + } else { + echo "Lo siento, solo se permiten archivos en formato JPG o PDF con un tamaño máximo de 2MB."; + } + } else { + // Si no se recibieron datos por POST, mostrar un mensaje de error + echo "Error: No se recibieron datos del formulario."; + } + ?> +
+ + \ No newline at end of file