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:
Código
CREATE TABLE `personal` (
`idpersonal` varchar(8) NOT NULL,
`nombres` varchar(45) NOT NULL,
`apellidos` varchar(45) NOT NULL,
`clave` varchar(45) NOT NULL,
`fecnac` date NOT NULL,
`fecreg` date 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
Código
INSERT INTO `personal` VALUES ('41338110', 'Juar Carlos', 'Malca Pereda', 'clave1' ,'1982-02-23', '2009-04-28', NULL, '0', '1');* En este caso por ser un ejemplo no se usar el md5 (Es recomendable usarlo)
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');
Ahora la estructura de la pagina sera la siguiente:
Citar
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)
|--- 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
Código
<?
//Clase Mysql, se usa para la conexion a la Base de Datos
class Mysql
{
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
$this->conexion = (mysql_connect($ser,$usr,$pwd)) or die(mysql_error());
mysql_select_db($bbd,$this->conexion) or die(mysql_error());
}
}
//realiza la consulta recepcionada
function consulta($consulta)
{
$resultado = mysql_query($consulta,$this->conexion);
if(!$resultado)
{
echo 'MySql Error: '.mysql_error();
exit;
}
return $resultado;
}
//devuelve un vector de la consulta
function vector($consulta)
{
return mysql_fetch_array($consulta);
}
//retorna el numero de registros para la consulta
function filas($consulta)
{
return mysql_num_rows($consulta);
}
}
?>
Clase para verificacion de personal:
www/web/clases/personal.php
Código
<?
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 = new Mysql();
$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
Código
<?
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
Código
//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
Código
<!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">
<head>
<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>
</head>
<body>
<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();"/>
</div>
</body>
</html>
Archivo a descargar: Click
El 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










Autor





En línea

! 












..lo he armado y subido en un zip a mi cuenta en 000webhost.

