Alvaro Figueroa Control6

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 17

Control Semana6

Alvaro Figueroa

Programación avanzada I

Instituto IACC

9 de Agosto de 2020
Desarrollo

1.- De acuerdo con los conocimientos previos respecto al uso de sesiones en la

programación avanzada, describa que características debe tener una sesión.

El inicio de sesión mediante de php es necesario para que el servidor maneje información del

usuario mediante el array $_sesion, para ello, hay 3 aspectos importantes para realizar que son:

CREAR, MODIFICAR, ELIMINAR

- Crear: Esta se puede crear mediante sesion_start () ; , la que se debe definir el nombre de

usuario con la variable $_SESSION['usuario'] = alvaro123;, Esto hace que inicie la sesión entre

el usuario y el servidor.

- Modificar: Esta se puede atribuir al momento que el usuario desee cambiar sus datos

personales, ya sea nombre de usuario, contraseña, etc., si deseamos, podemos confirmar que se

halla cambiado dichos datos usando algunas funciones como:

1) session_start(); session_id('nuevoID');

echo “su nuevo id ha sido modificado a” .session_id(); // nuevoID

2) session_start();

$_SESSION['usuario'] = 'javier_1975';

Este se usa al momento de cambio de nombre de sesión.


- Eliminar: Esta función, es para eliminar la sesión abierta para el usuario, con el fin de

resguardar sus datos almacenados durante esta, si bien existen otras medidas de seguridad como

el tiempo máximo de sesión abierta o llamadas sesión time outs.

Estas sesiones deben o pueden cerrarse mediante el comando;

session_start();

unset($_SESSION['usuario']);

la función unset se encargará de eliminar lo que se encuentre dentro de sus paréntesis que

en este caso es la sesión y dentro de los corchetes el nombre de la sesión.

2.- Que tipos de errores podría diferenciar en el uso de sesiones.

Durante el uso de sesiones, siempre se esta propenso a errores, de los cuales y en su basto

abanico, la mas común puede ser, el error de inicio y puede deberse a que cuando comprobamos

si el inicio es correcto dentro del if(isset($_post[user]))

Si está mal redactado el usser o usuario, éste retornara falso y habrá un error en el inicio, lo

mismo pasaría con el pass.

Igualmente si ocurre error durante las sesiones debe arrojar mensajes de error, los cuales

podemos identificar;

1) E_ERROR: error fatal durante ejecución.

2) E_STRICT: sugiere cambio de código para mejorar compatibilidad en versiones

posteriores de PHP.

3) E_DEPRECATED: informa sobre funciones obsoletas durante ejecución.

4) E_WARNING: advierte errores no fatales durante ejecución.


3.- Cree una tienda virtual para una librería, no más de 5 artículos, combinando el uso de

sesiones y carrito de compra.

A continuación una imagen de como quedaría nuestro carrito

Se ejecuta un script de sesión dentro de php para que no de error al momento de querer iniciar

sesión en la siguiente hoja de php.


Se Crea en html, el formulario de ventas, en el cual se agregan las etiquetas que definen el

trabajo con flexbox para el sistemas de rejillas en conjunto con Bootstrap.

Para el formulario de ventas, se ejecutan etiquetas div, ya que estas son line in block, las que se

requieren por trabajar con responsive dentro del código fuente.-

Dentro del div se crea la clase container, para que quede alineado al centro en conjunto con las

imágenes y códigos pertinentes.

Primero, se inserta el elemento o etiqueta header, como es normal dentro de body para que sea el

encabezado de la página, dentro de este, sumamos la etiqueta img, para que sea visible el logo de

la librería.

Dentro del div principal se ejecuta el class= row center, este para que las imágenes ce centren

dentro del container y no queden una por debajo de otra.

Posterior a esta se usa sistema de rejilla indicándole que en dispositivos móviles o muy pequeños

se vea una sola imagen (col-xs-10), en pequeños como tablets se vean 2 (col-sm-6), esto debido a

que se interpretan en 12 casillas, si es 6, se deben de ver 2 productos, en dispositivos medianos 3

imagines o productos (col-md-4).


Dentro de un <div> se insertan las imágenes de los productos, con su descripción con el atributo

ALT y para cada atributo se crea una etiqueta form, la cual se encargada de enviar los datos a las

sesiones para que estas las almacenen, igualmente por cada form se crean 4 input, 2 tipos hidden

1 submit para enviar los datos de ese producto y otro tipo number para elegir la cantidad de

productos que desea agregar al carro.

Finalizando el código html, se inserta php para indicarle mediante un if isset, en el cual el isset,

comprueba los datos arrojando resultados booleanos (TRUE/FALSE), mediante la variable

request, que esta se encarga de recuperar datos o variables de formularios, que en este caso esos

datos son proveniente del input tipe submit o botón agregar que se aprecia visualmente.

Del cual para cada request se crea una variable.

Se crea una sesión super global en donde estas siguen el flujo de trabajo y que sean representadas

por sus variables para que almacenen dichos datos y posteriormente ser llamadas en la hoja de

sesión.

Dentro de esta pagina se debe de iniciar sesión la cual es fundamental para el correcto

funcionamiento de esta.

Se crea un titulo para identificar al carrito de compras, en donde seguidamente mediante un if

isset, se verifica la información obtenida de $_session.

Se inserta un foreach para que siga la iteración del array, en donde las variables, $produto

$cantidad y $precio , se convierte en otro array, por lo que se debe de recorrer con foreach. En

donde la variable índice es el nombre del producto y la variable arreglo, la de cantidad y precio.
Adjunto códigos fuentes

