Introduccion : Hola a todos, pues es domingo, y para buena suerte mia
[sarcasmo] se quemo la fuente de mi PC, mi Tv no esta operativo, mi movil esta descargando y no tengo dinero ni para ir a ver una buena pelicula (Transformers II - segun los trailers esta buenisima) felizmente nadie esta usando la otra Pc (despechada por mi xD .. y que no corre ni el warcraft III), como ven no tengo nada que hacer, me puse a pensar ... meditar .... y me anime a escribir este pequeño tutorial, la idea es usar clases para trabajar con una BD (todo con php y mysql). Pues manos a la obra.
En esta ocacion haremos un login con ajax. A continuacion los detalles. Base de Datos, crea la BD
sistema y en ella ejecutar el siguiente script:
CREATE TABLE `personal` (
`idpersonal` varchar(8) NOT NULL,
`nombres` varchar(45) NOT NULL,
`apellidos` varchar(45) NOT NULL,
`clave` varchar(45) NOT NULL,
`imagen` text,
`sexo` char(1) default NULL,
`estado` char(1) default NULL,
PRIMARY
KEY (`idpersonal`
)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Insertar registros a discrecion xD
INSERT INTO `personal` VALUES ('41338110', 'Juar Carlos', 'Malca Pereda', 'clave1' ,'1982-02-23', '2009-04-28', NULL, '0', '1');
INSERT INTO `personal` VALUES ('41352619', 'Yessenia Clariza', 'Rodas Correo', 'clave2' , '1989-01-09', '2009-04-28', NULL, '1', '1');
INSERT INTO `personal` VALUES ('42751388', 'Pedro Ricardo', 'Mariano Jimenz', 'clave3' , '1984-12-20', '2009-04-28', NULL, '1', '1');
* En este caso por ser un ejemplo no se usar el md5 (Es recomendable usarlo)Ahora la estructura de la pagina sera la siguiente:
Appserver/
|--- www/
|--- web/
| |--- ajax/ (Js ^^', alquien se dio cuenta?)
| | |--- home.js (ajax)
| |--- clases/ (clases php ^^')
| | |--- mysql.php (clase de conexion)
| | |--- personal.php (clase para personal)
| | |--- ingreso.php (clase funciones)
| |--- imagenes/ (imagenes)
| | |--- loader.gif (icono cargando)
| |--- index.php (pagina de inicio)
Imagen loader.gif
Empezemos con la clase para la conexion:
www/web/clases/mysql.php<?
//Clase Mysql, se usa para la conexion a la Base de Datos
{
var $conexion;
//inicia conexion con el servidor
function conecta()
{
if(!isset($this->conexion)) {
$ser = "localhost"; //servidor
$usr = "root"; //usuario
$pwd = "root"; //password
$bbd = "sistema"; //base de datos
}
}
//realiza la consulta recepcionada
function consulta($consulta)
{
if(!$resultado)
{
}
return $resultado;
}
//devuelve un vector de la consulta
function vector($consulta)
{
}
//retorna el numero de registros para la consulta
function filas($consulta)
{
}
}
?>
Clase para verificacion de personal:
www/web/clases/personal.php<?
class Persona
{
var $p_idpersona;
var $p_nombre;
var $p_apellido;
var $p_persona;
var $p_imagen;
var $p_sexo;
var $p_fecnac;
var $p_estado;
var $p_existe;
//function que define si el idpersona existe
function set_idpersona($codigo,$clave)
{
include("mysql.php");
$sql = "select * from personal where idpersonal='$codigo' and clave='$clave'";
$con->conecta();
$res = $con->consulta($sql);
$num = $con->filas($res);
if($num>0)
{
$row = $con->vector($res);
$this->p_idpersona=$codigo;
$this->p_nombre=$row['nombres'];
$this->p_apellido=$row['apellidos'];
$this->p_imagen=$row['imagen'];
$this->p_sexo=$row['sexo'];
$this->p_estado=$row['estado'];
$this->p_fecnac=$row['fecnac'];
$this->p_persona=$this->p_apellido.', '.$this->p_nombre;
$this->p_existe=1;
}
else
{
$this->p_existe=0;
}
}
//Retorna true si el usuario existe, caso contrario false
function get_existe()
{
return $this->p_existe;
}
//Retorna el codigo de la persona
function get_idpersona()
{
return $this->p_idpersona;
}
//Retorna el nombre de la persona
function get_nombre()
{
return $this->p_nombre;
}
//Retorna el apellido de la persona
function get_apellido()
{
return $this->p_apellido;
}
//Retorna el sexo de la persona
function get_sexo()
{
return $this->p_sexo;
}
//Retorna la imagen de la persona
function get_imagen()
{
return $this->p_imagen;
}
//Retorna la fecha de nacimiento de la persona
function get_fecnac()
{
return $this->p_fecnac;
}
//Retorna el estado de la persona
function get_estado()
{
return $this->p_estado;
}
//Retorna el nombre completo de la persona
function get_persona()
{
return $this->p_persona;
}
}
?>
Clase para el login, es llamado por la funcion ajax en javascript:
www/web/clases/ingreso.php<?
include("persona.php");
$usuario = $_REQUEST['usu'];
$clave = $_REQUEST['pwd'];
$usu = new Persona();
$usu->set_idpersona($usuario,$clave);
$est = $usu->get_existe();
if($est==1){
?>
Llamar a funcion ‫javascript que llame a la pagina principal.
APORTE PARA LA COMUNIDAD FORO.ELHACKER.NET
saludos.
<? }else{ ?>
Usuario <input type="text" id="usr" name="usr" maxlength="8" /><br>
clave <input type="text" id="pwd" name="pwd" maxlength="25" /><br>
<input type="button" value="Ingresar" onclick="verifica();"/><br><br>
<center>Datos incorrectos</center>
<? } ?>
Ajax, se llama desde el index:
www/web/ajax/home.js//Funcion para ajax
function NewAjax()
{
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
//Funcion para el login
function verifica()
{
var usu = document.getElementById('usr');
var pwd = document.getElementById('pwd');
var div = document.getElementById('cuerpo');
var ajax = NewAjax();
ajax.open("POST", 'clases/ingreso.php?usu='+usu.value+'&pwd='+pwd.value,true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
var ok = ajax.responseText;
div.innerHTML = ok;
}
else
{
div.innerHTML = "<img src='imagenes/loader.gif'><br><br><font color='#666666'>Autentificando<br>Espere un momento por favor.</font>";
}
}
ajax.send(null);
}
Pagina index, donde se efectura el login
www/web/index.php<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Ingreso : Aporte para foro.elhacker.net
</title> <script src="ajax/home.js" language=" ‫javascript" type="text/ ‫javascript"></script>
<div id='cuerpo' name='cuerpo'>
Usuario
<input type="text" id="usr" name="usr" maxlength="8" /><br>clave
<input type="text" id="pwd" name="pwd" maxlength="25" /><br><input type="button" value="Ingresar" onclick="verifica();"/>
Archivo a descargar:
ClickEl file no contiene la Bd (esta se crea independientemente, ver inicio del hilo)
Sin mas que decirles me despido (en realidad ahora estoy mas aburrido que cuando comence a tipear ^^' ... ), espero que esto le sea util a alquien, como siempre tambien decir: si encuentran algun error no duden en avisarme y lo corrijo.
Cuidense y estamos viendonos pronto.
Hadess_inf