M. carrito d compra en phpfinal

13
Copyright © Gecko 2010 Derechos Reservados Página 1 Reciclando para un mejor futuroDOCUMENTACIÓN DE LA WEBSITE. INFORMÁTICA EMPRESARIAL INSTITUTO TECNOLOGICO DEL VALLE DE OAXACA MATERIA: INFORMATICA EMPRESARIAL PROFESOR: L.I.BENEDICTO SANTIAGO RAMIREZ INTEGRANTES: -BLANCO HERNANDEZ ANABEL -GIRON REYES LUIS ELIEL -LOPEZ GARCIA ABIGAIL SOCORRO -RODRIGUEZ GASCON ANA -SERNAS JIMENEZ ADAN TRABAJO: MANUAL CARRITO DE COMPRA CON PHP DE TIENDA VIRTUAL GECKO

description

M. carrito d compra en phpfinal

Transcript of M. carrito d compra en phpfinal

Page 1: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 1

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

IINNSSTTIITTUUTTOO TTEECCNNOOLLOOGGIICCOO DDEELL VVAALLLLEE

DDEE OOAAXXAACCAA

MMAATTEERRIIAA:: INFORMATICA EMPRESARIAL

PPRROOFFEESSOORR:: L.I.BENEDICTO SANTIAGO RAMIREZ

IINNTTEEGGRRAANNTTEESS::

-BLANCO HERNANDEZ ANABEL

-GIRON REYES LUIS ELIEL

-LOPEZ GARCIA ABIGAIL SOCORRO

-RODRIGUEZ GASCON ANA

-SERNAS JIMENEZ ADAN

TTRRAABBAAJJOO:: MANUAL CARRITO DE COMPRA CON PHP

DE TIENDA VIRTUAL GECKO

Page 2: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 2

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

ARCHIVO CLASE CARRITO

Para poder usar y acceder a las variables de session iniciamos session.

session_start();

session_register('carrito');

Se define la clase.

