Académique Documents
Professionnel Documents
Culture Documents
Requerimientos:
Hosting (servidor local o web)
PHP (ojala 5)
1 base de datos MySQL
Analisis:
Para el desarrollo del script necesitaremos la creacin de 4 archivos .php:
Ojo este anlisis lo deben hacer siempre .
conexion.php
registro.php
login.php
perfil.php
Lo primero es crear una base de datos a la cual vamos a poner nombre
"registro". En la cual vamos a generar la siguiente consulta SQL:
Cdigo:
CREATE TABLE usuarios (
id
fecha
nick
pass
ip
function validar_email($email){
$mail_correcto = 0;
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) &&
(substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@"))
{
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) &&
(!strstr($email,"\$")) && (!strstr($email," ")))
miro si tiene caracter .
if (substr_count($email,".")>= 1)
obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
compruebo que la terminacion del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!
strstr($term_dom,"@")) )
compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != ".")
{
$mail_correcto = 1;
}
}
}
}
}
if ($mail_correcto)
return 1;
else
return 0;
}
Funcion que se encarga de validar si el usuario esta registrado en el
sistema
function user_login()
{
if(!$_SESSION['id'])
{
exit ("Solo usuarios registrados, <a href='javascript:history.back(1)'>Volver</a>");
}
}
?>
Ya tenemos nuestro archivo de conexin con la base de datos entonces
continuamos con el archivo "registro.php" que como su nombre lo indica se
encargara de almacenar los usuarios en la base de datos.
Cdigo:
<?php
include("conexion.php");
Sistema de registro
if(isset($_POST['registro']))//Vallidamos que el formulario fue enviado
{
<dt><label>E-mail:</label></dt>
<input type='text' name='mail' /><br /><br />
<dt><label>Contrasea:</label></dt>
<input type="password" name='pass' /><br /><br />
<dt><label>Confirmar Contrasea:</label></dt>
<input type="password" name='conf_pass' /><br /><br /><br /><br />
if(isset($_POST['login']))
{
$nick= $_POST['nick'];
$pass= md5(md5($_POST['pass']));
$b_user=mysql_query("SELECT * FROM usuarios WHERE nick='$nick'");
$ses = @mysql_fetch_assoc($b_user) ;
if(@mysql_num_rows($b_user))
{
if($ses['pass'] == $pass)
{
$_SESSION['id']=
$_SESSION['fecha']=
$ses["id"];
$ses["fecha"];
$_SESSION['nick']=
$ses["nick"];
$_SESSION['mail']=
$ses["mail"];
$_SESSION['ip']=
$ses["ip"];
}
else
{
echo 'Nombre de usuario o Contraseña incorrecta.';
}
}
else
{
echo 'Nombre de Usuario o contraseña incorrecta.';
}
}
if(isset($_GET['modo']) == 'desconectar')
{
session_destroy();
echo '<meta http-equiv="Refresh" content="2;url=login.php"> ';
exit ('Te has desconectado del sistema.');
}
if(isset($_SESSION['id']))
{
echo 'Bienvenido <b>' . $_SESSION['nick'] . '</b><br /><br />';
echo '<b>Fecha registro:</b> ' . date("d-m-Y - H:i", $_SESSION['fecha']) .
'<br />';
echo '<b>Email:</b> ' . $_SESSION['mail'] . '<br />';
echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />';
echo '<a href="login.php?modo=desconectar">Salir</a>';
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<h2>Conetarse - Desconectarse</h2>
<div align="center">
<form name="login_user" action="login.php" method="post" />
<dt><label>Nick:</label></dt>
<input type='text' name='nick' /><br /><br />
<dt><label>Contrasea:</label></dt>
<input type="password" name='pass' /><br /><br />
Cdigo:
<?php
include("conexion.php");
user_login();
echo '<h2>Pagina solo para usuarios registrados</h2><br />';
echo '<b>Nombre de Usuario:</b> ' . $_SESSION['nick'] . '<br />';
echo '<b>Fecha de registro:</b> ' . date("d-m-Y - H:i", $_SESSION['fecha']) .
'<br />';
echo '<b>Email de registro:</b> ' . $_SESSION['mail'] . '<br />';
echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />';
echo '<a href="login.php?modo=desconectar">Salir</a>';
?>
La funcin user_login() (que pueden encontrar en el archivo conexion.php) es la
encargada de verificar que el usuario este logueado, de lo contrario le mostrara
un aviso dicindole que no lo esta y no le dejara ver el contenido de la pagina
que esta visitando.
As que las paginas que quieran proteger debern agregarle la linea:
Cdigo:
user_login();