MODULO DE USUARIOS PARTE 1



Documentos relacionados
2) Una vez instalada ir a Editar la página, pinchar en aplicaciones y buscar Static HTML: iframe tabs.

XAJAX: una librería de AJAX para PHP (parte 1)

Tutorial Servicios Web

Como usar Zend_Auth del Zend Framework

Conectar Flash con Access usando MDM Zinc

Desarrollo de sitios web con PHP y MySQL

Tema 6 Parte III. Frameworks web para dispositivos móviles

PHP Hypertext PreProcessor

Aspectos avanzados de jquery Mobile

REGISTRO DE USUARIOS EN PHP Y MYSQL

LSC Bases de Datos I 1 INTRODUCCION

Partes del formulario

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

Ejercicios del bloque de Web de Sistemas de Información:

Dossier de prácticas

Práctica 02. Formularios

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACIÓN

EJERCICIOS HTML BÁSICOS

Formularios HTML. Elementos de Programación y Lógica

Tutorial de Unity 3D Tema 52 Bases de Datos. Tutorial de Unity 3D. Bases de Datos

Manejo de datos BLOB con PHP y MySQL

MAGENTO to SUGAR CRM guía de instalación

Aprendiendo Yii. Publicación. Armando Arce

PÁGINAS DINÁMICAS WEB CON PHP. Unidad 4 Aplicaciones Web

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS

PROYECTO MIS IMÁGENES,

Desarrollo PHP con Webmatrix

Introducción a PostgreSQL con PHP

Principales rutinas de mantenimiento

Manual del Investigador de OpenClinica

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

CAPAS O CONTENEDORES EN HTML. ETIQUETAS DIV Y SPAN. EJEMPLOS. MAQUETAR O DAR ESTRUCTURA A LAS PÁGINAS WEB. (CU00726B)

Redes de Computadoras Práctica 4: World Wide Web

Programación Gambas 3 Prof: Mileti, P. Acceso a base de datos SQLite desde Gambas 3.

PHP: Interacción con HTML

MANUAL DE USUARIO: AGENCIA DE VIAJES Configuración. Principales funcionalidades

Bases de Datos. Marta Elena Zorrilla Pantaleón Rafael Duque Medina DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN

Guía para la Actualización Manual. Kaspersky Antivirus y Kaspersky Internet Security

Guía de uso del Portal de Soporte Readsoft

SOLUCION EJERCICIOS VALIDACION DE FORMULARIOS

all: doctrine: class: sfdoctrinedatabase param: dsn: mysql:host=localhost;dbname= bdd_erhaj username: erhaj password: admin

Curso de Desarrollo Web en PHP orientado a objetos con MVC. Cookies y Sesiones Variables de Sesión Encriptación, hashing con MD5, SHA1 y SHA512

Manual del Administrador. Centro Bibliotecario

Guía de integración del módulo Paga+Tarde en Magento

Manual de usuario para Facturación Electrónica 2011

Manual de Usuario DeclaraSoft

PHP Y BASES DE DATOS. Introducción a SQL

EJEMPLO DE APERTURA Y CIERRE DE UNA ETIQUETA.

CEFIRE: Curso Administración de APACHE

GUÍA DE CONFIGURACIÓN PARA LAS CÁMARAS IP

Manual de Usario de XEDIGenerator Instalación

DOMINIO CON IP DINÁMICA

GUÍA DEL PORTAL DE INTEGRATED DNA TECHNOLOGIES (IDT)

Manual de usuario para Facturación Electrónica 2011

De uno a uno : Ejemplo de una llave primaria a otra llave primaria De uno a muchos : Ejemplo de una llave primaria a una Regular o Foránea.

UNIVERSIDAD JUÁREZ DEL ESTADO DE DURANGO

Manual de Reinstalación de base de datos AXTRAX NG

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Tecnología de Programación

PORTAL DE INTEGRATED DNA TECHNOLOGIES (IDT) 1. ALTA DE CLIENTE: CÓMO CREAR UNA CUENTA

Manual para el uso de GIT Los siguientes pasos indican el procedimiento para entrar a GIT y para agregar la llave pública.

TEMA 4. Introducción a la programación con el lenguaje JavaScript. Tecnologías de la Información 1ºBachillerato IES Zurbarán (Badajoz)

Aplicación práctica de PHP en la que construimos un calendario que muestra el mes y año actual y permite moverse a otro mes y año.

RECUPERAR DATOS DE UN FORMULARIO HTML USANDO PHP. USO DE $_GET. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00833B)

Manual del Servicio Web. Afilnet.com. Afilnet. Servicios de Telecomunicaciones SMS

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