class Carrito{

var $salida;

function Carrito(){

$this->salida="";

}

METODO PARA AGREGAR UN NUEVO PRODUCTO AL CARRITO.

Este método recibe el id, nombre, precio y la cantidad del producto que el cliente desea agregar al

carrito.

function Agregar_al_Carrito($id,$nombre,$precio,$cantidad){

try

{

$productos = $_SESSION['carrito'];

if($productos!="")

{

$productos[]=array("id"=>"$id", "nombre" =>

"$nombre","precio" => "$precio","cantidad"=>"$cantidad");

}

else{

$productos = array ( array ("id"=>"$id", "nombre" =>

"$nombre","precio" => "$precio","cantidad"=>"$cantidad"));

}

$_SESSION['carrito'] = $productos;

$this->salida .= "Producto agregado con exito!!";

}

catch (Exception $e)

{

$this->salida = "Ocurrio un error..." . $e->getMessage();

}

return $this->salida;

}

Primero obtenemos el valor de la variable de sesión ‘carrito’ y lo almacenamos en la variable

‘productos’.

$productos = $_SESSION['carrito'];

Si el valor es diferente de vacio quiere decir que ya existen productos en el carrito así que le insertamos un nuevo producto, delo contrario creamos un array de arrays y le insertamos la

Page 3: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 3

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

informacion, la información de cada producto se almacena en un array por lo cual la variable $productos es un array de arrays, enseguida se muestra la forma en la cual la información se almacena. Array

(

[0] => Array

(

[id] => 1abc

[nombre] => Anotador chico con l�piz

[precio] => 100

[cantidad] => 4

)

[1] => Array

(

[id] => 2abc

[nombre] => Anotador mediano con l�piz

[precio] => 150

[cantidad] => 5

)

[2] => Array

(

[id] => 3abc

[nombre] => Anotador grande con l�piz

[precio] => 200

[cantidad] => 8

)

)

Después de insertar el nuevo producto le asignamos el valor de la variable $productos a la

variable de sesión ‘carrito’ con lo cual se actualizara la información de los productos del carrito.

$_SESSION['carrito'] = $productos;

Por ultimo retornamos un mensaje diciendo que se ha agregado al carrito con éxito.

METODO PARA QUITAR UN PRODUCTO DEL CARRITO.

Este método recibe como parámetro el id del producto a quitar.

function Quitar_del_Carrito($id_quitar){

try

{

if($_SESSION['carrito'])

{

$productos = $_SESSION['carrito'];

foreach($productos as $valores)

{

$id = $valores["id"];

if($id_quitar != $id)//Si son diferente se copia al temporal

{

$array_temporal[] = $valores;

}

/*else

{

No hace nada

}*/

}

$productos = $array_temporal;

Page 4: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 4

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

$_SESSION['carrito'] = $productos;

$this->salida .= "Se ha quitado con exito!!";

}

else

{

$this->salida .= "El carrito esta vacio";

}

}

catch (Exception $e)

{

$this->salida = "Ocurrio un error..." . $e->getMessage();

}

return $this->salida;

}

Lo que este método hace algo muy sencillo y se explica enseguida, mediante un ciclo foreach se

recorre el carrito compara si el valor que se ha recibido como parámetro y el que esta almacenado

en el carrito son diferentes se almacena el registro en una variable temporal de lo contrario (son

iguales) el ciclo continua hasta llegar al final y se ignora el que es igual, al llegar al final el carrito se

actualiza asignándosele lo de la variable temporal.

METODO PARA QUITAR UN PRODUCTO DEL CARRITO.

function Mostrar_Carrito(){

try

{

if($_SESSION['carrito'])

{

$productos = $_SESSION['carrito'];

$this->salida .="<h1 class='t_car'>Los productos de su

carrito:</h1>";

foreach($productos as $valores)

{

$id = $valores["id"];

$nombre = $valores["nombre"];

$precio = $valores["precio"];

$cantidad = $valores["cantidad"];

$this->salida .= "<div class='carrito'>

<p>

<span class='etiq'>Clave: </span>" .

$id . "<br />\n

<span class='etiq'>Nombre: </span>" .

$nombre . "<br />\n

<span class='etiq'>Precio: </span>" .

$precio . "<br />\n

<span class='etiq'>Cantidad: </span>"

. $cantidad . "<br />

</p>

<div class='modificar_car'>

<a class='edita_carrito'

href=\"javascript:refrescar('carrito.php?operacion=quitar&id_quitar=$id',

'right_content');\">Quitar</a>

<a class='edita_carrito'

href=''>Modificar</a>

</div>

</div>\n";

}

}

Page 5: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 5

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

else

{

$this->salida .= "Sin nada en el carrito";

}

}

catch (Exception $e)

{

$this->salida .= "Ocurrio un error..." . $e->getMessage();

}

return $this->salida;

}

Para mostrar los productos almacenados en el carrito se obtiene el valor de la variable de sesión

‘carrito’, esta información se encuentra estructurada en forma de un arreglo, para acceder a cada

elemento y mostrarlo de manera legible se recorre el arreglo con un ciclo foreach y se obtiene

cada elemento (producto) y se extrae la información de cada posición y se estructura de manera

que el usuario pueda leerla y se retorna la varible $salida, si el carrito no contiene nada solo se

muestra un mensaje diciendo que el carrito esta vacio.

METODO VACIAR EL CARRITO.

function Vaciar_Carrito(){

try{

$_SESSION['carrito']="";

unset($productos);

$this->salida .= "Borrado con exito!!";

}

catch(Exception $e)

{

$this->salida .= "Ocurrio un error..." . $e->getMessage();

}

return $this->salida;

}

Lo único que este método realiza es eliminar la variable $productos y a la variable de sesión

‘carrito’ se le asigna “” (vacio).

CLASE COMPLETA.

session_start();

session_register('carrito');

