PHP CRUD Cree, edite, actualice y elimine publicaciones con la base de datos MySQL

PHP CRUD Cree, edite, actualice y elimine publicaciones con la base de datos MySQL

Crear, editar, actualizar y eliminar contenido en un sitio web es lo que hace que el sitio sea dinámico. Eso es lo que haremos en esta publicación.

Un usuario que visite nuestro sitio podrá crear publicaciones que se guardarán en una base de datos mysql, recuperar las publicaciones de la base de datos y mostrarlas en la página web. Cada publicación se mostrará con un botón de edición y eliminación para permitir al usuario actualizar las publicaciones y eliminarlas.

Primero, crea una base de datos con nombre cruel. En la base de datos sin procesar, cree una tabla llamada info. La tabla de información debe tener las siguientes columnas:

  • id – int (11)

  • nombre – varchar (100)
  • dirección – varchar (100)

¡Ladrar! Solo dos campos. Estoy tratando de mantener las cosas simples aquí. así que pasemos al siguiente paso.

Cree un archivo llamado index.php y pegue en él el siguiente código:

<!DOCTYPE html>
<html>
<head>
	<title>CRUD: CReate, Update, Delete PHP MySQL</title>
</head>
<body>
	<form method="post" action="server.php" >
		<div class="input-group">
			<label>Name</label>
			<input type="text" name="name" value="">
		</div>
		<div class="input-group">
			<label>Address</label>
			<input type="text" name="address" value="">
		</div>
		<div class="input-group">
			<button class="btn" type="submit" name="save" >Save</button>
		</div>
	</form>
</body>
</html>

Si guarda y abre el sitio en su navegador, obtendrá algo como esto:

