This commit is contained in:
Marklogo 2024-03-05 13:39:21 +01:00
parent cea9405670
commit 2eb0e06e7b
12 changed files with 306 additions and 7 deletions

View File

@ -0,0 +1,73 @@
<?php
/***** Explicación *****/
// array_diff: Compara $claves_a_comprobar con $___SESSION y devuelve los valores de $claves_a_comprobar que no estén presentes en $___SESSION (si están todas, devuelve un array vacío)
// array_keys: Devuelve un array con todas las claves de array
// Comprobación básica => array_diff($claves_a_comprobar, array_keys($___SESSION)
// Forma 1 => array_diff($claves_a_comprobar, array_keys($___SESSION)) === []
// Forma 2 => empty(array_diff($claves_a_comprobar, array_keys($___SESSION)))
// Forma 3 => count(array_diff($claves_a_comprobar, array_keys($___SESSION))) === 0
/***** Ejemplo *****/
$___SESSION = [
'cero' => 0,
'uno' => '1',
'dos' => 'dos',
'tres' => 3,
'cuatro' => '4',
];
/*----- Caso 1: Todas las claves existen -----*/
$claves_a_comprobar = ['uno', 'dos', 'tres'];
// Forma 1
if(array_diff($claves_a_comprobar, array_keys($___SESSION)) === []) {
echo 'OK-[]' . PHP_EOL;
}
else {
echo 'NOOOO-[]' . PHP_EOL;
}
// Forma 2
if(empty(array_diff($claves_a_comprobar, array_keys($___SESSION)))) {
echo 'OK-EMPTY' . PHP_EOL;
}
else {
echo 'NOOOO-EMPTY' . PHP_EOL;
}
// Forma 3
if(count(array_diff($claves_a_comprobar, array_keys($___SESSION))) === 0) {
echo 'OK-COUNT' . PHP_EOL;
}
else {
echo 'NOOOO-COUNT' . PHP_EOL;
}
/*----- Caso 2: No existen todas las claves -----*/
$claves_a_comprobar = ['uno', 'two', 'tres'];
// Forma 1
if(array_diff($claves_a_comprobar, array_keys($___SESSION)) === []) {
echo 'OK-[]' . PHP_EOL;
}
else {
echo 'NOOOO-[]' . PHP_EOL;
}
// Forma 2
if(empty(array_diff($claves_a_comprobar, array_keys($___SESSION)))) {
echo 'OK-EMPTY' . PHP_EOL;
}
else {
echo 'NOOOO-EMPTY' . PHP_EOL;
}
// Forma 3
if(count(array_diff($claves_a_comprobar, array_keys($___SESSION))) === 0) {
echo 'OK-COUNT' . PHP_EOL;
}
else {
echo 'NOOOO-COUNT' . PHP_EOL;
}

View File

@ -0,0 +1,21 @@
<?php
// Mecanismo cookies
//1.Creación en el servidor
//2.Almacenamiento en el cliente
//3.Envío al servidor con cada solicitud Http
//4.Procesamiento en el servidor
//5.Actualización o eliminación
// Establecer cookies -- No estrán disponibles hasta la siguiente petición HTTP.
//setcookie($nombre, $valor = "", $vencimiento = 0, $ruta = "", $dominio = "", $seguro = false, $httponly = false)
//$vencimiento en tiempo UNIX si se establece en 0 se convierte en cookie de sesión.
//$ruta en la que estará disponible, por defecto directorio actual, si se establece '/' será valida para todo el dominio.
//$dominio en el que estará disponible, por defecto para el dominio actual.
//$seguro si se envía solo por https(true)
//$httponly si es accesible desde javascript (false)
setrawcookie("nombre", "Juan", time() + 3600, "/"); // Cookie con nombre "nombre" y valor "Juan", válida por una hora
setcookie("idioma", "es", time() + (86400 * 30), "/"); // Cookie con nombre "idioma" y valor "es", válida por 30 días
setcookie("ultima_visita", date("Y-m-d H:i:s"), time() + 3600, "/"); // Cookie con nombre "ultima_visita" y valor de la fecha y hora actual, válida por una hora
?>

