Está en la página 1de 8

PROGRAMACIÓN AVANZADA I

SEMANA 6

Sebastian Palma
21-05-2022
DESARROLLO
 De acuerdo con los conocimientos previos, describa que beneficios aporta el uso de sesiones en la
programación avanzada.

 Identifique y describa 5 errores comunes de sesiones y carrito de compra.

 Cree una tienda virtual de relojes, no más de 5 artículos, haciendo uso de sesiones y carrito de
compra.

Se requiere:

 El código debe incluirse en la entrega y además deberán presentarse las capturas de pantallas
respectivas. Esto con la finalidad de identificar los posibles errores que se presenten la ejecución
de lo solicitado.

NOMBRE: “Sesiones y Control de Usuarios con PHP”

RECURSOS NECESARIOS: contenidos de la semana 6.

INSTRUCCIONES: Las respuestas a las preguntas del control, deben ser una elaboración propia. Usted se
apoyará en los contenidos de la semana y también puede hacerlo en otros textos, pero siempre debe
identificar los autores y citar las fuentes. Recuerde agregar la bibliografía al final del control en formato
APA. Cuide su redacción y ortografía.

DESARROLLO DEL CONTROL: 1. De acuerdo con los conocimientos previos, describa que beneficios aporta
el uso de sesiones en la programación avanzada.

 controlar el acceso de los usuarios a ciertas páginas, si este no está autenticado desde el inicio de esta,

 Medir el tiempo de inactividad que tenga un usuario en una página (Sessión Time-Outs)

 La instrucción _session_regenerateid(),generar un único ID para un usuario cuando este se autentica en


la pagina

 El uso de la instrucción _sessiondestroy(), para la destrucción de la sesión del usuario. Por lo


anteriormente expresado, se debe de iniciar el uso de las sesiones en cada una de las paginas, se debe de
validar el uso de la sesión en las demás páginas, verificando la inactividad de la misma y por ultimo el
cierre de la sesión del usuario cuando este termine de utilizar la página.

2- Identifique y describa 5 errores comunes de sesiones y carrito de compra.


Los errores mas comunes los podemos encontrar en esta función, motivado a que permite identificar una
serie de errores que se van desarrollando a medida que la página html o php, este siendo interpretada
para su ejecución a nivel de los scripts. Este tipo de error puede ocasionar o no que la pagina deje de
funcionar, o el relentizamiento de la misma. Esto puede ser motivado por múltiples factores como, por
ejemplo:

 El uso de instrucciones de php que están obsoletas, motivada a un cambio de versión de php, a través
de E_DEPRECATED

 Errores fatales en tiempo de ejecución a través de la instrucción E_ERROR, deteniendo la script de la


página.

 Avisos en el tiempo de ejecución de la página, indicando que el script encontró un posible error
E_NOTICE

3- Cree una tienda virtual de relojes, no más de 5 artículos, haciendo uso de sesiones y carrito de
compra.

<?php
/*
* Este archivo muestra los productos en una tabla, inicilizando la session
de php. A a vez determina la inactividad de la misma
si pasan 6.
*/
session_start();
$_SESSION["usuario"] = "Rodrigo";
// Establecer tiempo de vida de la sesión en segundos
$inactividad = 600;
// Comprobar si $_SESSION["timeout"] está establecida
if(isset($_SESSION["timeout"])){
 // Calcular el tiempo de vida de la sesión (TTL = Time To Live)
 $sessionTTL = time() - $_SESSION["timeout"];
 if($sessionTTL > $inactividad){
 session_destroy();
 header("Location: /logout.php");
}
}
// El siguiente key se crea cuando se inicia sesión
$_SESSION["timeout"] = time();
include "php/conexion.php";
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="bootstrap.min.css">
</head>
<body>
<head>
<div class="container">
<nav class="navbar navbar-default ">
<p class="navbar-text pull-right">
Conectado como <a href="<?php echo $_SESSION["usuario"];?>" class="navbarlink"><?
php echo $_SESSION["usuario"];?></a>
</p>
<div class="navbar-header">
<a class="navbar-brand" href="https://www.iacc.cl/">IACC</a>
</div>
<ul class="nav navbar-nav">
<li class="active"><a
href="http://localhost/rodrigo/libreria/productos.php">Productos</a></li>
<li><a href="http://localhost/rodrigo/libreria/carta.php">Carro de
Compras</a></li><li><a href="http://localhost/rodrigo/libreria/cierre.php">Cierre
de
Sesion</a></li>
 </ul>
 </div>