No parece la mejor forma del mundo, ¿verdad? Arreglemos eso. Agregue esta línea directamente debajo de la etiqueta en la sección del encabezado de su archivo index.php:</p> <pre><code class="language-php"><link rel="stylesheet" type="text/css" href="style.css"></code></pre> <p>Ese es el enlace para cargar el estilo desde el archivo de hoja de estilo. Creemos el archivo styles.css y agreguemos este código de estilo en él.</p> <pre><code class="language-css">body { font-size: 19px; } table{ width: 50%; margin: 30px auto; border-collapse: collapse; text-align: left; } tr { border-bottom: 1px solid #cbcbcb; } th, td{ border: none; height: 30px; padding: 2px; } tr:hover { background: #F5F5F5; } form { width: 45%; margin: 50px auto; text-align: left; padding: 20px; border: 1px solid #bbbbbb; border-radius: 5px; } .input-group { margin: 10px 0px 10px 0px; } .input-group label { display: block; text-align: left; margin: 3px; } .input-group input { height: 30px; width: 93%; padding: 5px 10px; font-size: 16px; border-radius: 5px; border: 1px solid gray; } .btn { padding: 10px; font-size: 15px; color: white; background: #5F9EA0; border: none; border-radius: 5px; } .edit_btn { text-decoration: none; padding: 2px 5px; background: #2E8B57; color: white; border-radius: 3px; } .del_btn { text-decoration: none; padding: 2px 5px; color: white; border-radius: 3px; background: #800000; } .msg { margin: 30px auto; padding: 10px; border-radius: 5px; color: #3c763d; background: #dff0d8; border: 1px solid #3c763d; width: 50%; text-align: center; }</code></pre> <p>Ahora revisemos nuestro formulario en el navegador nuevamente:</p> <p></p> <p>¡Eso es mejor! </p> <p>Por lo general, me gusta separar mi código HTML de mi código PHP tanto como sea posible. Considero que es una buena práctica. En esa nota, creemos otro archivo llamado php_code.php donde implementamos todas las funcionalidades de php como conectarse a la base de datos, consultar la base de datos y similares.</p> <p>Así que abre php_code.php y pega el siguiente código en él:</p> <pre><code class="language-php"><?php session_start(); $db = mysqli_connect('localhost', 'root', '', 'crud'); // initialize variables $name = ""; $address = ""; $id = 0; $update = false; if (isset($_POST['save'])) { $name = $_POST['name']; $address = $_POST['address']; mysqli_query($db, "INSERT INTO info (name, address) VALUES ('$name', '$address')"); $_SESSION['message'] = "Address saved"; header('location: index.php'); } // ...</code></pre> <p>Ahora incluya este archivo en la parte superior (la primera línea) de su archivo index.php. Al igual que:</p> <pre><code class="language-php"><?php include('server.php'); ?></code></pre> <p>En este punto, todo lo que hace este código es conectarse a la base de datos, inicializar algunas variables y guardar los datos enviados desde el formulario a la base de datos en la información que creamos anteriormente. Esa es solo la parte CReate de CRUD. Procedamos con los demás.</p> <p>Ahora visite su archivo index.php nuevamente y agregue este código justo debajo de la etiqueta <body data-rsssl=1>:</p> <pre><code class="language-php">// ... <body> <?php if (isset($_SESSION['message'])): ?> <div class="msg"> <?php echo $_SESSION['message']; unset($_SESSION['message']); ?> </div> <?php endif ?></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;width:100%;max-width:1200px;margin-left:auto !important;margin-right:auto !important;min-height:250px;min-width:300px;" class="ezoic-ad"/></span>Este código muestra un mensaje de confirmación para decirle al usuario que se ha creado un nuevo registro en la base de datos. </p> <p><!-- codewithawa.com_728x90: Begin --></p> <p> <!-- codewithawa.com_728x90 End --></p> <p>Para recuperar los registros de la base de datos y mostrarlos en la página, agregue este código inmediatamente encima del formulario de entrada:</p> <pre><code class="language-php"><?php $results = mysqli_query($db, "SELECT * FROM info"); ?> <table> <thead> <tr> <th>Name</th> <th>Address</th> <th colspan="2">Action</th> </tr> </thead> <?php while ($row = mysqli_fetch_array($results)) { ?> <tr> <td><?php echo $row['name']; ?></td> <td><?php echo $row['address']; ?></td> <td> <a href="index.php?edit=<?php echo $row['id']; ?>" class="edit_btn" >Edit</a> </td> <td> <a href="server.php?del=<?php echo $row['id']; ?>" class="del_btn">Delete</a> </td> </tr> <?php } ?> </table> <form> // ...</code></pre> <p>Creemos un nuevo registro y veamos si esto funciona:</p> <p><img width="714" height="184" decoding="async" alt="" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20714%20184'%3E%3C/svg%3E" style="height:23%; width:96%" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2021/12/1639596723_376_PHP-CRUD-Cree-edite-actualice-y-elimine-publicaciones-con-la.png"/><noscript><img width="714" height="184" decoding="async" alt="" src="https://2xsoftware.es/wp-content/uploads/2021/12/1639596723_376_PHP-CRUD-Cree-edite-actualice-y-elimine-publicaciones-con-la.png" style="height:23%; width:96%"/></noscript></p> <p>..y voilá !! ¡Funciona perfecto!</p> <p>Ahora pasamos a editar. En la parte superior de su archivo index.php (inmediatamente después de la declaración de inclusión) agregue el siguiente código:</p> <pre><code class="language-php"><?php if (isset($_GET['edit'])) { $id = $_GET['edit']; $update = true; $record = mysqli_query($db, "SELECT * FROM info WHERE id=$id"); if (count($record) == 1 ) { $n = mysqli_fetch_array($record); $name = $n['name']; $address = $n['address']; } } ?></code></pre> <p>Al editar un registro de base de datos, debemos poner los valores antiguos en el formulario para que se puedan modificar. Para hacerlo, modifiquemos nuestros campos de entrada en el formulario y establezcamos esos valores tomados de la base de datos ($ nombre, $ dirección) como valores al <strong>valor</strong> atributo de los campos del formulario.<span id="ezoic-pub-ad-placeholder-114" class="ezoic-adpicker-ad"/><span class="ezoic-ad large-leaderboard-2 large-leaderboard-2114 adtester-container adtester-container-114" data-ez-name="codewithawa_com-large-leaderboard-2"><span id="div-gpt-ad-codewithawa_com-large-leaderboard-2-0" ezaw="300" ezah="250" style="position:relative;z-index:0;display:inline-block;padding:0;width:100%;max-width:1200px;margin-left:auto !important;margin-right:auto !important;min-height:250px;min-width:300px;" class="ezoic-ad"/></span></p> <p><!-- codewithawa.com_728x90: Begin --></p> <p> <!-- codewithawa.com_728x90 End --></p> <p>También agregue un campo oculto para contener la identificación del registro que actualizaremos para que pueda ser reconocido en la base de datos únicamente por su identificación. Esto lo explica mejor:</p> <pre><code class="language-php">// newly added field <input type="hidden" name="id" value="<?php echo $id; ?>"> // modified form fields <input type="text" name="name" value="<?php echo $name; ?>"> <input type="text" name="address" value="<?php echo $address; ?>"></code></pre> <p>Recuerde que todo eso está en la entrada </p> <form>.</p> <p>Ahora, si hacemos clic en el botón editar en un registro en particular de la base de datos, los valores se completarán en el formulario y podremos editarlos. Dado que estamos editando en el mismo formulario que cuando estamos creando, tenemos que poner una condición que determine el botón apropiado que se mostrará. Por ejemplo, al editar, mostramos el botón de actualización en el formulario y al crear, mostramos el botón de guardar. Hacemos esto usando el <strong>actualizar </strong>variable que es booleana. Cuando la actualización es verdadera, se muestra el botón de actualización y, si es falsa, se muestra el botón de guardar.</p> <p>Reemplace su botón de guardar en el formulario de esta manera:</p> <p>Reemplazar ..</p> <pre><code class="language-php"><button class="btn" type="submit" name="save" >Save</button></code></pre> <p> con …</p> <pre><code class="language-php"><?php if ($update == true): ?> <button class="btn" type="submit" name="update" style="background: #556B2F;" >update</button> <?php else: ?> <button class="btn" type="submit" name="save" >Save</button> <?php endif ?></code></pre> <p>Ahora, si ejecutamos esto en el navegador y hacemos clic en el botón editar, obtenemos esto:<span id="ezoic-pub-ad-placeholder-115" class="ezoic-adpicker-ad"/><span class="ezoic-ad leader-1 leader-1115 adtester-container adtester-container-115" data-ez-name="codewithawa_com-leader-1"><span id="div-gpt-ad-codewithawa_com-leader-1-0" ezaw="300" ezah="250" style="position:relative;z-index:0;display:inline-block;padding:0;width:100%;max-width:1200px;margin-left:auto !important;margin-right:auto !important;min-height:250px;min-width:300px;" class="ezoic-ad"/></span></p> <p><img width="639" height="276" decoding="async" alt="" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20639%20276'%3E%3C/svg%3E" style="height:33%; width:96%" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2021/12/1639596724_747_PHP-CRUD-Cree-edite-actualice-y-elimine-publicaciones-con-la.png"/><noscript><img width="639" height="276" decoding="async" alt="" src="https://2xsoftware.es/wp-content/uploads/2021/12/1639596724_747_PHP-CRUD-Cree-edite-actualice-y-elimine-publicaciones-con-la.png" style="height:33%; width:96%"/></noscript></p> <p>Ahora puede ver que es el botón de actualización que se muestra. Agreguemos el código que se ejecutará cuando se haga clic en este botón.</p> <p>Abra el archivo php_code.php y agregue este código en el botón:</p> <pre><code class="language-php">// ... if (isset($_POST['update'])) { $id = $_POST['id']; $name = $_POST['name']; $address = $_POST['address']; mysqli_query($db, "UPDATE info SET name='$name', address='$address' WHERE id=$id"); $_SESSION['message'] = "Address updated!"; header('location: index.php'); }</code></pre> <p>Ahora cambie los valores en el formulario y haga clic en el botón actualizar. </p> <p><img width="684" height="163" decoding="async" alt="" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20684%20163'%3E%3C/svg%3E" style="height:20%; width:96%" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2021/12/1639596724_422_PHP-CRUD-Cree-edite-actualice-y-elimine-publicaciones-con-la.png"/><noscript><img width="684" height="163" decoding="async" alt="" src="https://2xsoftware.es/wp-content/uploads/2021/12/1639596724_422_PHP-CRUD-Cree-edite-actualice-y-elimine-publicaciones-con-la.png" style="height:20%; width:96%"/></noscript></p> <p>¡Estupendo!</p> <p>Una última cosa: borrar registros. Simplemente agregue este código al final de su archivo php_code.php y listo:</p> <pre><code class="language-php">if (isset($_GET['del'])) { $id = $_GET['del']; mysqli_query($db, "DELETE FROM info WHERE id=$id"); $_SESSION['message'] = "Address deleted!"; header('location: index.php'); }</code></pre> <p><span id="ezoic-pub-ad-placeholder-116" class="ezoic-adpicker-ad"/><span class="ezoic-ad large-mobile-banner-1 large-mobile-banner-1116 adtester-container adtester-container-116" data-ez-name="codewithawa_com-large-mobile-banner-1"><span id="div-gpt-ad-codewithawa_com-large-mobile-banner-1-0" ezaw="250" ezah="250" style="position:relative;z-index:0;display:inline-block;padding:0;width:100%;max-width:1200px;margin-left:auto !important;margin-right:auto !important;min-height:250px;min-width:250px;" class="ezoic-ad"/></span>Si hace clic en el botón Eliminar, elimina el registro de la base de datos y muestra el mensaje al igual que las otras acciones.</p> </p> <h3> </h3> <h2 id="ftoc-heading-1" class="ftwp-heading">Conclusión</h2> <p>Esto nos lleva al final de este tutorial. Espero que haya sido útil y valga la pena su tiempo. Me siento muy honrado por su paciencia al haber seguido esto hasta el final. Si te gusta este tutorial, compártelo con tus amigos haciendo clic en cualquiera de los íconos de redes sociales a continuación. No olvide consultar mis otros tutoriales en este sitio. </p> <p>Gracias</p> <p>Awa Melvine</p> <h2 id="ftoc-heading-2" class="ftwp-heading">Relacionado:</h2> </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":"1120","slug":"default","valign":"bottom","reference":"auto","count":"629","readonly":"","score":"4.9","best":"5","gap":"4","greet":"Valora este artculo post","legend":"4.9\/5 - (629 votos)","size":"24","width":"135.2","_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: 135.2px;"> <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.9/5 - (629 votos) </div> </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%2F15%2Fphp-crud-cree-edite-actualice-y-elimine-publicaciones-con-la-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%2F15%2Fphp-crud-cree-edite-actualice-y-elimine-publicaciones-con-la-base-de-datos-mysql%2F&text=PHP%20CRUD%20Cree%2C%20edite%2C%20actualice%20y%20elimine%20publicaciones%20con%20la%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/15/creacion-de-un-sistema-de-comentarios-y-respuestas-php-y-mysql/" rel="prev"><div class="prev-post-thumbnail post-thumbnail"><img width="300" height="174" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20300%20174'%3E%3C/svg%3E" class="attachment-medium size-medium wp-post-image" alt="Creación de un sistema de comentarios y respuestas PHP y MySQL" decoding="async" data-lazy-srcset="https://2xsoftware.es/wp-content/uploads/2021/12/comment_system.png.2018-04-24.1524601446-300x174.png 300w, https://2xsoftware.es/wp-content/uploads/2021/12/comment_system.png.2018-04-24.1524601446-768x446.png 768w, https://2xsoftware.es/wp-content/uploads/2021/12/comment_system.png.2018-04-24.1524601446.png 947w" data-lazy-sizes="(max-width: 300px) 100vw, 300px" data-lazy-src="https://2xsoftware.es/wp-content/uploads/2021/12/comment_system.png.2018-04-24.1524601446-300x174.png" /><noscript><img width="300" height="174" src="https://2xsoftware.es/wp-content/uploads/2021/12/comment_system.png.2018-04-24.1524601446-300x174.png" class="attachment-medium size-medium wp-post-image" alt="Creación de un sistema de comentarios y respuestas PHP y MySQL" decoding="async" srcset="https://2xsoftware.es/wp-content/uploads/2021/12/comment_system.png.2018-04-24.1524601446-300x174.png 300w, https://2xsoftware.es/wp-content/uploads/2021/12/comment_system.png.2018-04-24.1524601446-768x446.png 768w, https://2xsoftware.es/wp-content/uploads/2021/12/comment_system.png.2018-04-24.1524601446.png 947w" sizes="(max-width: 300px) 100vw, 300px" /></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">Creación de un sistema de comentarios y respuestas PHP y MySQL</span></div></a></div><div class="nav-next"><a href="https://2xsoftware.es/2021/12/15/como-crear-un-blog-en-php-y-base-de-datos-mysql/" rel="next"><div class="next-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-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 base de datos MySQL</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 post-ftoc 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 post-ftoc 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 post-ftoc 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/15/php-crud-cree-edite-actualice-y-elimine-publicaciones-con-la-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" novalidate><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='1120' 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> <style type="text/css" id="fixedtoc-style-inline-css">#ftwp-container.ftwp-wrap #ftwp-contents { width: 250px; height: auto; } #ftwp-container.ftwp-wrap #ftwp-trigger { width: 50px; height: 50px; font-size: 30px; } #ftwp-container #ftwp-trigger.ftwp-border-medium { font-size: 29px; } #ftwp-container.ftwp-wrap #ftwp-header { font-size: 22px; font-family: inherit; } #ftwp-container.ftwp-wrap #ftwp-header-title { font-weight: bold; } #ftwp-container.ftwp-wrap #ftwp-list { font-size: 14px; font-family: inherit; } #ftwp-container #ftwp-list.ftwp-liststyle-decimal .ftwp-anchor::before { font-size: 14px; } #ftwp-container #ftwp-list.ftwp-strong-first>.ftwp-item>.ftwp-anchor .ftwp-text { font-size: 15.4px; } #ftwp-container #ftwp-list.ftwp-strong-first.ftwp-liststyle-decimal>.ftwp-item>.ftwp-anchor::before { font-size: 15.4px; } #ftwp-container.ftwp-wrap #ftwp-trigger { color: #333; background: rgba(243,243,243,0.95); } #ftwp-container.ftwp-wrap #ftwp-trigger { border-color: rgba(51,51,51,0.95); } #ftwp-container.ftwp-wrap #ftwp-contents { border-color: rgba(51,51,51,0.95); } #ftwp-container.ftwp-wrap #ftwp-header { color: #333; background: rgba(243,243,243,0.95); } #ftwp-container.ftwp-wrap #ftwp-contents:hover #ftwp-header { background: #f3f3f3; } #ftwp-container.ftwp-wrap #ftwp-list { color: #333; background: rgba(243,243,243,0.95); } #ftwp-container.ftwp-wrap #ftwp-contents:hover #ftwp-list { background: #f3f3f3; } #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor:hover { color: #00A368; } #ftwp-container.ftwp-wrap #ftwp-list .ftwp-anchor:focus, #ftwp-container.ftwp-wrap #ftwp-list .ftwp-active, #ftwp-container.ftwp-wrap #ftwp-list .ftwp-active:hover { color: #fff; } #ftwp-container.ftwp-wrap #ftwp-list .ftwp-text::before { background: rgba(221,51,51,0.95); } .ftwp-heading-target::before { background: rgba(221,51,51,0.95); }</style> <section id="fixedtoc-2" class="yuki-widget yuki-scroll-reveal-widget clearfix ftwp-widget"><div id="ftwp-widget-container"><div id="ftwp-container" class="ftwp-wrap ftwp-hidden-state ftwp-minimize ftwp-middle-right"><button type="button" id="ftwp-trigger" class="ftwp-shape-round ftwp-border-medium" title="click To Maximize The Table Of Contents"><span class="ftwp-trigger-icon ftwp-icon-number"></span></button><nav id="ftwp-contents" class="ftwp-shape-square ftwp-border-medium"><header id="ftwp-header"><span id="ftwp-header-control" class="ftwp-icon-number"></span><button type="button" id="ftwp-header-minimize" class="ftwp-icon-expand" aria-labelledby="ftwp-header-title"></button><h3 id="ftwp-header-title">Contenido</h3></header><ol id="ftwp-list" class="ftwp-liststyle-decimal ftwp-effect-bounce-to-right ftwp-list-nest ftwp-strong-first ftwp-colexp ftwp-colexp-icon"><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-1"><span class="ftwp-text">Conclusión</span></a></li><li class="ftwp-item"><a class="ftwp-anchor" href="#ftoc-heading-2"><span class="ftwp-text">Relacionado:</span></a></li></ol></nav></div> </div></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/2023/08/15/uso-de-process-monitor-procmon-para-rastrear-cambios-en-archivos-y-registros-2xsoftware/">Uso de Process Monitor (ProcMon) para rastrear cambios en archivos y registros – 2xsoftware</a> <span class="post-date">agosto 15, 2023</span> </li> <li> <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/">¿Cómo migrar perfiles de usuario con la herramienta de migración de estado de usuario (USMT) en Windows 10? – 2xsoftware</a> <span class="post-date">agosto 15, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/15/como-cerrar-la-sesion-del-usuario-de-forma-remota-con-la-linea-de-comandos-2xsoftware/">¿Cómo cerrar la sesión del usuario de forma remota con la línea de comandos? – 2xsoftware</a> <span class="post-date">agosto 15, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/15/como-restablecer-la-id-de-teamviewer-2xsoftware/">¿Cómo restablecer la ID de TeamViewer? – 2xsoftware</a> <span class="post-date">agosto 15, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/como-deshabilitar-la-autenticacion-multifactor-mfa-en-office-365-2xsoftware/">¿Cómo deshabilitar la autenticación multifactor (MFA) en Office 365? – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/no-se-puede-encontrar-un-servidor-predeterminado-con-los-servicios-web-de-active-directory-ejecutandose-2xsoftware/">No se puede encontrar un servidor predeterminado con los servicios web de Active Directory ejecutándose – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/como-arreglar-este-paquete-de-controlador-dch-no-es-compatible-con-el-error-de-nvidia-2xsoftware/">¿Cómo arreglar este paquete de controlador DCH no es compatible con el error de Nvidia? – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/como-evitar-permitir-iniciar-sesion-localmente-a-traves-de-gpo-2xsoftware/">¿Cómo evitar/permitir iniciar sesión localmente a través de GPO? – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/como-usar-los-cmdlets-get-acl-y-set-acl-al-administrar-permisos-ntfs-para-un-archivo-o-carpeta-con-powershell-2xsoftware/">¿Cómo usar los cmdlets Get-Acl y Set-Acl al administrar permisos NTFS para un archivo o carpeta con PowerShell? – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/como-agregar-el-sufijo-upn-en-active-directory-2xsoftware/">¿Cómo agregar el sufijo UPN en Active Directory? – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/como-usar-el-editor-de-atributos-de-active-directory-2xsoftware/">¿Cómo usar el editor de atributos de Active Directory? – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/como-realizar-pruebas-de-ping-con-powershell-2xsoftware/">¿Cómo realizar pruebas de ping con PowerShell? – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/almacene-y-use-de-forma-segura-secretos-claves-credenciales-2xsoftware/">Almacene y use de forma segura secretos, claves, credenciales – 2xsoftware</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/cambiar-el-nombre-de-su-archivo-de-almacenamiento-en-microsoft-outlook/">Cambiar el nombre de su archivo de almacenamiento en Microsoft Outlook</a> <span class="post-date">agosto 14, 2023</span> </li> <li> <a href="https://2xsoftware.es/2023/08/14/tecla-de-acceso-rapido-para-cambiar-dispositivos-de-audio/">Tecla de acceso rápido para cambiar dispositivos de audio</a> <span class="post-date">agosto 14, 2023</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/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-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 © 2024 - <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> <!--[if lte IE 9]> <script> (function($) { $(document).ready(function() { $('#ftwp-container').addClass('ftwp-ie9'); }); })(jQuery); </script> <![endif]--> <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":"51906f88e1"}; </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.5.2" id="comment-reply-js" async data-wp-strategy="async"></script> <script id="fixedtoc-js-js-extra"> var fixedtocOption = {"showAdminbar":"","inOutEffect":"zoom","isNestedList":"1","isColExpList":"1","showColExpIcon":"1","isAccordionList":"","isQuickMin":"1","isEscMin":"1","isEnterMax":"1","fixedMenu":"","scrollOffset":"10","fixedOffsetX":"10","fixedOffsetY":"0","fixedPosition":"middle-right","contentsFixedHeight":"","inPost":"","contentsFloatInPost":"right","contentsWidthInPost":"250","contentsHeightInPost":"","contentsColexpInitMobile":"1","inWidget":"1","fixedWidget":"1","triggerBorder":"medium","contentsBorder":"medium","triggerSize":"50","isClickableHeader":"","debug":"0","contentsColexpInit":""}; </script> <script src="https://2xsoftware.es/wp-content/plugins/fixed-toc/frontend/assets/js/ftoc.min.js?ver=3.1.20" id="fixedtoc-js-js"></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 -->