View File

@ -0,0 +1,16 @@
<?php
// Acceder a las cookies desde otra página
// Leer cookies
$nombre = $_COOKIE['nombre'];
$idioma = $_COOKIE['idioma'];
$ultimaVisita = $_COOKIE['ultima_visita'];
var_dump($_COOKIE);
// Mostrar valores de las cookies
echo "Hola, $nombre. ";
echo "Tu idioma preferido es $idioma. ";
echo "Tu última visita fue el $ultimaVisita.";
?>

View File

@ -4,7 +4,9 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="estilos.css" />
<?php
echo $_COOKIE['tema'] === 'claro' ? '<link rel="stylesheet" type="text/css" href="estilos_claro.css" />'
: '<link rel="stylesheet" type="text/css" href="estilos.css" />' ?>
<title>Busqueda y eliminacion de registros</title>
</head>
@ -83,7 +85,7 @@
{
return "<form method=\"POST\" style=\"border: none; padding:0.2rem; min-width: auto; margin:0\">
<input type=\"hidden\" name=\"idReserva\" value=\"$idReserva\" style=\"border: none; padding:0; min-width: auto; margin:0\">
<input type=\"submit\" name=\"borrar\" value=\"Eliminar\" style=\"border: none; background-color:#5e1622; cursor: pointer; padding:0.2rem 0.4rem; min-width: auto; margin:0\">
<input type=\"submit\" name=\"borrar\" value=\"Eliminar\" style=\"cursor: pointer; padding:0.2rem 0.4rem; min-width: auto; margin:0\">
</form>";
}
?>

View File

