Carrito de compras PHP

Páginas: 6 (1295 palabras) Publicado: 10 de octubre de 2014
Ejemplo de aplicación PHP: Tienda
Aplicaciones Web/Sistemas Web

Juan Pavón Mestras
Dep. Ingeniería del Software e Inteligencia Artificial
Facultad de Informática
Universidad Complutense Madrid

Material bajo licencia Creative Commons

Ejemplo de tienda


Temas a tratar




Autenticación y control de sesión
Carrito de la compra
Medios de pago

Juan Pavón - UCM 2012-13PHP

2

Login


Para identificar los usuarios se guarda el password codificado




Los algoritmos de hashing como SHA o MD5, pueden ser crackeados
• Pero para la práctica pueden valer
Hay algoritmos más sofisticados: bcrypt encryption o sha-256/512 con
refuerzo de claves (key stretching)
• Se puede encontrar en http://blackbe.lt/php-secure-sessions/

Juan Pavón - UCM2012-13

PHP

3

Página de login



Usuario y contraseña
Cliente: 
Contraseña: 
Entrar


Juan Pavón - UCM 2012-13

PHP

4

Variables de sesión


Una sesión tiene las variables que determinan un contexto.



En este ejemplo:







login: true
usuario: id del usuario en la BD
nombre: nombre del usuario en la BD
carrito: asignado al usuarioPara saber si una sesión está activa
if ( isset($_SESSION["login"]) )



Al acabar la sesión (logout) se eliminarán todas las variables de
sesión




Se produce al hacer
session_destroy();
También se pueden eliminar todas con
unset($_SESSION);
• Esto puede ser útil en algunos casos para reiniciar la sesión

Juan Pavón - UCM 2012-13

PHP

5

Página de proceso de loginif ($_SERVER['REQUEST_METHOD'] == 'POST') {
$uname = limpia_sql(htmlspecialchars($_POST['usuario']));
$pword = limpia_sql(htmlspecialchars($_POST['password']));
// Conexión a la BD tienda
$bd = conectaBD();
// Comprueba si el registro (usuario,password) está en la BD:
$query = "SELECT * FROM passwords WHERE usuario = $uname AND password =md5($pword)";
$resultado = $bd‐>query($query);$numregistros = $resultado‐>num_rows;  
if ($resultado) {
if ($numregistros == 1) {
// El registro del usuario y password en la BD
$_SESSION["login"] = true;
$_SESSION["usuario"] = $uname;
// Mira en la BD cual es el nombre del usuario que se ha logeado
$resultado‐>free();
$query = "SELECT * FROM clientes WHERE nif = $uname";
$resultado = $bd‐>query($query);$registro = $resultado‐>fetch_assoc();
$_SESSION["nombreusuario"] = $registro["nombre"];
// Crea un carrito para este usuario en la sesión
$_SESSION["carrito"] = new carrito($usuario);

}
$bd‐>close();
}  ?>
PHP

Juan Pavón - UCM 2012-13

6

Ataques de inyección SQL


Es importante preparar la entrada cuando se vaya a utilizar para
acceder a la BD



Por ejemplo (del manual de PHPhttp://www.php.net/manual/es/function.mysql-real-escape-string.php)


Juan Pavón - UCM 2012-13

PHP

9

Registro



Datos de nuevo cliente
NIF: 
Nombre: 
Dirección: 
Email: 
Teléfono: 
Contraseña: 
Registrarse



Juan Pavón - UCM 2012-13

PHP

10

Página de proceso de registro
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$uname= limpia_sql(htmlspecialchars($_POST['nif']));
$pword = limpia_sql(htmlspecialchars($_POST['password']));
$pLength = strlen($pword);
if ($pLength >= 8 && $pLength query($query);
$numregistros = $resultado‐>num_rows;  
if ($numregistros == 1) { // Ya existe un usuario con ese uname (nif)
$error = $error . "Ya existe este usuario";
}
else { // Se procede a registrar el usuario
// 1) En la tabla de clientes
$query= "INSERT INTO clientes (nif, nombre, direccion, email, telefono) 
VALUES ($uname, $nombre, $direccion, $email, $telefono)";
$resultado = $bd‐>query($query);
// 2) En la tabla de passwords
$pword = md5($pword);
// El password se guardará codificado
$query = "INSERT INTO passwords (usuario, password, fecha) VALUES ($uname, 
'$pword', CURRENT_TIMESTAMP)";
$resultado = $bd‐>query($query)...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Carrito de compras en php
  • Manual Carrito Compra Php
  • Carrito De Compra
  • carrito de compra
  • carrito compras
  • Carrito De Compras En Linea
  • Carrito Compras
  • Carrito de compras

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS