This commit is contained in:
Marklogo 2024-02-29 13:50:34 +01:00
parent d72a399125
commit ac6c9c7d8a
6 changed files with 374 additions and 4 deletions

View File

@ -0,0 +1,117 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>INTRO8 POO EN PHP</title>
</head>
<body>
<h1>POO EN PHP</h1>
<h2>Clases en POO</h2>
<?php
// Definición de la clase
class Coche {
// Propiedades
public $marca;
public $modelo;
public $color;
// Método constructor
public function __construct($marca, $modelo, $color) {
$this->marca = $marca;
$this->modelo = $modelo;
$this->color = $color;
}
// Método para mostrar la información del coche
public function mostrarInformacion() {
echo "Marca: " . $this->marca . "<br>";
echo "Modelo: " . $this->modelo . "<br>";
echo "Color: " . $this->color . "<br>";
}
}
// Creación de un objeto (instancia de la clase Coche)
$miCoche = new Coche("Toyota", "Corolla", "Rojo");
var_dump($miCoche);
$miCoche->marca = "Seat"; // Modificar una propiedad
var_dump($miCoche);
// Acceso a las propiedades del objeto y llamada a un método
echo "<h2>Información de mi coche:</h2>";
$miCoche->mostrarInformacion();
//Herencia
// Definición de la clase hija CocheDeportivo que hereda de Coche (Superclase y subclase)
class CocheDeportivo extends Coche {
// Propiedades adicionales para un coche deportivo
public $potencia;
public $aceleracion;
// Método constructor
public function __construct($marca, $modelo, $color, $potencia, $aceleracion) {
// Llamada al constructor de la clase padre
parent::__construct($marca, $modelo, $color);
// Asignación de las propiedades adicionales
$this->potencia = $potencia;
$this->aceleracion = $aceleracion;
}
// Método para mostrar información específica de un coche deportivo
public function mostrarInformacionDeportiva() {
//parent::mostrarInformacion();
echo "Potencia: " . $this->potencia . "<br>";
echo "Aceleración: " . $this->aceleracion . "<br>";
}
}
// Creación de un objeto CocheDeportivo
$miCocheDeportivo = new CocheDeportivo("Ferrari", "458 Italia", "Rojo", "570 CV", "3,4 segundos");
// Acceso a los métodos de la clase base y de la clase hija
echo "<h2>Información de mi coche deportivo:</h2>";
$miCocheDeportivo->mostrarInformacion(); // Método de la clase base
$miCocheDeportivo->mostrarInformacionDeportiva(); // Método de la clase hija
// Encapsulación
class Persona {
private $nombre;
private $edad;
public function __construct($nombre, $edad) {
$this->nombre = $nombre;
$this->edad = $edad;
}
public function getNombre() {
return $this->nombre;
}
public function setNombre($nombre) {
$this->nombre = $nombre;
}
public function getEdad() {
return $this->edad;
}
public function setEdad($edad) {
$this->edad = $edad;
}
}
$persona = new Persona("Juan", 30);
//$persona->nombre = "Pedro";Acceso privado
//echo $persona->nombre; // Acceso privado
echo "Nombre: " . $persona->getNombre() . ", Edad: " . $persona->getEdad();
?>
</body>
</html>

View File

@ -84,8 +84,6 @@
?>
<form method="post">
<p>*ID de reserva para borrar: </p>
<input type="text" name="idReserva" value="" id="idReserva" size="15" minlength="15" maxlength="15" placeholder="Id de reserva" />

View File

@ -0,0 +1,129 @@
<!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 '<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>";
//Busco la coincidencia
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 botón de borrar con un formulario dentro de la misma celda
echo "<td>";
echo "<form method='post'>";
echo "<input type='hidden' name='Id_borrar' value='$arrayLinea[0]'>";
echo "<input type='submit' name='borrar' value='Borrar'>";
echo "</form>";
echo "</td>";
echo "</tr>";
}
}
// Cierrro la tabla
echo "</table>";
//cerrar el archivo
fclose($archivo);
// Vacio los datos de POST
unset($_POST);
}
?>
<br>
<form method="post">
<p>*ID de alquiler para borrar: </p><input type="text" name="Id_borrar" value="" id="Id_borrar" size="15" minlength="15" maxlength="15" placeholder="Id Alquiler" required/>
<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['Id_borrar'])) {
$borrado = $_POST['Id_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(trim($id_alquiler) !== trim($borrado)) {
fwrite($accesoTemporal, $linea);
}
}
fclose($accesoLista);
fclose($accesoTemporal);
// Borrar listado y renombrar el temporal
unlink($listaAlquileres);
rename($temporal, $listaAlquileres);
// Borrar ficha de reserva individual
$ficha_individual = "alquileres/alquiler_" .$borrado.".txt";
if (file_exists($ficha_individual)) {
if (unlink("alquileres/alquiler_" .$borrado.".txt") !== false) {
echo "<div><p>La ficha de reserva de 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()
$dni_archivos = glob("dni_clientes/*_{$borrado}_*");
foreach ($dni_archivos as $dni_aborrar) {
if (unlink($dni_aborrar)) {
echo '<div><p>El archivo ' . $dni_aborrar . ' fue eliminado exitosamente.</p></div>';
} else {
echo '<div><p>Ocurrió un error al intentar eliminar el archivo ' . $dni_aborrar . '.</p></div>';
}
}
// Vacio los datos de POST
unset($_POST);
}
?>
</body>
</html>

View File

@ -0,0 +1,126 @@
<!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>

View File

@ -110,9 +110,9 @@
"<h4> Esta es la informacion detallada de tu reserva ! </h4>" . "<p>" . nl2br($fichaReserva) . "</p>";
}
// Añadir al listado_reservas.txt una línea de reserva
// Añadir al listado_alquileres.txt una línea de reserva
$registroReserva = implode('/_/', [$idReserva, $nombre, $email, $telefono, $fecha_inicio, $fechaReserva, $dias, $tipo]) . "\r\n";
$nombre_archivo = "listado_reservas.txt";
$nombre_archivo = "listado_alquileres.txt";
if (file_put_contents($nombre_archivo, $registroReserva, FILE_APPEND | LOCK_EX) === false) {
$exito = false;
$msgError[] = "Error al guardar la lista de reservas.";