@ -0,0 +1,135 @@
@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: #ffffff;;
border:2px solid #9d2236;
color:#9d2236;
}
td,th {
text-align: center;
padding:3px;
}
a {
color: #9d2236;
text-decoration: underline;
}
form,div {
width:80%;
min-width:350px;
background-color: #ffffff;
border:2px solid #9d2236;
padding:10px;
box-sizing:border-box;
color:#9d2236;
font-size:18px;
margin:auto;
margin-top: 20px;
}
fieldset {
background-color: #ffffff;
border:2px solid #9d2236;
padding:10px;
box-sizing:border-box;
}
#flex {
display:flex;
justify-content:space-between;
}
label {
margin-right:10px;
margin-bottom: 5px;
}
input {
color:#9d2236;
background-color: #ffffff;
border:2px solid #9d2236;
padding: 2px;
min-width: 300px;
}
legend {
font-weight: bold;
font-size: 20px;
margin:10px;
}
select,option {
color:#9d2236;
background-color: #ffffff;
border:2px solid #9d2236;
padding: 2px;
}
textarea {
background-color: #ffffff;
width:100%;
height:200px;
color:#9d2236;
border:2px solid #9d2236;
padding:10px;
box-sizing:border-box;
margin-left: 10px;
}
input[type=submit], input[type=button],input[type=reset] {
background-color: #ffffff;
color:#9d2236;
font-size: 16px;
font-weight: lighter;
margin-top: 10px;
padding: 5px;
border:2px solid #9d2236;
border-radius:5px;
box-shadow: 1px 2px 3px #000;
}
/* 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;
}
}

View File

@ -5,7 +5,9 @@
<meta charset="utf-8">
<title>Reservas hotel</title>
<link rel="stylesheet" type="text/css" href="estilos.css" />
<?php
echo $_COOKIE['tema'] === 'claro' ? '<link rel="stylesheet" type="text/css" href="estilos_claro.css" />'
: '<link rel="stylesheet" type="text/css" href="estilos.css" />' ?>
<script>
// Función obtener() que realizará la captación de datos,los cálculos y la escritura del mensaje de info

View File

@ -1,2 +1,3 @@
1709555328_6286/_/Marcos Lopez Gomez/_/marklogo@gmail.com/_/649348375/_/2024-03-08/_/2024-03-21/_/04-03-2024 12:28:48/_/13
1709555366_8127/_/Marcos Lopez Gomez/_/marklogo1@gmail.com/_/649348375/_/2024-03-05/_/2024-03-10/_/04-03-2024 12:29:26/_/5
1709632003_8349/_/Marcos Lopez Gomez/_/marklogo1@gmail.com/_/649348375/_/2024-03-14/_/2024-03-21/_/05-03-2024 09:46:43/_/7

View File

@ -1,14 +1,37 @@
<?php
// Leer cookies
$tema = isset($_COOKIE['tema']) ? $_COOKIE['tema'] : 'oscuro';
if ($_SERVER["REQUEST_METHOD"] == "GET" && !empty($_GET)) {
$tema = $_GET['tema'];
setcookie("tema", $tema, time() + (86400 * 30), "/");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="estilos.css" />
<?php
echo $tema === 'claro' ? '<link rel="stylesheet" type="text/css" href="estilos_claro.css" />'
: '<link rel="stylesheet" type="text/css" href="estilos.css" />' ?>
<title>Login</title>
</head>
<body>
<div>
<h3>Seleccione su tema preferido</h3>
<form method="get">
<label for="claro">Tema Claro</label>
<input style="min-width: auto;" type="radio" id="claro" name="tema" value="claro" <?php echo $tema === 'claro' ? 'checked' : '' ?>>
<label for="oscuro">Tema Oscuro</label>
<input style="min-width: auto;" type="radio" id="oscuro" name="tema" value="oscuro" <?php echo $tema === 'oscuro' ? 'checked' : '' ?>> <br>
<input type="submit" value="Guardar">
</form>
</div>
<div>
<h2>Login de usuario</h2>
<form method="post">

View File

@ -4,17 +4,25 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="estilos.css" />
<?php
echo $_COOKIE['tema'] === 'claro' ? '<link rel="stylesheet" type="text/css" href="estilos_claro.css" />'
: '<link rel="stylesheet" type="text/css" href="estilos.css" />' ?>
<title>Perfil de cliente</title>
</head>
<body>
<?php
// Leer cookies
$contador = isset($_COOKIE['contador']) ? $_COOKIE['contador'] : 1;
setcookie("contador", $contador + 1, 0, "/");
session_start();
$nombre_usuario = $_SESSION['nombre'];
$tipo_usuario = $_SESSION['tipo'];
$email_usuario = $_SESSION['email'];
echo "<div>
<h2>Bienvenido $nombre_usuario </h2>
<span>Has visitado la pagina $contador veces.</span> <br>
<a href=\"logout.php\">Cerrar session</a>
</div> <br>";
busqueda($email_usuario);

View File

@ -3,7 +3,9 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="estilos.css" />
<?php
echo $_COOKIE['tema'] === 'claro' ? '<link rel="stylesheet" type="text/css" href="estilos_claro.css" />'
: '<link rel="stylesheet" type="text/css" href="estilos.css" />' ?>
<title>Reservas Hotel!!!</title>
</head>
<body>

View File

@ -4,7 +4,9 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="estilos.css" />
<?php
echo $_COOKIE['tema'] === 'claro' ? '<link rel="stylesheet" type="text/css" href="estilos_claro.css" />'
: '<link rel="stylesheet" type="text/css" href="estilos.css" />' ?>
<title>Registro de personal de hotel</title>
</head>

View File

@ -0,0 +1,14 @@
Id reserva: 1709632003_8349
Fecha de reserva: 05-03-2024 09:46:43
Fecha de entrada: 2024-03-14
Fecha de salida: 2024-03-21
Tipo de habitación: simple
Regimen de alojamiento: desayuno
Días Spa: 0
Días Guia: 0
Duración estancia: 7
Coste Total: 719.95
Nombre: Marcos Lopez Gomez
Correo electrónico: marklogo1@gmail.com
Teléfono: 649348375
DNI: 33340763D