carrito.php

<?php

session_start();

//session_destroy();

echo "<h3>CARRITO DE COMPRAS</h3>";

if (isset($_SESSION["carrito"])) {

foreach ($_SESSION["carrito"] as $indice => $arreglo) {

echo "<hr>producto: <strong>". $indice."</strong><br>";

foreach ($arreglo as $key => $value) {

echo $key. " : " .$value. "<br>";

}else{

echo "<script>alert('el carrito esta vacio');</script>";

?>

<a href="carritocompras.php">regresar</a>
carritocompras.php

<?php

session_start();

?>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

<script src="bootstrap/js/bootstrap.js"></script>

<link rel="stylesheet" href="bootstrap/css/.css">

<link rel="stylesheet" type="text/css" href="estilo.css">

<link rel="stylesheet"

href="https://cdnjs.cloudflare.com/ajax/libs/flexboxgrid/6.3.1/flexboxgrid.min.css">

<title>tienda virtual</title>

</head>

<body>

<div class="row main-container middle-xs center-xs" >

<div class="col-xs-11 col-lg-7">

<div class="box">

<header class="main-header"> </header>

<div class="menu">

<header class="text-center">

<img src="imagenes/logo.png" height="100">

<h1 >Tu libreria virtual</h1>


</header>

<div class="row center-xs">

<div class="col-xs-10 col-sm-6 col-md-4 product " >

<div class="card">

<img src="imagenes/pegamento.png" alt="pegamento">

<form action="carritocompras.php" method="post">

<h3>pegamento</h3>

<p>$2.000</p>

<input type="hidden" name="txtprecio" value="2000">

<input type="number" name="cant" value="1" style="width:30px;"><br>

<input type="hidden" name="txtproducto" value="pegamento">

<input type="submit" name="btnagregar" value="agregar">

</form>

</div>

</div>

<div class="col-xs-10 col-sm-6 col-md-4 product " >

<div class="card">

<img src="imagenes/cuadernos.png" alt="cuadernos">

<form action="carritocompras.php" method="post">

<h3>cuaderno</h3>

<p>$1000</p>

<input type="hidden" name="txtprecio" value="1000">

<input type="number" name="cant" value="1" style="width:30px;"><br>

<input type="hidden" name="txtproducto" value="cuaderno">


<input type="submit" name="btnagregar" value="agregar">

</form>

</div>

</div>

<div class="col-xs-10 col-sm-6 col-md-4 product " >

<div class="card">

<img src="imagenes/lapices.png" alt="lapices">

<form action="carritocompras.php" method="post">

<h3>lapices</h3>

<p>$700</p>

<input type="hidden" name="txtprecio" value="700">

<input type="number" name="cant" value="1" style="width:30px;"><br>

<input type="hidden" name="txtproducto" value="lapices">

<input type="submit" name="btnagregar" value="agregar">

</form>

</div>

</div>

<div class="col-xs-10 col-sm-6 col-md-4 product " >

<div class="card">

<img src="imagenes/banderas.png" alt="banderitas">

<form action="carritocompras.php" method="post">

<h3>banderitas</h3>

<p>$900</p>

<input type="hidden" name="txtprecio" value="900">


<input type="number" name="cant" value="1" style="width:30px;"><br>

<input type="hidden" name="txtproducto" value="banderitas">

<input type="submit" name="btnagregar" value="agregar">

</form>

</div>

</div>

<div class="col-xs-10 col-sm-6 col-md-4 product " >

<div class="card">

<img src="imagenes/maleta.png" alt="maleta">

<form action="carritocompras.php" method="post">

<h3>maleta</h3>

<p>$10000</p>

<input type="hidden" name="txtprecio" value="10000">

<input type="number" name="cant" value="1" style="width:30px;"><br>

<input type="hidden" name="txtproducto" value="maleta">

<input type="submit" name="btnagregar" value="agregar">

</form>

</div>

</div>

</div>

</div>

</div>

</div>

<a href="carrito.php" ><img src="imagenes/carrito.jpg"><br>visualizar carrito</a>


</div>

<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-

DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"

crossorigin="anonymous"></script>

<?php

if(isset($_REQUEST["btnagregar"])){

$producto = $_REQUEST["txtproducto"];

$cantidad = $_REQUEST["cant"];

$precio = $_REQUEST["txtprecio"];

$_SESSION["carrito"][$producto]["cant"] = $cantidad;

$_SESSION["carrito"][$producto]["precio"] = $precio;

?>

</body>

</html>

estilo.css

label{

display: inline-block;

width: 80px;

.main-header{

background-color: #34495E;

padding-left: 15px;
padding-right: 15px;

padding-top: 10px;

padding-bottom: 10px;

.text-center{

text-align: center;

.product img{

width: 90px;

.card{

border-radius: 4px;

background-color: white;

box-shadow: 0 1px 3px rgba(0.0.0.0.12), 0 1px 2px rgba(0,0,0,0.24)

}
Bibliografía

foreach. https://www.php.net/manual/es/control-structures.foreach.php

IACC (2020). Sesiones y control de usuarios con PHP. Programación Avanzada I. Semana 6.

Sesion. https://www.php.net/manual/es/reserved.variables.session.php

Sesiones en php. https://diego.com.es/sesiones-en php#:~:text=Las%20sesiones%20permiten

%20mantener%20y,mediante%20el%20array%20%24_SESSION&text=%24_SESSION

%20es%20un%20array,un%20sitio%20web%20o%20aplicaci%C3%B3n.

También podría gustarte