</nav>
</div>
 </div>
</head >
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Productos</h1>
<a href="./cart.php" class="btn btn-warning">Ver Carrito</a>
<br><br>
<?php
/*
* Esta es la consula para obtener todos los productos de la base de datos.
*/
$products = $con->query("select * from product");
?>
<table class="table table-bordered">
<thead>
<th>Producto</th>
<th>Descripción</th>
<th>Precio</th>
<th></th>
</thead>
<?php
/*
* Apartir de aqui hacemos el recorrido de los productos obtenidos y los reflejamos
en una
tabla.
*/
while($r=$products->fetch_object()):?>
<tr>
<td><?php echo $r->nombre;?></td>
<td><?php echo $r->descripcion;?></td>
<td>$ <?php echo $r->precio; ?></td>
<td style="width:260px;">
<?php
$found = false;
if(isset($_SESSION["cart"])){ foreach ($_SESSION["cart"] as $c)
{ if($c["product_id"]==$r->id){ $found=true; break; }}}
?>
<?php if($found):?>
<a href="cart.php" class="btn btn-info">Agregado</a>
<?php else:?>
<form class="form-inline" method="post" action="./php/agregar.php">
<input type="hidden" name="product_id" value="<?php echo $r->id; ?>">
 <div class="form-group">
 <input type="number" name="q" value="1" style="width:100px;" min="1"
class="form-control" placeholder="Cantidad">
 </div>
 <button type="submit" class="btn btn-primary">Agregar al carrito</button>
</form>
<?php endif; ?>
</td>
</tr>
<?php endwhile; ?>
</table>
</div>
</div>
</div>
</body>
</html></html>

Carrito.

<?php
/*
* Este archio muestra los productos en una tabla.
*/
session_start();
// Establecer tiempo de vida de la sesión en segundos
$inactividad = 600;
// Comprobar si $_SESSION["timeout"] está establecida
if(isset($_SESSION["timeout"])){
 // Calcular el tiempo de vida de la sesión (TTL = Time To Live)
 $sessionTTL = time() - $_SESSION["timeout"];
 if($sessionTTL > $inactividad){
 session_destroy();
 header("Location:/php/cierre.php");
 }
 }
// El siguiente key se crea cuando se inicia sesión
$_SESSION["timeout"] = time();
include "php/conexion.php";
?>
<!DOCTYPE html>
<html>
<head>
REFERENCIAS BIBLIOGRÁFICAS
Material de a poyo semana 6 IACC.

Ejemplo texto de lectura de IACC:

IACC. (2021). Habilidades para el aprendizaje en la modalidad online. Desarrollo de Habilidades para el
Aprendizaje. Semana 1

Ejemplo referencia: libro

Wagensberg, J. (2017). Teoría de la creatividad: eclosión, gloria y miseria de las ideas. 1.ª edición:

Barcelona, España: Tusquets editores.

Ejemplo referencia: capítulo de libro

Navas, A. (2015). “Educación en un nuevo entorno”. En: L. Castellón, A. Guillier y M. J. Labrador

(2015). Comunicación, redes y poder. Santiago de Chile: RIL editores.

Ejemplo referencia: artículo de revista académica

Lagos, C. (2012). El mapudungún en Santiago de Chile: vitalidad y representaciones sociales en los

mapuches urbanos. Revista de Lingüística Teórica y Aplicada, 50(1), pp. 161-190.

Universidad de Concepción. DOI: http://dx.doi.org/10.4067/S0718-48832012000100008

Ejemplo de referencia: artículo en sitio web

Ministerio del Medio Ambiente (MMA). (s. f.). Planes de recuperación, conservación y gestión de

especies. Recuperado de: http://portal.mma.gob.cl/biodiversidad/planes-de-recuperacion-

conservacion-y-gestion-de-especies/
Ejemplo de referencia: ley o decreto

Ley 19300 (2016). Aprueba Ley sobre Bases Generales del Medio Ambiente. Publicada en el Diario

Oficial el 9 de marzo de 1994. Ministerio Secretaría General de la Presidencia. Recuperado

de: https://www.leychile.cl/Navegar?idNorma=30667

También podría gustarte