class Carrito{

var $arreglo_de_id_productos;

var $salida;

function Carrito(){

$this->arreglo_de_id_productos =0;

$this->salida="";

}

function Agregar_al_Carrito($id,$nombre,$precio,$cantidad){

try

{

$productos = $_SESSION['carrito'];

if($productos!="")

{

$productos[]=array("id"=>"$id", "nombre" => "$nombre","precio" =>

Page 6: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 6

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

"$precio","cantidad"=>"$cantidad");

}

else{

$productos = array ( array ("id"=>"$id", "nombre" =>

"$nombre","precio" => "$precio","cantidad"=>"$cantidad"));

}

$_SESSION['carrito'] = $productos;

$this->salida .= "Producto agregado con exito!!";

}

catch (Exception $e)

{

$this->salida = "Ocurrio un error..." . $e->getMessage();

}

return $this->salida;

}

function Quitar_del_Carrito($id_quitar){

try

{

if($_SESSION['carrito'])

{

$productos = $_SESSION['carrito'];

foreach($productos as $valores)

{

$id = $valores["id"];

if($id_quitar != $id)//Si son diferente se copia al temporal

{

$array_temporal[] = $valores;

}

/*else

{

No hace nada

}*/

}

$productos = $array_temporal;

$_SESSION['carrito'] = $productos;

$this->salida .= "Se ha quitado con exito!!";

}

else

{

$this->salida .= "El carrito esta vacio";

}

}

catch (Exception $e)

{

$this->salida = "Ocurrio un error..." . $e->getMessage();

}

return $this->salida;

}

function Mostrar_Carrito(){

try

{

if($_SESSION['carrito'])

{

$productos = $_SESSION['carrito'];

$this->salida .="<h1 class='t_car'>Los productos de su

carrito:</h1>";

foreach($productos as $valores)

{

$id = $valores["id"];

$nombre = $valores["nombre"];

$precio = $valores["precio"];

$cantidad = $valores["cantidad"];

$this->salida .= "<div class='carrito'>

Page 7: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 7

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

<p>

<span class='etiq'>Clave: </span>" .

$id . "<br />\n

<span class='etiq'>Nombre: </span>" .

$nombre . "<br />\n

<span class='etiq'>Precio: </span>" .

$precio . "<br />\n

<span class='etiq'>Cantidad: </span>"

. $cantidad . "<br />

</p>

<div class='modificar_car'>

<a class='edita_carrito'

href=\"javascript:refrescar('carrito.php?operacion=quitar&id_quitar=$id',

'right_content');\">Quitar</a>

<a class='edita_carrito'

href=''>Modificar</a>

</div>

</div>\n";

}

}

else

{

$this->salida .= "Sin nada en el carrito";

}

}

catch (Exception $e)

{

$this->salida .= "Ocurrio un error..." . $e->getMessage();

}

return $this->salida;

}

function Vaciar_Carrito(){

try{

$_SESSION['carrito']="";

unset($productos);

$this->salida .= "Borrado con exito!!";

}

catch(Exception $e)

{

$this->salida .= "Ocurrio un error..." . $e->getMessage();

}

return $this->salida;

}

CLASE GECKO.

Mediante el uso de esta Clase podremos separar la parte que se conecta a la base de datos de las

demás funciones de la website.

Definimos la clase.

