Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/08/2008, 16:58
Avatar de fcdragons
fcdragons
 
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 15 años, 8 meses
Puntos: 13
[APORTE] Sistema de registro de usuarios

Bueno aquí os dejo un sistema de registro de usuarios que encontre navegando por la red. Os lo explico paso a paso lo que hay que hacer:

1.- Creamos las tablas de sql. eso se pone en vuestra db (Data base=base de datos) estas son las tablas:

Código PHP:
create table usuarios 
id smallint(5unsigned not null auto_increment
fecha int(10unsigned not null
nick varchar(20not null
contrasena varchar(32not null
email varchar(40not null
pais varchar(20not null
edad tinyint(2unsigned not null
sexo enum('0','1'not null
descripcion tinytext not null
web varchar(100not null
ip varchar(15not null
primary key (id), 
key (nick,contrasena

Ahora crearemos el archivo config.php, el qual llamara a nuestra base de datos, password y demas, pongan los datos de la db donde les indico

Código PHP:
<? 
unset($config) ; 
$config[1] = 'aqui localhost ' # Puede ser "localhost" aunque también una URL o una IP 
$config[2] = 'aqui usuario de la db' # Usuario de la base de datos 
$config[3] = 'aqui pass de la db' # Contraseña de la base de datos 
$config[4] = 'aqui nombre de la db ' # Nombre de la base de datos 

$conectar = @mysql_connect($config[1],$config[2],$config[3]) or exit('Datos de conexión incorrectos.') ; 
mysql_select_db($config[4],$conectar) or exit('No existe la base de datos.') ; 
?>

Vamos bien ahora el archivo para que los usuarios se registren al qual llamaremos registrar.php

Código PHP:
<? 
if($_POST[enviar]) { 
require 
'config.php' 
function 
quitar($texto) { 
$texto trim($texto) ; 
$texto htmlspecialchars($texto) ; 
$texto str_replace(chr(160),'',$texto) ; # Elimina espacios que no pueden ser borrados por trim() 
return $texto 

$nick quitar($_POST[nick]) ; 
$email quitar($_POST[email]) ; 
$con mysql_query("select count(id) from usuarios where nick='$nick' or email='$email'") ; 
if(
mysql_result($con,0,0)) { 
echo 
'El nick ya existe en la base de datos o ya está registrado el email. Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.' 

else { 
$fecha time() ; 
$contrasena md5(md5(quitar($_POST[contrasena]))) ; 
$sexo quitar($_POST[sexo]) ; 
mysql_query("insert into usuarios (fecha,nick,contrasena,email,sexo,ip) values ('$fecha','$nick','$contrasena','$email','$sexo','$_SERVER[REMOTE_ADDR]')") ; 
echo 
'Has sido registrad@ satisfactoriamente. Haz click <a href="index.php">aquí</a> para regresar a la página principal e iniciar sesión' 


else { 
?> 
<script> 
function revisar() { 
if(formulario.nick.value.length < 3) { 
alert('El nick debe contener por lo mínimo 3 caractéres.') ; 
return false ; 

if(formulario.contrasena.value.length < 6) { 
alert('La contraseña debe contener por lo mínimo 6 caractéres.') ; 
return false ; 

if(formulario.contrasena.value != formulario.c_contrasena.value) { 
alert('Las contraseñas no son correctas.') ; 
return false ; 

if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(formulario.email.value)) { 
alert('Debes poner un email válido.') ; 
return false ; 


</script> 
<form name="formulario" method="post" action="<?=$_SERVER[PHP_SELF]?>" onsubmit="return revisar()"> 
<b>Nick:</b><br> 
<input type="text" name="nick" maxlength="20"><br> 
<b>Contraseña:</b><br> 
<input type="password" name="contrasena" maxlength="10"><br> 
<b>Confirmar contraseña:</b><br> 
<input type="password" name="c_contrasena" maxlength="10"><br> 
<b>Email:</b><br> 
<input type="text" name="email" maxlength="40"><br> 
<b>Sexo:</b><br> 
<select name="sexo"> 
<option value="0">Masculino 
<option value="1">Femenino 
</select><br><br> 
<input type="submit" name="enviar" value="Registrar"> 
</form>  
<? 

?>

Ahora crearemos un archivo de los mas importante, para que los usuarios se logueen, lo llamaremos entrar.php

Código PHP:
<? 
require 'config.php' 
if(
$_POST[enviar]) { 
function 
quitar($texto) { 
$texto trim($texto) ; 
$texto htmlspecialchars($texto) ; 
# --> Elimina espacios que no pueden ser borrados por trim() 
$texto str_replace(chr(160),'',$texto) ; 
return 
$texto 

$nick quitar($_POST[nick]) ; 
$contrasena md5(md5(quitar($_POST[contrasena]))) ; 
$con mysql_query("select id,contrasena from usuarios where nick='$nick'") ; 
$datos mysql_fetch_assoc($con) ; 
if(
mysql_num_rows($con)) { 
if(
$datos[contrasena] == $contrasena) { 
setcookie('uid',$datos[id],time()+604800) ; 
setcookie('unick',$nick,time()+604800) ; 
setcookie('ucontrasena',$contrasena,time()+604800) ; 
header("location: $_SERVER[HTTP_REFERER]") ; 

else { 
echo 
'La contraseña es incorrecta. Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.' 


else { 
echo 
'El nick no existe. Haz click <a href="javascript:history.back(-1)">aquí</a> para regresar.' 


?>

Este es el formulario para que los usuarios se logueen, lo pondremos en las paginas donde uieras que la gente se loguee con su nombre de usuario y password:

Código PHP:
<? 
if(!$_COOKIE[uid]) { 
?> 
<form method="post" action="entrar.php"> 
<b>Nick:</b><br> 
<input type="text" name="nick" maxlength="20"><br> 
<b>Contraseña:</b><br> 
<input type="password" name="contrasena" maxlength="20"><br><br> 
<input type="submit" name="enviar" value="Iniciar Sesión"> 
</form> 
<p><a href="registrar.php"> -->Registrate aqui <-- </a> 
<? 

else { 
?> 
Bienvenid@ <b><?=$_COOKIE[unick]?></b><br><br> 
<br> 
<a href="salir.php">Salir</a> 
<? 

?>

Este es el codigo que hara que las paginas esten protegidas la llamaremos login.php

Código PHP:
<? 
require 'config.php' 
$con mysql_query("select count(id) from usuarios where id='$_COOKIE[uid]' and nick='$_COOKIE[unick]' and contrasena='$_COOKIE[ucontrasena]'") ; 
if(!
mysql_result($con,0,0)) { 
exit(
'<p><b>Esta sección es sólo para usuari@s registrad@s.</b><p><a href="javascript:history.back(-1)">» Regresar</a>') ; 

?>
Este se llamara salir.php hara que el que este logeado pueda salir de su sesion

Código PHP:
<? 
setcookie
('uid') ; 
setcookie('unick') ; 
setcookie('ucontrasena') ; 
header('location: index.php') ; 
?>

Y po ultimo este se pondra en las paginas que quieras proteger, en el principio en la primera linia, el codigo es este:

Código PHP:
<? require 'login.php' ?>

Para que funcione las paginas en vez de index.html tienen que pasarse a index.php los codigos de css y html serviran igual. es todo igual solo que ademas puedes agregar archivos php xD


dew

salu2

y espero que les ayude





Pueden descargar el script desde aqui:
http://www.megaupload.com/?d=F64SLPA1

en megaupload ya no hay problemas no¿?

Última edición por fcdragons; 27/08/2008 a las 09:31