Aplicación de lista de tareas con PHP y base de datos MySQL

Aplicación de lista de tareas con PHP y base de datos MySQL

Una aplicación de lista de tareas simple que toma las tareas enviadas por el usuario en un formulario y las guarda en una base de datos MySQL. Las tareas también se recuperan de la base de datos y se muestran en la página web con un botón de eliminación al lado de cada tarea. Cuando se hace clic en el botón Eliminar, la tarea se elimina de la base de datos.

Eso es lo que construiremos en este tutorial.

Como de costumbre, creemos nuestra base de datos. Crea una base de datos llamada todo y en él, crea una tabla llamada Tareas. La tabla de tareas tiene solo dos campos, a saber:

  • id – int (10)
  • tarea – varchar (255)

Ahora crea dos archivos:

Ábrelos en un editor de texto y pega el siguiente código dentro del archivo index.php:

<!DOCTYPE html>
<html>
<head>
	<title>ToDo List Application PHP and MySQL</title>
</head>
<body>
	<div class="heading">
		<h2 style="font-style: 'Hervetica';">ToDo List Application PHP and MySQL database</h2>
	</div>
	<form method="post" action="index.php" class="input_form">
		<input type="text" name="task" class="task_input">
		<button type="submit" name="submit" id="add_btn" class="add_btn">Add Task</button>
	</form>
</body>
</html>

Si ve su página ahora en el navegador, se verá así:

