Documentos de Académico
Documentos de Profesional
Documentos de Cultura
36 PHP Carrito
36 PHP Carrito
Ejemplo de tienda
Temas a tratar
PHP
Login
PHP
Pgina de login
<form action="procesarLogin.php"method="POST">
<fieldset>
<legend>Usuarioycontraseña</legend>
<p><label>Cliente:</label><inputtype="text" name="usuario"maxlength="10"/></p>
<p><label>Contraseña:</label><inputtype="password"name="password"
maxlength="40"/></p>
<button type="submit">Entrar</button>
</fieldset>
</form>
Juan Pavn - UCM 2012-13
PHP
Variables de sesin
En este ejemplo:
login: true
usuario: id del usuario en la BD
nombre: nombre del usuario en la BD
carrito: asignado al usuario
Se produce al hacer
session_destroy();
Tambin se pueden eliminar todas con
unset($_SESSION);
Esto puede ser til en algunos casos para reiniciar la sesin
PHP
http://www.php.net/manual/es/function.mysql-real-escape-string.php)
<?php
PHP
function limpia_sql($texto){
if (get_magic_quotes_gpc()){
$texto=stripslashes($texto);//quitabarras\ deunstring
}
if (!is_numeric($texto)){//quitasecuenciasdeescapepeligrosas
$texto="'".mysql_real_escape_string($texto)."'";
}
return $texto;
}
PHP
<?php
if (isset($_SESSION["login"])){
echo"<h1>Bienvenido".$_SESSION['nombreusuario']."</h1>";
echo"<p>Useelmenúdelaizquierdaparanavegar.</p>";
}else {
echo"<h1>ERROR</h1>";
echo"<p>Elusuarioocontraseña nosonválidos.</p>";
}
?>
PHP
Registro
<form action="procesarRegistro.php"method="POST">
<fieldset>
<legend>Datosdenuevocliente</legend>
<p><label>NIF:</label><inputtype="text"name="nif"maxlength="10"/></p>
<p><label>Nombre:</label><inputtype="text"name="username"maxlength="30"/></p>
<p><label>Dirección:</label><inputtype="text"name="direccion"
maxlength="50"/></p>
<p><label>Email:</label><inputtype="text"name="email"maxlength="30"/></p>
<p><label>Teléfono:</label><inputtype="text"name="telefono"
maxlength="15"/></p>
<p><label>Contraseña:</label><inputtype="password"name="password"
maxlength="40"/></p>
<button type="submit">Registrarse</button>
</fieldset>
</form>
PHP
10
PHP
11
12
Ejercicios
Usando javascript
http://openid.net/developers/libraries/
PHP
13
OpenID
PHP
14
OpenID - Funcionamiento
15
PHP
Carrito de la compra
Persistencia: MySQL
Servidor
Agente
de usuario
(Navegador)
$_SESSION[]
usuario
Base de datos
carrito
pedidos[]
producto
pedido
producto
pedido
producto
pedido
PHP
16
Operaciones
Inicializar (reset)
Poner producto
Sacar producto
Ver productos
Calcular gastos envo
Tramitar pedido
Pagar
Atributos
Lista de productos
Estado
Comprando
Guardado
Tramitando
Pagando
Finalizado
PHP
17
PHP
18
Clase
Clase
Clase
Clase
cliente
carrito
producto
pedido
login.php, procesaLogin.php
logout.php
registro.php, procesaRegistro.php
ver_catalogo.php
ver_producto.php
ver_carrito.php
comprar_producto.php
etc.
PHP
19
Pagos
Ejemplo: PayPal
https://developer.paypal.com/webapps/developer/docs/classic/ipn/integration-guide/IPNIntro/
http://www.micahcarrick.com/paypal-ipn-with-php.html
PHP
20
PHP
21
PHP
22
PHP
23
Funcionamiento
PHP
24
Funcionamiento
PHP
25
https://developer.paypal.com/webapps/developer/docs/classic/lifecycle/ug_sandbox
Crear un listener
Fichero ipn.php
El URL de este fichero ser el que se indique a PayPal para que enve
los POST con los mensajes IPN
Como plantilla se puede usar el software de
https://github.com/Quixotix/PHP-PayPal-IPN
PHP
26
http://wiki.eclipse.org/Debugging_using_XDebug
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=dep
urarEnPHPEclipsePDTXdebug
Instalacin
Configurar eclipse
Window->Preferences->PHP->Debug
Indicar que se va a usar Xdebug
PHP
27