Manual de la Aplicación Móvil Creapedidos. Gestión y seguimiento de pedidos desde tu dispositivo móvil.

Primero escoja el dispositivo de entre las opciones disponibles: Encontraremos varios espacios para llenar los más importantes son:

MANUAL CONFIGURACIÓN P2P EZVIZ HIKVISION

Apéndice A. Manual de usuario. Usuario genérico. Acceso al sistema web. Registro de usuario

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS

Instalación, Mantenimiento y Administración del PHPWebQuest para una Intranet

Curso de PHP. Acceso a bases de datos MySQL en PHP

Carlos Alberto Alegría. Tutorial: realizar CRUD con Zend Framework para php. Entorno de Programación: Eclipse PHP. Servidor de prueba: Xampp.

*si tuvieron algún problema pueden verificar la documentación oficial Vamos a crear una BD llamada droid_login como lo muestra la siguiente imagen:

PORTAL DE INTEGRATED DNA TECHNOLOGIES (IDT) 1. ALTA DE CLIENTE: CÓMO CREAR UNA CUENTA

Cómo administrar una base de datos?

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

myapplicationgenerator

MANUAL CONFIGURACION SIPTAR Y ADAPTADOR VOIP

Ejercicios y cuestiones

UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE TEMA: XHTML CATEDRA: INTRODUCCION A LA PROGRAMACION EN INTERNET

Sincronización del Servidor.

Agregar Nueva Empresa en Millennium Revisión: 10/7/2014

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Elastix Web Services (WSDL) Manual de Usuario

HTML. HTML (HyperText Markup Language) Creado en 1989 por el físico nuclear TIM BERNERS- LEE

myappgen Usted Construye la aplicación mientras la ejecuta

INSTALACIÓN Y CONFIGURACION DNS WINDOWS SERVER 2003

Introducción a la extensión de scripting en gvsig 2.0

MANUAL DE INSTALACIÓN

Tema: GESTIÓN DE SESIONES EN PHP.

Transcripción:

