README
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque elementum purus et justo ornare placerat. Nulla mattis faucibus est quis congue. Praesent placerat nibh eget ex viverra pretium. Cras a maximus nulla. Vestibulum dictum vulputate odio ac feugiat. In luctus urna risus, vel condimentum felis tincidunt ac. Nulla id massa eu odio eleifend sodales id luctus enim. Sed ligula sapien, sodales nec venenatis id, interdum eu velit. Maecenas at sollicitudin massa. Integer in lectus in lectus luctus varius efficitur non massa. Aliquam consectetur tempus eros, mollis maximus massa ullamcorper a. Vivamus porttitor purus mauris, at molestie dui molestie at. Donec cursus interdum sem id fringilla. Proin felis eros, malesuada non vestibulum a, lacinia non arcu.
Sed ullamcorper dolor sed dolor malesuada, vitae imperdiet sapien porta. In lobortis cursus risus et gravida. Nunc porttitor ex in ex sollicitudin, nec tincidunt sem rutrum. Aliquam et sollicitudin turpis. Curabitur aliquam efficitur enim at tincidunt. Integer neque leo, elementum eget justo quis, fringilla mattis lectus. Cras interdum elementum justo, id molestie purus tincidunt ac.
Ut elit lorem, posuere in congue lacinia, vulputate vitae orci. Curabitur blandit, justo vitae pharetra placerat, magna felis rutrum leo, a tempor urna felis non lacus. Maecenas vel urna nibh. Donec metus turpis, tincidunt quis neque quis, euismod elementum velit. Morbi tincidunt ante malesuada dictum molestie. Praesent consequat risus vitae rutrum luctus. Proin eu condimentum nibh. Nam magna mi, blandit vel condimentum ut, consequat in risus. Curabitur mollis eros at lorem tempor efficitur.
In volutpat, mauris vitae finibus feugiat, quam diam fermentum arcu, vitae porta leo enim sit amet mauris. In vulputate semper odio a gravida. Proin eget blandit leo, eu tincidunt augue. Quisque eget congue purus. Mauris at ullamcorper mi. Aliquam eget hendrerit mauris. Mauris sollicitudin urna ut pellentesque tempus. Ut commodo volutpat faucibus. Vestibulum vehicula mattis feugiat. Duis a nibh mauris. Nulla ipsum tellus, condimentum eu laoreet vel, consequat vel lacus. Nam eget dui ex. Integer mollis rhoncus dictum. Suspendisse vel augue semper, aliquam eros id, mattis tellus. Sed interdum nisi sed tincidunt dapibus. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Proin aliquet ante et dui posuere ultricies. Nulla quis nisi sed diam egestas congue. Vestibulum sit amet fringilla arcu, id ultricies sem. Mauris fringilla quam erat, ut dictum erat bibendum non. Suspendisse potenti. In augue libero, fermentum at ultricies vitae, tincidunt vitae odio. Nam eu magna tempus, condimentum massa quis, lobortis turpis. Curabitur quis magna vitae leo ultricies consequat. Fusce lobortis eros quam, sed fermentum sem blandit sit amet. Curabitur velit massa, efficitur in lacinia id, iaculis nec mauris.
SANDRA
PHP
login.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Login</title>
</head>
<body>
<?php
session_start();
if (isset($_POST["btnlogin"])) {
$errores;
if (!isset($_POST["id"]) || trim($_POST["id"]) == "") {
$errores[] = "Introduzca el id";
} else {
$id = $_POST["id"];
$idSaneado = filter_var($id, FILTER_SANITIZE_STRING);
}
if (!isset($_POST["contrasenya"]) || trim($_POST["contrasenya"]) == "") {
$errores[] = "Debe rellenar la contraseña";
} else {
$clave = $_POST["contrasenya"];
$claveSaneada = filter_var($clave, FILTER_SANITIZE_STRING);
}
if (!isset($errores)) {
$con = mysqli_connect("localhost", "root", "");
$db = mysqli_select_db($con, "solicitud_vacaciones");
if (!$db) {
mysqli_close($con);
die("Error al conectar a la BD");
}
$sql = "select id,contrasenya from empleado where id ='" . $idSaneado . "'";
$res = mysqli_query($con, $sql);
if (!$res) {
mysqli_close($con);
die("Error al hacer la consulta de sql");
}
if (mysqli_num_rows($res) > 0) {
$row = mysqli_fetch_assoc($res);
if ($claveSaneada == $row["contrasenya"]) {
//if (password_verify($claveSaneada, $row["contrasenya"])) {
setcookie("id", $idSaneado, time() + (60 * 60 * 24 * 30)); //Son 43800 minutos por 60 segundos para tenerlo en segundos
$_SESSION["id"] = $row["id"];
header("location: inicio.php");
//}
}
}
mysqli_close($con);
$errores[] = "id o contraseña incorrectos";
}
if (isset($errores)) {
echo "<ul>";
foreach ($errores as $error) {
echo "<li>";
echo ($error);
echo "</li>";
}
echo "</ul>";
}
} else if (isset($_POST["btncancel"])) {
header("location: inicio.php");
} else if (isset($_POST["btnOlvidaDatos"])) {
setcookie("id", $idSaneado, time() + (-1));
header("location: login.php");
}
?>
<h1>Iniciar sesión</h1>
<form action="login.php" method="post">
<p>
<span>ID de id:</span>
<input type="text" name="id" value="<?php
if (isset($id)) {
echo $id;
} else {
if (isset($_COOKIE["id"])) {
echo $_COOKIE["id"];
}
}
?>" />
</p>
<p>
<span>Contraseña:</span>
<input type="password" name="contrasenya" value="<?php
if(isset($clave)){
echo $clave;
}
?>
"/>
</p>
<input type="submit" value="Cancelar" name="btncancel" />
<input type="submit" value="Iniciar sesión" name="btnlogin" />
</form>
<form action="login.php" method="post">
<input type="submit" value="Olvidar datos" name="btnOlvidaDatos" />
</form>
</body>
</html>
inicio.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Gestor de Vacaciones</title>
</head>
<body>
<?php
session_start();
if (isset($_POST["btnlogout"])) {
session_unset();
session_destroy();
header("location: login.php");
} else if (isset($_POST["btnSolicitaVacaciones"])) {
header("location: solicitarVacaciones.php");
} else if (!isset($_SESSION["id"])) {
echo '<form action="login.php" method="post">
<input type="submit" value="Iniciar sesión" name="btnIniciarSesion" />
</form>
<br />';
} else if (isset($_POST["btnCancelar"])) {
$con = mysqli_connect("localhost", "root", "");
$db = mysqli_select_db($con, "solicitud_vacaciones");
if (!$db) {
mysqli_close($con);
die("Error al conectar a la BD");
}
//SENTENCIA SQL PARA CAMBIAR EL ESTADO A CANCELADO
$sql = "update vacaciones set estado = 'Cancelado' where estado = 'Solicitado' and id = " . $_POST["id"] . "";
$resultado = mysqli_query($con, $sql);
mysqli_close($con);
} else if (isset($_POST["btnAprobar"])) {
$con = mysqli_connect("localhost", "root", "");
$db = mysqli_select_db($con, "solicitud_vacaciones");
if (!$db) {
mysqli_close($con);
die("Error al conectar a la BD");
}
$sql2 = "select id,nombreCompleto,vacacionesDisponibles from empleado where id =" . $_POST["idEmpleado"] . "";
$res2 = mysqli_query($con, $sql2);
$row2 = mysqli_fetch_assoc($res2);
$vacacionesDisponibles = $row2["vacacionesDisponibles"];
$diasSobrantesVacaciones = $vacacionesDisponibles - $_POST["numeroDias"];
$sql3 = "update empleado set vacacionesDisponibles = " . $diasSobrantesVacaciones . " where id =" . $_POST["idEmpleado"] . " ";
$resultado = mysqli_query($con, $sql3);
$sql = "update vacaciones set estado = 'Aprobado' where estado = 'Solicitado' and id=" . $_POST["id"] . "";
$resultado = mysqli_query($con, $sql);
mysqli_close($con);
} else if (isset($_POST["btnRechazado"])) {
$con = mysqli_connect("localhost", "root", "");
$db = mysqli_select_db($con, "solicitud_vacaciones");
if (!$db) {
mysqli_close($con);
die("Error al conectar a la BD");
}
//SENTENCIA CAMBIAR ESTADO A RECHAZADO
$sql = "update vacaciones set estado = 'Rechazado' where estado = 'Solicitado' and id =" . $_POST["id"] . "";
$resultado = mysqli_query($con, $sql);
mysqli_close($con);
}
if (isset($_SESSION["id"])) {
$con = mysqli_connect("localhost", "root", "");
$db = mysqli_select_db($con, "solicitud_vacaciones");
if (!$db) {
mysqli_close($con);
die("Error al conectar a la BD");
}
$sql = "select id,nombreCompleto,vacacionesDisponibles from empleado where id ='" . $_SESSION["id"] . "'";
$res = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($res);
echo "<h1>Gestión solicitudes de vacaciones</h1>";
echo "<h2>Usuario: " . $row["id"] . "(" . $row["nombreCompleto"] . ") </h2>";
echo "<h3>Dias de vacaciones disponibles: " . $row["vacacionesDisponibles"] . "</h3>";
?>
<form action="inicio.php" method="post">
<input type="submit" value="Cerrar sesión" name="btnlogout" />
</form>
<br />
<form action="solicitarVacaciones.php" method="post">
<input type="submit" value="Solicitar vacaciones" name="btnSolicitaVacaciones" disabled="disabled" />
</form>
<br />
<?php
$sql = "select id,idEmpleado,inicio,fin,numeroDias,estado from vacaciones";
$resultado = mysqli_query($con, $sql);
echo '<table border="1">
<tr>
<th>ID Empleado</th>
<th>Fecha inicio</th>
<th>Fecha fin</th>
<th>Dias de vacaciones</th>
<th>Estado</th>
<th>Acciones</th>
</tr>';
$row = mysqli_fetch_assoc($resultado);
while (isset($row)) {
echo '
<tr>
<td>' . $row["idEmpleado"] . '</td>
<td>' . $row["inicio"] . '</td>
<td>' . $row["fin"] . '</td>
<td>' . $row["numeroDias"] . '</td>
<td>' . $row["estado"] . '</td>
<td>';
if ($_SESSION["id"] == $row["idEmpleado"] && $row["estado"] == "Solicitado") {
echo '<form action="inicio.php" method="post">
<input type="hidden" value="' . $row["id"] . '" name="id" />
<input type="submit" value="Cancelar" name="btnCancelar" />
</form>';
}
$sql2 = "select id,contrasenya,nombreCompleto,esAdministrador,vacacionesDisponibles from empleado where id=" . $_SESSION["id"] . "";
$resultado2 = mysqli_query($con, $sql2);
$row2 = mysqli_fetch_assoc($resultado2);
if ($row2["esAdministrador"] == 1 && $row["estado"] == "Solicitado") {
//APROBAR
echo '<form action="inicio.php" method="post">
<input type="hidden" value="' . $row["id"] . '" name="id" />
<input type="hidden" value="' . $row["idEmpleado"] . '" name="idEmpleado" />
<input type="hidden" value="' . $row["numeroDias"] . '" name="numeroDias" />
<input type="submit" value="Aprobar" name="btnAprobar" />
</form>';
//RECHAZADO
echo '<form action="inicio.php" method="post">
<input type="hidden" value="' . $row["id"] . '" name="id" />
<input type="submit" value="Rechazado" name="btnRechazado" />
</form>';
}
echo '</td>
</tr>';
$row = mysqli_fetch_assoc($resultado);
}
?>
</table>
<?php
}
?>
</body>
</html>
JS
juegoNuevo.js
var vectorElementos = [
{
'name': 'shell',
'img': 'img/blueshell.png'
},
{
'name': 'star',
'img': 'img/star.png'
},
{
'name': 'bobomb',
'img': 'img/bobomb.png'
},
{
'name': 'mario',
'img': 'img/mario.png'
},
{
'name': '1up',
'img': 'img/1up.png'
},
{
'name': 'thwomp',
'img': 'img/thwomp.png'
},
{
'name': 'bulletbill',
'img': 'img/bulletbill.png'
},
{
'name': 'coin',
'img': 'img/coin.png'
},
{
'name': 'goomba',
'img': 'img/goomba.png'
}
];
carta1 = "";
carta2="";
numeroElementosSeleccionados="";
//Concatenar dos veces el vector
var tableroJuego;
//tableroJuego = vectorElementos;
tableroJuego = vectorElementos.concat(vectorElementos);
console.log(JSON.stringify(tableroJuego));
// DESORDENO LAS CARTAS DE ARRIBA DE MANERA ALEATORIA
var tableroJuegoResultado = new Array(tableroJuego.length);
var numeroAleatorio;
for (let i = 0; i < tableroJuegoResultado.length; i++) {
numeroAleatorio = Math.floor(Math.random() * (tableroJuego.length - 1));
tableroJuegoResultado[i] = tableroJuego[numeroAleatorio];
tableroJuego.splice(numeroAleatorio, 1);
}
//AQUI TENGO QUE HACER LO DE LOS DIV DINAMICAMENTE
var juego = document.getElementById("juego");
var section = document.createElement("section");
section.classList = "grid";
console.log(JSON.stringify(tableroJuegoResultado));
for (let i = 0; i < tableroJuegoResultado.length; i++) {
var card = document.createElement("div");
card.classList = "card";
card.setAttribute("name", tableroJuegoResultado[i]["name"]);
var front = document.createElement("div");
front.classList = "front";
front.onclick = function(){procesarClick()};
var back = document.createElement("div");
back.classList = "back";
back.style.backgroundImage = tableroJuegoResultado[i]["img"];
card.appendChild(front);
card.appendChild(back);
section.appendChild(card);
}
juego.appendChild(section);
function procesarClick() {
var padre = event.target.parentElement;
if (padre.classList.contains("selected") || padre.classList.contains("match")) {
return;
}
}