class Gecko{

var $conexion;

var $resultado;

Esta clase cuenta con 4 métodos lo cuales se describen a continuación.

Page 8: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 8

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

function abre_conexion($servidor,$base,$usuario,$contrasena)

function obten_productos($producto)

function registra_usuario($nombre_usuario, $password, $nombre,$apellidos,$email)

function login($usuario)

METODO ABRE CONEXION.

Abre la conexión con la base de datos.

function abre_conexion($servidor,$base,$usuario,$contrasena)

{

$this->conexion= mysql_connect($servidor, $usuario, $contrasena);

if (!$this->conexion) {

die("No se puede conectar con el servidor: " . mysql_error());

}

else

{

mysql_select_db($base);

}

}

METODO OBTEN PRODUCTOS.

Este método se conecta a la base de datos y obtiene los productos.

function obten_productos($producto){

if ($producto=="")

$sql = "SELECT id_producto, nombre, precio, caracteristicas, categoria,

imagen FROM productos";

else

$sql = "SELECT id_producto, nombre, precio, caracteristicas, categoria,

imagen FROM productos WHERE id_producto = '$producto'";

$salida="";

try{

$this->resultado=mysql_query($sql,$this->conexion);

if(!$this->resultado)

throw new Exception("Error en la consulta");

else

{

$salida = $this->resultado;

}

}

catch (Exception $e)

{

$salida = "No hay registros..." . $e->getMessage();

}

return $salida;

mysql_close($this->conexion);

}

METODO VACIAR REGISTRA USUARIO.

Este método registra un usuario en la tabla usuarios de la base de datos.

function registra_usuario($nombre_usuario, $password,

Page 9: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 9

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

$nombre,$apellidos,$email){

$sql = "INSERT INTO usuarios

(nombre_usuario,password,nombre,apellidos,correo)VALUES('$nombre_usuario','$passw

ord','$nombre','$apellidos','$email')";

$salida="";

try{

$this->resultado=mysql_query($sql,$this->conexion);

$afectados = mysql_affected_rows();

if($afectados!=-1)

{

$salida .="Se han actualizado: ". $afectados . "registro(s).";

}

else

{

$salida .= "No se puedo registrar";

}

}

catch (Exception $e)

{

$salida = "Error: " . $e->getMessage();

}

return $salida;

mysql_close($this->conexion);

}

METODO LOGIN.

Para poder acceder a los recursos de la WebSite como las promociones y descripción de los

productos se reserva el derecho a los usuarios registrados para lo cual nos sirve este método.

function login($usuario){

$salida ="";

try{

$sql ="SELECT nombre_usuario, password FROM usuarios WHERE

nombre_usuario = '$usuario'";

$this->resultado= mysql_query($sql,$this->conexion);

$datos = mysql_fetch_array($this->resultado);

$salida = $datos;

}catch(Exception $e)

{

$salida = "Error: " . $e->getMessage();

}

return $salida;

}

Recibe el nombre de usuario y consulta en la base de datos, retornando el password, para su

posterior comparación.

Page 10: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 10

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

VALIDACIÓN DE LOS FORMULARIOS MEDIANTE JQUERY

Con ayuda del plugin de validación de formularios del Framework jQuery se imprentaron reglas las cuales se cargan después de que el documento está listo y las cuales se muestran enseguida.

$(document).ready(

function(){

//Validacion del formulario de registro

$("#frm_registro").validate(

{

rules:{

usuario:{

required: true

//remote: "disponibilidad_user.php"

},

password:{

required: true,

minlength: 5

},

password_rpt: {

required: true,

equalTo: "#password"

},

nombre:{

required: true

},

apellidos:{

required: true

},

email: {

required: true,

email: true

}

},

submitHandler: function(form) {

jQuery(form).ajaxSubmit({

target: "#right_content"

});

}

}

);

// show a simple loading indicator

var loader = jQuery('</br><p>Procesando...por favor espere</p><img

src="images/loading6.gif" alt="loading..." />')

.appendTo("#proceso")

.hide();

jQuery().ajaxStart(function() {

loader.show();

}).ajaxStop(function() {

loader.hide();

}).ajaxError(function(a, b, e) {

throw e;

});

$("#login").validate(

{

rules:{

user:{

required: true

},

pass:{

required: true

Page 11: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 11

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

}

},

submitHandler: function(form) {

jQuery(form).ajaxSubmit({

target: "#usuarios"

});

}

});

function inicioEnvio()

{

var x=$("#right_content");

x.html('<img src="images/cargando.gif">');

}

function llegadaDatos(datos)

{

$("#right_content").text(datos);

}

function problemas()

{

$("#right_content").text('Problemas en el servidor.');

}

//Validacion del formulario de pedido

$("#pedido").validate(

{

rules:{

cantidad:{

required: true,

digits:true

}

},

submitHandler:function(form){

jQuery(form).ajaxSubmit({

target: "#right_content"

})

}

});

Page 12: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 12

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

MODELO RELACIONAL DE LA BASE DE DATOS

Page 13: M. carrito d compra en phpfinal

Copyright © Gecko 2010 Derechos Reservados Página 13

Reciclando

para un

mejor

futuro…

DOCUMENTACIÓN DE LA WEBSITE.

INFORMÁTICA EMPRESARIAL

RECURSOS UTILIZADOS.

PHP Como lenguaje de programacion web para la creacion de paguinas web dinamicas, manipulacion de sesiones y conexión a base de datos

Mysql Como motor de base de datos

AJAX

jQuery Framework

CSS Hojas De Estilo Cascada librosweb.es