MODULO DE USUARIOS PARTE 1 Voy a dividir el modulo de usuario en 2 partes, en esta primera parte habilitaremos el modulo de usuarios pero la creacion sera desde codigo SQL, en la segunda parte habilitaremos una vista intuitiva para que el usuario pueda administrar usuarios sin tocar codigo SQL. Vamos a empezar con el desarrollo de nuestro sistema de inventario, lo pimero que haremos sera habilitar a los usuarios. Habilitar sesiones Basta ir al archivo legobox/index.php y agregar la linea session_start(); en la segunda linea. Modelo Localizacion: inventario/core/modules/index/model/userdata.php [code language="php"] class UserData { public static $tablename = "user"; public function UserData(){ $this->name = ""; $this->lastname = ""; $this->username = ""; $this->password = ""; $this->is_active = "0"; $this->created_at = "NOW()"; public function add(){ $sql = "insert into ".self::$tablename." (name,lastname,username,password,is_active,is_admin,created_at) "; $sql.= "value (\"$this->name\",\"$this->lastname\",\"$this->username\",\"$this- >password\",$this->is_active,$this->is_admin,$this->created_at)"; 1

Executor::doit($sql); public static function delbyid($id){ $sql = "delete from ".self::$tablename." where id=$id"; Executor::doit($sql); public function del(){ $sql = "delete from ".self::$tablename." where id=$this->id"; Executor::doit($sql); public function update(){ $sql = "update ".self::$tablename." set name=\"$this->name\",lastname=\"$this- >lastname\",username=\"$this->username\",password=\"$this- >password\",is_active=$this->is_active,is_admin=$this->is_admin where id=$this- >id"; Executor::doit($sql); public static function getbyid($id){ $sql = "select * from ".self::$tablename." where id=$id"; $query = Executor::doit($sql); return Model::one($query[0],new UserData()); public static function getall(){ $sql = "select * from ".self::$tablename." order by created_at desc"; $query = Executor::doit($sql); return Model::many($query[0],new UserData()); [/code] 2

El modelo de usuarios contiene las funciones para agregar, actualizar, eliminar, mostrar varios o un usuario. Layout Localizacion: inventario/core/modules/index/view/layout.php El layout contiene el codigo que incluye los archivos css, javascript y el menu principal, ademas dentro del layout se valida el usuario para mostrar el login o mostrar una vista especifica basandose en si el usuario inicio o no sesion. Codigo: [code language="php"] <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta charset="utf8"> <title>.: Inventario :.</title> <link rel="stylesheet" type="text/css" href="res/bootstrap/css/bootstrap.min.css"> <script src="res/jquery.min.js"></script> </head> <body > <?php if(session::getuid()!=""):?> <header class="navbar navbar-default navbar-fixed-top" role="banner"> <div class="container"> <div class="navbar-header"> <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bsnavbar-collapse"> <span class="sr-only">toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="index.php">inventario </a> 3

<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation"> <?php if(session::getuid()!=""):?> <ul class="nav navbar-nav"> <li><a href="index.php?view=home"><i class="glyphicon glyphicon-home"></i> Inicio</a></li> <li><a href="index.php?view=sell"><i class="glyphicon glyphicon-usd"></i> Vender</a></li> <li><a href="index.php?view=products"><i class="glyphicon glyphicon-glass"></i> Productos</a></li> <li><a href="index.php?view=sells"><i class="glyphicon glyphicon-shoppingcart"></i> Ventas</a></li> <li><a href="index.php?view=inventary"><i class="glyphicon glyphicon-stats"></i> Inventario</a></li> </ul> <?php endif;?> <?php if(session::getuid()!=""):?> <?php $u=null; if(session::getuid()!=""){ $u = UserData::getById(Session::getUID()); $user = $u->name." ".$u->lastname;?> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown"> <?php echo $user;?> <b class="caret"></b> </a> <ul class="dropdown-menu"> <li><a href="index.php?view=configuration">configuracion</a></li> <li><a href="index.php?action=processlogout">salir</a></li> </ul> </li> </ul> 4

<?php else:?> <?php endif;?> </nav> </header><br><br><br> <div class='container'> <div class="row"> <div class="col-md-12"> <?php View::load("login");?> <?php else:?> <?php View::load("login");?> <?php endif;?> <script src="res/bootstrap/js/bootstrap.min.js"></script> </body> </html> [/code] Vista de Login Localizacion: inventario/core/modules/index/view/login/widget-default.php A continuacion el formulario de login que se muestra para que el usuario se autentifique. 5

Codigo: [code language="php"] <br><br><br><br><br> <div class="row vertical-offset-100"> <div class="col-md-4 col-md-offset-4"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">iniciar Sesion</h3> <div class="panel-body"> <form accept-charset="utf-8" role="form" method="post" action="index.php?action=processlogin"> <fieldset> <div class="form-group"> <input class="form-control" placeholder="usuario" name="username" type="text"> <div class="form-group"> <input class="form-control" placeholder="contraseña" name="password" 6

type="password" value=""> <input class="btn btn-lg btn-primary btn-block" type="submit" value="iniciar Sesion"> </fieldset> </form> <br><br><br><br><br><br><br><br><br><br><br><br> [/code] Utilizo un monton de brs para centrar el formulario, al hacer submit en el formulario se ejecutara el action process login. Action processlogin Localizacion: inventario/core/modules/index/action/processlogin/action-default.php El action process login obtiene los datos provenientes del formulario de login, username y password, y busca coincidencias en la base de datos, si hay una concidencia entonces se guarda el id del usuario es la variable de sesion $_SESSION["user_id"] y se redirige a la pagina del inicio del usuario, en caso contrario se redirige al formulario de login. Codigo: [code language="php"] <?php if(session::getuid()=="") { $user = $_POST['username']; $pass = sha1(md5($_post['password'])); $base = new Database(); $con = $base->connect(); $sql = "select * from user where username= \"".$user."\" and password= \"".$pass."\""; 7

$query = $con->query($sql); $found = false; $userid = null; while($r = $query->fetch_array()){ $found = true ; $userid = $r['id']; if($found==true) { $_SESSION['user_id']=$userid ; print "Cargando... $user"; print "<script>window.location='index.php?view=home';</script>"; else { print "<script>window.location='./';</script>"; else{ print "<script>window.location='index.php?view=home';</script>";?> [/code] Vista Home Localizacion: inventario/core/modules/index/view/home/widget-default.php Cuando el usuario acceda exitosamente con su usuario y password se dirijira a la vista Home, que estara reservada para lo que el usuario guste, por ahora estara vacia. 8

Podemos ver que en el menu del usuario administrador hay dos opciones, Configuracion y Salir, la configuracion la veremos en la segunda parte, salir sirve para cerrar la sesion actual y regregar al formulario de login. La opcion salir nos redirige al action processlogout. Action processlogout Localizacion: inventario/core/modules/index/action/processlogout/action-default.php El action processlogout destruye la sesion y redirije al formulario de login. Codigo: [code language="php"] if(isset($_session['user_id'])){ unset($_session['user_id']); 9

session_destroy(); print "<script>window.location='./';</script>"; [/code] Conclusion Ya hemos habilitado el login y logout para el usuario, ahora solo debemos entrar con los valores: Username: admin Password: admin 10