IFCD0210/Practicas/Practicas_PHP/ejercicios/examen/buscador_alquileres_check.php
2024-02-29 13:50:34 +01:00

127 lines
4.0 KiB
PHP

<!Doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Buscador de reservas de alquiler</title>
<link rel="stylesheet" type="text/css" href="estilos.css" />
</head>
<body>
<form method="post">
<p>*Término a buscar: </p><p><input type="text" name="busqueda" id="busqueda" size="30" placeholder="Introduzca la palabra de busqueda" required></p>
<input type="submit" name="buscar" value="Buscar" >
</form>
<?php
//Suponiendo que el archivo caracteres.php está en la misma carpeta:
include('caracteres.php');
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['buscar'])) {
// Busca una palabra
$busqueda=isset($_REQUEST['busqueda'])? $_REQUEST['busqueda']: "" ;
//Abrir el archivo
$archivo = fopen('listado_alquileres.txt', 'r');
//Leer el archivo
if (!$archivo) { echo("Error abriendo archivo"); }
// Abro la tabla
echo '<br>';
echo '<form method="post">';
echo '<table border="2">';
echo "<tr><th>ID Alquiler</th><th>Nombre</th><th>Correo</th><th>Teléfono</th><th>Fecha de inicio</th><th>Fecha de alquiler</th><th>Duración</th><th>Tipo de vehículo</th><th>Borrar</th></tr>";
while (($linea = fgets($archivo)) != false) {
if(strpos(eliminar_tildes(strtolower($linea)), eliminar_tildes(strtolower($busqueda))) !== false){
// Mostrar la tabla con array
$arrayLinea=explode('/_/', $linea);
echo "<tr><td>$arrayLinea[0]</td><td>$arrayLinea[1]</td><td>$arrayLinea[2]</td><td>$arrayLinea[3]</td><td>$arrayLinea[4]</td><td>$arrayLinea[5]</td><td>$arrayLinea[6]</td><td>$arrayLinea[7]</td>";
// Añadir un checkbox con el ID del alquiler como valor
echo "<td><input type='checkbox' name='Ids_borrar[]' value='$arrayLinea[0]'></td>";
echo "</tr>";
}
}
// Cierro la tabla
echo "</table>";
//cerrar el archivo
fclose($archivo);
// Vacio los datos de POST
unset($_POST);
}
?>
<br>
<input type="submit" name="borrar" value="Borrar reserva de alquiler" >
</form>
<?php
// Borrar reservas de alquiler
$listaAlquileres = "listado_alquileres.txt";
$temporal = "temp.txt";
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['borrar']) && isset($_POST['Ids_borrar'])) {
$borrado = $_POST['Ids_borrar'];
$accesoLista = fopen($listaAlquileres, 'r');
$accesoTemporal = fopen($temporal, 'w');
// Buscar la reserva por ID
while (($linea = fgets($accesoLista)) !== false) {
// Obtener el ID de reserva de la línea actual
$arrayLinea = explode('/_/', $linea);
$id_alquiler = $arrayLinea[0];
// Si el ID de reserva no coincide
if(in_array($id_alquiler,$borrado) === false) {
fwrite($accesoTemporal, $linea);
}
}
fclose($accesoLista);
fclose($accesoTemporal);
// Borrar listado y renombrar el temporal
unlink($listaAlquileres);
rename($temporal, $listaAlquileres);
// Borrar ficha de reserva individual
foreach ($borrado as $alquiler) {
$ficha_individual = "alquileres/alquiler_" .$alquiler.".txt";
if (file_exists($ficha_individual)) {
if (unlink("alquileres/alquiler_" .$alquiler.".txt") !== false) {
echo "<div><p>La ficha de reserva de alquiler: $alquiler se ha borrado</p></div>";
}
} else {
echo "<div><p>La ficha de reserva de alquiler no se ha encontrado</p></div>";
}
}
// Borrar DNI con glob()
foreach ($borrado as $dnialquiler) {
$dni_archivos = glob("dni_clientes/*_{$dnialquiler}_*");
if (unlink($dni_archivos[0])) {
echo '<div><p>El archivo ' . $dnialquiler . ' fue eliminado exitosamente.</p></div>';
} else {
echo '<div><p>Ocurrió un error al intentar eliminar el archivo ' . $dnialquiler . '.</p></div>';
}
}
// Vacio los datos de POST
unset($_POST);
}
?>
</body>
</html>