Agreguemos el estilo. Directamente debajo de la etiqueta , agregue esta línea para cargar el archivo de hoja de estilo:</p> <pre><code class="language-php"><link rel="stylesheet" type="text/css" href="style.css"></code></pre> <p>Abra el archivo style.css que habíamos creado anteriormente y pegue este código de estilo en él:</p> <pre><code class="language-css">.heading{ width: 50%; margin: 30px auto; text-align: center; color: #6B8E23; background: #FFF8DC; border: 2px solid #6B8E23; border-radius: 20px; } form { width: 50%; margin: 30px auto; border-radius: 5px; padding: 10px; background: #FFF8DC; border: 1px solid #6B8E23; } form p { color: red; margin: 0px; } .task_input { width: 75%; height: 15px; padding: 10px; border: 2px solid #6B8E23; } .add_btn { height: 39px; background: #FFF8DC; color: #6B8E23; border: 2px solid #6B8E23; border-radius: 5px; padding: 5px 20px; } table { width: 50%; margin: 30px auto; border-collapse: collapse; } tr { border-bottom: 1px solid #cbcbcb; } th { font-size: 19px; color: #6B8E23; } th, td{ border: none; height: 30px; padding: 2px; } tr:hover { background: #E9E9E9; } .task { text-align: left; } .delete{ text-align: center; } .delete a{ color: white; background: #a52a2a; padding: 1px 6px; border-radius: 3px; text-decoration: none; } </code></pre> <p><!-- codewithawa.com_300x250: Begin --></p> <p> <!-- codewithawa.com_300x250 End --></p> </p> <p>Si actualizamos nuestro navegador ahora, obtenemos esto:</p> <p></p> <p>Ahora escribimos el código para guardar la tarea enviada en la base de datos. </p> <p>En la parte superior del archivo index.php, antes de la primera línea, agregue este código:</p> <pre><code class="language-php"><?php // initialize errors variable $errors = ""; // connect to database $db = mysqli_connect("localhost", "root", "", "todo"); // insert a quote if submit button is clicked if (isset($_POST['submit'])) { if (empty($_POST['task'])) { $errors = "You must fill in the task"; }else{ $task = $_POST['task']; $sql = "INSERT INTO tasks (task) VALUES ('$task')"; mysqli_query($db, $sql); header('location: index.php'); } } // ...</code></pre> <p>Lo que hace esto es que, si el usuario hace clic en el botón enviar, la tarea se guarda en la base de datos. Sin embargo, si no se completó ninguna tarea en el formulario, el valor de la variable $ errores se establece en <em>‘debe completar la tarea’. </em>Pero eso no se muestra. Vamos a mostrarlo.</p> <p>Peguemos este código dentro del formulario. Directamente debajo de la etiqueta </p> <form>. Como esto:</p> <pre><code class="language-php"><?php if (isset($errors)) { ?> <p><?php echo $errors; ?></p> <?php } ?></code></pre> <p><span id="ezoic-pub-ad-placeholder-113" class="ezoic-adpicker-ad"/><span class="ezoic-ad banner-1 banner-1113 adtester-container adtester-container-113" data-ez-name="codewithawa_com-banner-1"><span id="div-gpt-ad-codewithawa_com-banner-1-0" ezaw="300" ezah="250" style="position:relative;z-index:0;display:inline-block;padding:0;min-height:250px;min-width:300px;" class="ezoic-ad"/></span>Si intentamos enviar el formulario con un valor vacío, obtenemos esto:</p> <p><img width="693" height="194" decoding="async" alt="" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20693%20194'%3E%3C/svg%3E" style="height:25%; width:100%" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2021/12/1639627838_794_Aplicacion-de-lista-de-tareas-con-PHP-y-base-de.png"/><noscript><img width="693" height="194" decoding="async" alt="" src="https://2xsoftware.es/wp-content/uploads/2021/12/1639627838_794_Aplicacion-de-lista-de-tareas-con-PHP-y-base-de.png" style="height:25%; width:100%"/></noscript></p> <p><!-- codewithawa.com_300x250: Begin --></p> <p> <!-- codewithawa.com_300x250 End --></p> <p>Hasta ahora, nuestra aplicación guarda tareas en la base de datos, pero no las muestra.</p> <p>Lo que tenemos que hacer es recuperarlos de la base de datos y luego mostrarlos. </p> <p>Abra el archivo index.php y pegue este código inmediatamente después de la etiqueta </p></form> <p> de cierre del formulario:</p> <pre><code class="language-php">//... // </form> <table> <thead> <tr> <th>N</th> <th>Tasks</th> <th style="width: 60px;">Action</th> </tr> </thead> <tbody> <?php // select all tasks if page is visited or refreshed $tasks = mysqli_query($db, "SELECT * FROM tasks"); $i = 1; while ($row = mysqli_fetch_array($tasks)) { ?> <tr> <td> <?php echo $i; ?> </td> <td class="task"> <?php echo $row['task']; ?> </td> <td class="delete"> <a href="index.php?del_task=<?php echo $row['id'] ?>">x</a> </td> </tr> <?php $i++; } ?> </tbody> </table></code></pre> <p>Si ingresamos una tarea en el formulario y presionamos el botón de enviar, obtenemos esto:</p> <p><img width="692" height="177" decoding="async" alt="" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20692%20177'%3E%3C/svg%3E" style="height:24%; width:100%" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2021/12/1639627838_482_Aplicacion-de-lista-de-tareas-con-PHP-y-base-de.png"/><noscript><img width="692" height="177" decoding="async" alt="" src="https://2xsoftware.es/wp-content/uploads/2021/12/1639627838_482_Aplicacion-de-lista-de-tareas-con-PHP-y-base-de.png" style="height:24%; width:100%"/></noscript></p> <p>¡Bien! </p> <p>Hagamos que nuestro botón de borrar funcione. En la parte superior de la página, después del bloque if que guarda la tarea en la base de datos, agregue este código:</p> <pre><code class="language-php"> // delete task if (isset($_GET['del_task'])) { $id = $_GET['del_task']; mysqli_query($db, "DELETE FROM tasks WHERE id=".$id); header('location: index.php'); } ?></code></pre> <p>Eso es todo. Si hacemos clic en el pequeño botón ‘x’ ahora contra una tarea, esa tarea se elimina de la base de datos.</p> <h3>Conclusión</h3> <p>Espero que esto te ayude. Una característica que le recomiendo que agregue a esta aplicación solo para ejercitar aún más sus habilidades es agregar la función de edición donde una publicación se puede actualizar incluso después de haber sido creada. Sugerencia: siga mi tutorial sobre CRUD: cree, edite, actualice y elimine publicaciones con la base de datos MySQL</p> <p>Gracias: D</p> <p>Awa Melvine</p> <h3> </h3> </p></div> <p><script>(function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.11&appId=187693445124711"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script></p> <div class="kk-star-ratings kksr-valign-bottom kksr-align-center " data-payload="{"align":"center","id":"1133","slug":"default","valign":"bottom","reference":"auto","count":"666","readonly":"","score":"4.6","best":"5","gap":"4","greet":"Valora este artculo post","legend":"4.6\/5 - (666 votos)","size":"24","width":"126.8","_legend":"{score}\/{best} - ({count} {votes})"}"> <div class="kksr-stars"> <div class="kksr-stars-inactive"> <div class="kksr-star" data-star="1" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> <div class="kksr-star" data-star="2" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> <div class="kksr-star" data-star="3" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> <div class="kksr-star" data-star="4" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> <div class="kksr-star" data-star="5" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> </div> <div class="kksr-stars-active" style="width: 126.8px;"> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 24px; height: 24px;"></div> </div> </div> </div> <div class="kksr-legend"> 4.6/5 - (666 votos) </div> </div> <div class="text-base link inline"> </div> </div> </article> <div class="mx-auto yuki-max-w-content"> <div class="yuki-socials yuki-post-socials yuki-socials-custom yuki-socials-rounded yuki-socials-solid"> <a class="yuki-social-link" target="_blank" rel="nofollow" style="--yuki-official-color: #557dbc;" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2F2xsoftware.es%2F2021%2F12%2F16%2Faplicacion-de-lista-de-tareas-con-php-y-base-de-datos-mysql%2F"> <span class="yuki-social-icon"> <i class="fab fa-facebook"></i> </span> </a> <a class="yuki-social-link" target="_blank" rel="nofollow" style="--yuki-official-color: #7acdee;" href="https://twitter.com/share?url=https%3A%2F%2F2xsoftware.es%2F2021%2F12%2F16%2Faplicacion-de-lista-de-tareas-con-php-y-base-de-datos-mysql%2F&text=Aplicaci%C3%B3n%20de%20lista%20de%20tareas%20con%20PHP%20y%20base%20de%20datos%20MySQL"> <span class="yuki-social-icon"> <i class="fab fa-twitter"></i> </span> </a> </div> </div> <div class="yuki-max-w-content mx-auto"> <nav class="navigation yuki-post-navigation" aria-label="<span class="nav-subtitle screen-reader-text">Page</span>"> <h2 class="screen-reader-text"><span class="nav-subtitle screen-reader-text">Page</span></h2> <div class="nav-links"><div class="nav-previous"><a href="https://2xsoftware.es/2021/12/16/registro-de-usuario-y-verificacion-de-correo-electronico-php-y-mysql/" rel="prev"><div class="prev-post-thumbnail post-thumbnail"><img width="800" height="450" class="wp-post-image" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20800%20450'%3E%3C/svg%3E" alt="2xsoftware - Blog" data-lazy-src="https://2xsoftware.es/wp-content/themes/yuki-blogger/assets/images/fallback-image.png" /><noscript><img width="800" height="450" class="wp-post-image" src="https://2xsoftware.es/wp-content/themes/yuki-blogger/assets/images/fallback-image.png" alt="2xsoftware - Blog" /></noscript><i class="fas fa-arrow-left-long"></i></div><div class="item-wrap px-gutter"><span class="item-label">Previous Post</span><span class="item-title">Registro de usuario y verificación de correo electrónico PHP y MySQL</span></div></a></div><div class="nav-next"><a href="https://2xsoftware.es/2021/12/16/como-crear-un-blog-en-php-y-una-base-de-datos-mysql-db-design/" rel="next"><div class="next-post-thumbnail post-thumbnail"><img width="300" height="187" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20187'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image" alt="Cómo crear un blog en PHP y una base de datos MySQL - DB Design" decoding="async" data-lazy-srcset="https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-300x187.png 300w, https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-1024x638.png 1024w, https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-768x479.png 768w, https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-1536x957.png 1536w, https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-2048x1276.png 2048w" data-lazy-sizes="(max-width: 300px) 100vw, 300px" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-300x187.png" /><noscript><img width="300" height="187" src="https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-300x187.png" class="attachment-medium size-medium wp-post-image" alt="Cómo crear un blog en PHP y una base de datos MySQL - DB Design" decoding="async" srcset="https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-300x187.png 300w, https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-1024x638.png 1024w, https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-768x479.png 768w, https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-1536x957.png 1536w, https://2xsoftware.es/wp-content/uploads/2021/12/complete-blog-php-mysql-database-2.png.2018-02-15.1518679265-2048x1276.png 2048w" sizes="(max-width: 300px) 100vw, 300px" /></noscript><i class="fas fa-arrow-right-long"></i></div><div class="item-wrap px-gutter"><span class="item-label">Next Post</span><span class="item-title">Cómo crear un blog en PHP y una base de datos MySQL – DB Design</span></div></a></div></div> </nav></div> <div class="yuki-max-w-content mx-auto"> <div class="yuki-related-posts-wrap yuki-heading yuki-heading-style-1"> <h3 class="heading-content uppercase my-gutter">Related Posts</h3> <div class="flex flex-wrap yuki-related-posts-list"> <div class="card-wrapper"> <article data-card-layout="archive-grid" class="card overflow-hidden h-full post-5728 post type-post status-publish format-standard has-post-thumbnail hentry category-tutoriales tag-2xsoftware tag-archivos tag-cambios tag-monitor tag-para tag-process tag-procmon tag-rastrear tag-registros tag-uso card-thumb-motion"> <a href="https://2xsoftware.es/2023/08/15/uso-de-process-monitor-procmon-para-rastrear-cambios-en-archivos-y-registros-2xsoftware/" class="card-thumbnail entry-thumbnail last:mb-0"> <img width="596" height="243" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20596%20243'%3E%3C/svg%3E" class="w-full h-full wp-post-image" alt="" decoding="async" data-lazy-srcset="https://2xsoftware.es/wp-content/uploads/2023/08/Uso-de-Process-Monitor-ProcMon-para-rastrear-cambios-en-archivos.png 596w, https://2xsoftware.es/wp-content/uploads/2023/08/Uso-de-Process-Monitor-ProcMon-para-rastrear-cambios-en-archivos-300x122.png 300w" data-lazy-sizes="(max-width: 596px) 100vw, 596px" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2023/08/Uso-de-Process-Monitor-ProcMon-para-rastrear-cambios-en-archivos.png" /><noscript><img width="596" height="243" src="https://2xsoftware.es/wp-content/uploads/2023/08/Uso-de-Process-Monitor-ProcMon-para-rastrear-cambios-en-archivos.png" class="w-full h-full wp-post-image" alt="" decoding="async" srcset="https://2xsoftware.es/wp-content/uploads/2023/08/Uso-de-Process-Monitor-ProcMon-para-rastrear-cambios-en-archivos.png 596w, https://2xsoftware.es/wp-content/uploads/2023/08/Uso-de-Process-Monitor-ProcMon-para-rastrear-cambios-en-archivos-300x122.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></noscript> </a> <div class="card-content"> <h4 class="entry-title mb-half-gutter last:mb-0"><a class="link" href="https://2xsoftware.es/2023/08/15/uso-de-process-monitor-procmon-para-rastrear-cambios-en-archivos-y-registros-2xsoftware/" rel="bookmark">Uso de Process Monitor (ProcMon) para rastrear cambios en archivos y registros – 2xsoftware</a> </h4> <div class="entry-excerpt yuki-raw-html mb-gutter last:mb-0"> 1.1K El Monitoreo de procesos (ProcMon) La herramienta se utiliza<a class="yuki-entry-excerpt-more yuki-entry-excerpt-more-link mx-1" href="https://2xsoftware.es/2023/08/15/uso-de-process-monitor-procmon-para-rastrear-cambios-en-archivos-y-registros-2xsoftware/">...</a> </div> <div class="entry-metas mb-half-gutter last:mb-0"> <span class="byline meta-item"> <i class="fas fa-feather"></i><a class="entry-meta-link" href="https://2xsoftware.es/author/mitzamitza-es/">@2xsoftware.e</a></span><span class="meta-divider"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 20 20"><path d="M7.8 10c0 1.215 0.986 2.2 2.201 2.2s2.199-0.986 2.199-2.2c0-1.215-0.984-2.199-2.199-2.199s-2.201 0.984-2.201 2.199z"></path></svg></span><span class="meta-item posted-on"><i class="far fa-calendar"></i><a class="entry-meta-link" href="https://2xsoftware.es/2023/08/15/uso-de-process-monitor-procmon-para-rastrear-cambios-en-archivos-y-registros-2xsoftware/" rel="bookmark"><span class="entry-date"><time class="published" datetime="2023-08-15T04:56:14+00:00">Ago 15, 2023</time><time class="updated hidden" datetime="2023-08-15T04:56:21+00:00">Ago 15, 2023</time></span></a></span><span class="meta-divider"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 20 20"><path d="M7.8 10c0 1.215 0.986 2.2 2.201 2.2s2.199-0.986 2.199-2.2c0-1.215-0.984-2.199-2.199-2.199s-2.201 0.984-2.201 2.199z"></path></svg></span> </div> </article> </div> <div class="card-wrapper"> <article data-card-layout="archive-grid" class="card overflow-hidden h-full post-5725 post type-post status-publish format-standard has-post-thumbnail hentry category-tutoriales tag-2xsoftware tag-como tag-con tag-estado tag-herramienta tag-migracion tag-migrar tag-perfiles tag-usmt tag-usuario tag-windows card-thumb-motion"> <a href="https://2xsoftware.es/2023/08/15/como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion-de-estado-de-usuario-usmt-en-windows-10-2xsoftware/" class="card-thumbnail entry-thumbnail last:mb-0"> <img width="620" height="450" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20620%20450'%3E%3C/svg%3E" class="w-full h-full wp-post-image" alt="" decoding="async" data-lazy-srcset="https://2xsoftware.es/wp-content/uploads/2023/08/Como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion.png 620w, https://2xsoftware.es/wp-content/uploads/2023/08/Como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion-300x218.png 300w" data-lazy-sizes="(max-width: 620px) 100vw, 620px" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2023/08/Como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion.png" /><noscript><img width="620" height="450" src="https://2xsoftware.es/wp-content/uploads/2023/08/Como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion.png" class="w-full h-full wp-post-image" alt="" decoding="async" srcset="https://2xsoftware.es/wp-content/uploads/2023/08/Como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion.png 620w, https://2xsoftware.es/wp-content/uploads/2023/08/Como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion-300x218.png 300w" sizes="(max-width: 620px) 100vw, 620px" /></noscript> </a> <div class="card-content"> <h4 class="entry-title mb-half-gutter last:mb-0"><a class="link" href="https://2xsoftware.es/2023/08/15/como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion-de-estado-de-usuario-usmt-en-windows-10-2xsoftware/" rel="bookmark">¿Cómo migrar perfiles de usuario con la herramienta de migración de estado de usuario (USMT) en Windows 10? – 2xsoftware</a> </h4> <div class="entry-excerpt yuki-raw-html mb-gutter last:mb-0"> 2K Una de las herramientas más populares para migrar perfiles<a class="yuki-entry-excerpt-more yuki-entry-excerpt-more-link mx-1" href="https://2xsoftware.es/2023/08/15/como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion-de-estado-de-usuario-usmt-en-windows-10-2xsoftware/">...</a> </div> <div class="entry-metas mb-half-gutter last:mb-0"> <span class="byline meta-item"> <i class="fas fa-feather"></i><a class="entry-meta-link" href="https://2xsoftware.es/author/mitzamitza-es/">@2xsoftware.e</a></span><span class="meta-divider"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 20 20"><path d="M7.8 10c0 1.215 0.986 2.2 2.201 2.2s2.199-0.986 2.199-2.2c0-1.215-0.984-2.199-2.199-2.199s-2.201 0.984-2.201 2.199z"></path></svg></span><span class="meta-item posted-on"><i class="far fa-calendar"></i><a class="entry-meta-link" href="https://2xsoftware.es/2023/08/15/como-migrar-perfiles-de-usuario-con-la-herramienta-de-migracion-de-estado-de-usuario-usmt-en-windows-10-2xsoftware/" rel="bookmark"><span class="entry-date"><time class="published" datetime="2023-08-15T03:53:41+00:00">Ago 15, 2023</time><time class="updated hidden" datetime="2023-08-15T03:53:49+00:00">Ago 15, 2023</time></span></a></span><span class="meta-divider"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 20 20"><path d="M7.8 10c0 1.215 0.986 2.2 2.201 2.2s2.199-0.986 2.199-2.2c0-1.215-0.984-2.199-2.199-2.199s-2.201 0.984-2.201 2.199z"></path></svg></span> </div> </article> </div> <div class="card-wrapper"> <article data-card-layout="archive-grid" class="card overflow-hidden h-full post-5719 post type-post status-publish format-standard has-post-thumbnail hentry category-tutoriales tag-2xsoftware tag-cerrar tag-comandos tag-como tag-con tag-del tag-forma tag-linea tag-remota tag-sesion tag-usuario card-thumb-motion"> <a href="https://2xsoftware.es/2023/08/15/como-cerrar-la-sesion-del-usuario-de-forma-remota-con-la-linea-de-comandos-2xsoftware/" class="card-thumbnail entry-thumbnail last:mb-0"> <img width="695" height="72" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20695%2072'%3E%3C/svg%3E" class="w-full h-full wp-post-image" alt="" decoding="async" data-lazy-srcset="https://2xsoftware.es/wp-content/uploads/2023/08/Como-cerrar-la-sesion-del-usuario-de-forma-remota-con.png 695w, https://2xsoftware.es/wp-content/uploads/2023/08/Como-cerrar-la-sesion-del-usuario-de-forma-remota-con-300x31.png 300w" data-lazy-sizes="(max-width: 695px) 100vw, 695px" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2023/08/Como-cerrar-la-sesion-del-usuario-de-forma-remota-con.png" /><noscript><img width="695" height="72" src="https://2xsoftware.es/wp-content/uploads/2023/08/Como-cerrar-la-sesion-del-usuario-de-forma-remota-con.png" class="w-full h-full wp-post-image" alt="" decoding="async" srcset="https://2xsoftware.es/wp-content/uploads/2023/08/Como-cerrar-la-sesion-del-usuario-de-forma-remota-con.png 695w, https://2xsoftware.es/wp-content/uploads/2023/08/Como-cerrar-la-sesion-del-usuario-de-forma-remota-con-300x31.png 300w" sizes="(max-width: 695px) 100vw, 695px" /></noscript> </a> <div class="card-content"> <h4 class="entry-title mb-half-gutter last:mb-0"><a class="link" href="https://2xsoftware.es/2023/08/15/como-cerrar-la-sesion-del-usuario-de-forma-remota-con-la-linea-de-comandos-2xsoftware/" rel="bookmark">¿Cómo cerrar la sesión del usuario de forma remota con la línea de comandos? – 2xsoftware</a> </h4> <div class="entry-excerpt yuki-raw-html mb-gutter last:mb-0"> 1.1K Un administrador de Windows puede utilizar el desconectarse Comando<a class="yuki-entry-excerpt-more yuki-entry-excerpt-more-link mx-1" href="https://2xsoftware.es/2023/08/15/como-cerrar-la-sesion-del-usuario-de-forma-remota-con-la-linea-de-comandos-2xsoftware/">...</a> </div> <div class="entry-metas mb-half-gutter last:mb-0"> <span class="byline meta-item"> <i class="fas fa-feather"></i><a class="entry-meta-link" href="https://2xsoftware.es/author/mitzamitza-es/">@2xsoftware.e</a></span><span class="meta-divider"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 20 20"><path d="M7.8 10c0 1.215 0.986 2.2 2.201 2.2s2.199-0.986 2.199-2.2c0-1.215-0.984-2.199-2.199-2.199s-2.201 0.984-2.201 2.199z"></path></svg></span><span class="meta-item posted-on"><i class="far fa-calendar"></i><a class="entry-meta-link" href="https://2xsoftware.es/2023/08/15/como-cerrar-la-sesion-del-usuario-de-forma-remota-con-la-linea-de-comandos-2xsoftware/" rel="bookmark"><span class="entry-date"><time class="published" datetime="2023-08-15T01:40:16+00:00">Ago 15, 2023</time><time class="updated hidden" datetime="2023-08-15T01:40:24+00:00">Ago 15, 2023</time></span></a></span><span class="meta-divider"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 20 20"><path d="M7.8 10c0 1.215 0.986 2.2 2.201 2.2s2.199-0.986 2.199-2.2c0-1.215-0.984-2.199-2.199-2.199s-2.201 0.984-2.201 2.199z"></path></svg></span> </div> </article> </div> </div> </div> </div> <div class="mx-auto yuki-max-w-content"> <div id="comments" class="yuki-comments-area"> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">Deja una respuesta <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2021/12/16/aplicacion-de-lista-de-tareas-con-php-y-base-de-datos-mysql/#respond" style="display:none;">Cancelar la respuesta</a></small></h3><form action="https://2xsoftware.es/wp-comments-post.php" method="post" id="commentform" class="comment-form yuki-form form-default"><p class="comment-notes"><span id="email-notes">Tu dirección de correo electrónico no será publicada.</span> <span class="required-field-message">Los campos obligatorios están marcados con <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Comentario <span class="required">*</span></label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required></textarea></p><p class="comment-form-author"><label for="author">Nombre <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p> <p class="comment-form-email"><label for="email">Correo electrónico <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p> <p class="comment-form-url"><label for="url">Web</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Guarda mi nombre, correo electrónico y web en este navegador para la próxima vez que comente.</label></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Publicar el comentario" /> <input type='hidden' name='comment_post_ID' value='1133' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p></form> </div><!-- #respond --> </div> </div><!-- #comments --> </div> <div class="yuki-sidebar sidebar-primary prose prose-yuki shrink-0 yuki-heading yuki-heading-style-1" role="complementary"> <section id="block-2" class="yuki-widget yuki-scroll-reveal-widget clearfix widget_block"><a href="https://www.mitza.es" rel="nofollow"> <div class="mehrcontainer"> <div class="amazonbutton"> <span> Diseño web barato (desde 100€)</span> </div> </div> </a> <style> .mehrcontainer{ max-width:100%; margin-top:15px; } .amazonbutton{ display: flex; align-items: center; justify-content: center; border-radius: 5px; border:1px solid #b79033; background:linear-gradient( #fde7ae,#f3c451); } .amazonbutton img{ max-height:20px; } .amazonbutton span{ font-family: Helvetica, sans-serif; line-height:44px; margin-left:10px; color:black; } </style></section> <section id="recent-posts-2" class="yuki-widget yuki-scroll-reveal-widget clearfix widget_recent_entries"> <h3 class="widget-title mb-half-gutter heading-content">Entradas recientes</h3> <ul> <li> <a href="https://2xsoftware.es/2025/10/09/configure-perfiles-de-empleados-y-flujos-de-trabajo-de-incorporacion-en-zoho-people/">Configure perfiles de empleados y flujos de trabajo de incorporación en Zoho People</a> <span class="post-date">octubre 9, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/09/la-maquina-virtual-hyper-v-no-puede-conectarse-al-host-m-c/">La máquina virtual Hyper-V no puede conectarse al host M/C</a> <span class="post-date">octubre 9, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/09/como-restablecer-mfa-para-un-usuario-en-office-365/">Cómo restablecer MFA para un usuario en Office 365</a> <span class="post-date">octubre 9, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/08/error-0x8000ffff-falla-catastrofica-extraccion-del-archivo-zip/">Error 0x8000FFFF Falla catastrófica Extracción del archivo zip</a> <span class="post-date">octubre 8, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/08/el-explorador-falla-al-abrir-una-carpeta-grande-en-windows-11-fix/">El explorador falla al abrir una carpeta grande en Windows 11 [Fix]</a> <span class="post-date">octubre 8, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/08/las-mejores-alternativas-de-capcut-para-windows-pc/">Las mejores alternativas de Capcut para Windows PC</a> <span class="post-date">octubre 8, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/07/bloqueado-de-la-cuenta-de-administracion-de-microsoft-365-que-hacer/">¿Bloqueado de la cuenta de administración de Microsoft 365? ¿Qué hacer?</a> <span class="post-date">octubre 7, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/07/corrige-0x8007003b-error-de-inicio-de-sesion-algo-salio-mal/">Corrige 0x8007003b Error de inicio de sesión: algo salió mal</a> <span class="post-date">octubre 7, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/07/notebook-onenote-no-aparece-en-la-aplicacion/">Notebook OneNote no aparece en la aplicación</a> <span class="post-date">octubre 7, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/07/no-se-puede-agregar-una-pagina-web-a-colecciones-en-microsoft-edge/">No se puede agregar una página web a Colecciones en Microsoft Edge</a> <span class="post-date">octubre 7, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/06/no-se-puede-agregar-calendario-a-outlook-fix/">No se puede agregar calendario a Outlook [Fix]</a> <span class="post-date">octubre 6, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/06/lgpo-exe-g-no-funciona-durante-la-operacion-de-exportacion-o-importacion/">Lgpo.exe /g no funciona durante la operación de exportación o importación</a> <span class="post-date">octubre 6, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/06/como-crear-usuarios-a-granel-en-office-365/">Cómo crear usuarios a granel en Office 365</a> <span class="post-date">octubre 6, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/06/enviar-datos-de-diagnostico-opcionales-que-no-se-apagan-en-windows-11/">Enviar datos de diagnóstico opcionales que no se apagan en Windows 11</a> <span class="post-date">octubre 6, 2025</span> </li> <li> <a href="https://2xsoftware.es/2025/10/05/la-velocidad-de-transferencia-de-archivos-cae-a-cero-en-windows-11/">La velocidad de transferencia de archivos cae a cero en Windows 11</a> <span class="post-date">octubre 5, 2025</span> </li> </ul> </section><section id="archives-2" class="yuki-widget yuki-scroll-reveal-widget clearfix widget_archive"><h3 class="widget-title mb-half-gutter heading-content">Archivos</h3> <ul> <li><a href='https://2xsoftware.es/2025/10/'>octubre 2025</a></li> <li><a href='https://2xsoftware.es/2025/09/'>septiembre 2025</a></li> <li><a href='https://2xsoftware.es/2025/08/'>agosto 2025</a></li> <li><a href='https://2xsoftware.es/2025/07/'>julio 2025</a></li> <li><a href='https://2xsoftware.es/2025/06/'>junio 2025</a></li> <li><a href='https://2xsoftware.es/2025/05/'>mayo 2025</a></li> <li><a href='https://2xsoftware.es/2025/04/'>abril 2025</a></li> <li><a href='https://2xsoftware.es/2025/03/'>marzo 2025</a></li> <li><a href='https://2xsoftware.es/2025/02/'>febrero 2025</a></li> <li><a href='https://2xsoftware.es/2025/01/'>enero 2025</a></li> <li><a href='https://2xsoftware.es/2024/12/'>diciembre 2024</a></li> <li><a href='https://2xsoftware.es/2024/11/'>noviembre 2024</a></li> <li><a href='https://2xsoftware.es/2023/08/'>agosto 2023</a></li> <li><a href='https://2xsoftware.es/2022/07/'>julio 2022</a></li> <li><a href='https://2xsoftware.es/2022/06/'>junio 2022</a></li> <li><a href='https://2xsoftware.es/2022/05/'>mayo 2022</a></li> <li><a href='https://2xsoftware.es/2021/12/'>diciembre 2021</a></li> </ul> </section><section id="categories-2" class="yuki-widget yuki-scroll-reveal-widget clearfix widget_categories"><h3 class="widget-title mb-half-gutter heading-content">Categorías</h3> <ul> <li class="cat-item cat-item-2"><a href="https://2xsoftware.es/category/tutoriales/">Tutoriales</a> </li> <li class="cat-item cat-item-1012"><a href="https://2xsoftware.es/category/windows/">Windows</a> </li> <li class="cat-item cat-item-39"><a href="https://2xsoftware.es/category/wordpress/">Wordpress</a> </li> </ul> </section><section id="meta-2" class="yuki-widget yuki-scroll-reveal-widget clearfix widget_meta"><h3 class="widget-title mb-half-gutter heading-content">Meta</h3> <ul> <li><a rel="nofollow" href="https://2xsoftware.es/wp-login.php">Acceder</a></li> <li><a href="https://2xsoftware.es/feed/">Feed de entradas</a></li> <li><a href="https://2xsoftware.es/comments/feed/">Feed de comentarios</a></li> <li><a href="https://es.wordpress.org/">WordPress.org</a></li> </ul> </section> </div> </div> <footer class="yuki-footer-area"> <div class="yuki-footer-row yuki-footer-row-bottom" data-row="bottom"><div class="container mx-auto px-gutter flex flex-wrap"><div class="yuki-builder-column yuki-builder-column-0 yuki-builder-column-all yuki-builder-column-desktop-dir-row yuki-builder-column-tablet-dir-row yuki-builder-column-mobile-dir-row yuki_footer_builder_col_bottom_0_all flex"><div data-builder-element="footer-menu" class="yuki-menu-wrap h-full yuki_footer_el_menu_wrap"><ul class="sf-menu clearfix yuki-menu yuki_footer_el_menu yuki-menu-has-arrow"><li class="page_item page-item-3"><a href="https://2xsoftware.es/privacy-policy/">Privacy Policy<span class="yuki-menu-icon"><i class="fas fa-angle-down"></i></span></a></li> </ul> </div></div><div class="yuki-builder-column yuki-builder-column-1 yuki-builder-column-all yuki-builder-column-desktop-dir-row yuki-builder-column-tablet-dir-row yuki-builder-column-mobile-dir-row yuki_footer_builder_col_bottom_1_all flex"> <div data-builder-element="copyright" class="yuki-copyright yuki-raw-html yuki_footer_el_copyright"> Copyright © 2025 - <a href="https://www.wpmoose.com/themes/yuki-blogger/" target="_blank">Yuki Blogger Theme</a> By <a href="https://www.wpmoose.com" target="_blank">WP Moose</a> </div> </div></div></div> </footer> <a href="#" id="scroll-top" class="yuki-to-top yuki-to-top-right"><i class="fas fa-angle-up"></i></a> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/yuki-blogger\/*","\/wp-content\/themes\/yuki\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script id="kk-star-ratings-js-extra"> var kk_star_ratings = {"action":"kk-star-ratings","endpoint":"https:\/\/2xsoftware.es\/wp-admin\/admin-ajax.php","nonce":"73d7c7c5af"}; </script> <script src="https://2xsoftware.es/wp-content/plugins/kk-star-ratings/src/core/public/js/kk-star-ratings.min.js?ver=5.3.0" id="kk-star-ratings-js"></script> <script src="https://2xsoftware.es/wp-content/plugins/interlinks-manager/public/assets/js/track-internal-links.js?ver=1.25" id="daim-track-internal-links-js"></script> <script id="rocket-browser-checker-js-after"> "use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}(); </script> <script id="rocket-preload-links-js-extra"> var RocketPreloadLinksConfig = {"excludeUris":"\/(.+\/)?feed\/?.+\/?|\/(?:.+\/)?embed\/|\/(index\\.php\/)?wp\\-json(\/.*|$)|\/wp-admin\/|\/logout\/|\/wp-login.php","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|php|pdf|html|htm","siteUrl":"https:\/\/2xsoftware.es","onHoverDelay":"100","rateThrottle":"3"}; </script> <script id="rocket-preload-links-js-after"> (function() { "use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run(); }()); </script> <script src="https://2xsoftware.es/wp-content/themes/yuki/dist/js/app.min.js?ver=1.3.8" id="yuki-script-js"></script> <script src="https://2xsoftware.es/wp-includes/js/comment-reply.min.js?ver=6.8.3" id="comment-reply-js" async data-wp-strategy="async"></script> <script>window.lazyLoadOptions={elements_selector:"img[data-lazy-src],.rocket-lazyload,iframe[data-lazy-src]",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}};window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://2xsoftware.es/wp-content/plugins/wp-rocket/assets/js/lazyload/16.1/lazyload.min.js"></script><script>function lazyLoadThumb(e){var t='<img loading="lazy" data-lazy-src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360"><noscript><img src="https://i.ytimg.com/vi/ID/hqdefault.jpg" alt="" width="480" height="360"></noscript>',a='<div class="play"></div>';return t.replace("ID",e)+a}function lazyLoadYoutubeIframe(){var e=document.createElement("iframe"),t="ID?autoplay=1";t+=0===this.dataset.query.length?'':'&'+this.dataset.query;e.setAttribute("src",t.replace("ID",this.dataset.src)),e.setAttribute("frameborder","0"),e.setAttribute("allowfullscreen","1"),e.setAttribute("allow", "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),this.parentNode.replaceChild(e,this)}document.addEventListener("DOMContentLoaded",function(){var e,t,a=document.getElementsByClassName("rll-youtube-player");for(t=0;t<a.length;t++)e=document.createElement("div"),e.setAttribute("data-id",a[t].dataset.id),e.setAttribute("data-query", a[t].dataset.query),e.setAttribute("data-src", a[t].dataset.src),e.innerHTML=lazyLoadThumb(a[t].dataset.id),e.onclick=lazyLoadYoutubeIframe,a[t].appendChild(e)});</script></body> </html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me -->