Sistema de registro de usuarios

Hola que tal !!!!
Hacer un sistema de registro de usuarios es basicamente muy facil teniendo en cuenta que se utiliza Php y una base de datos (SQL).
Yo tengo un Script que les puede servir ....

<---(Aclaracion: El script es muy basico )--->

REQUERIMIENTOS: Host que soporte php y nos de base de datos (sql)

-----COMENCEMOS-----
1.- Para comenzar es basico acceder a nuestra base de datos y crear las tablas nesesarias para que el Script se ejecute correctamente.

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

2.- Una vez creadas las tablas , procedemos a crear el archivo que llamaremos "config.php" , el cual constara de la llamada a nuestra base de datos, password, usuario y demas ...


<?
unset($config) ;
$config[1] = 'imysql04 ' ; # Puede ser "localhost" aunque también una URL o una IP
$config[2] = 'i5291455' ; # Usuario de la base de datos
$config[3] = 't1ke2ice44ibca37' ; # Contraseña de la base de datos
$config[4] = 'i5291455 ' ; # 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.') ;
?>




3.- Ya teniendo nuestras tablas creadas y nuestro archivo "config.php" , procedemos a crear el formulario para registrar a los usuarios, para ello creamos el siguiente archivo llamado "registrar.php"


<?
if($_POST) {
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) ;
$email = quitar($_POST[correo eliminado]) ;
$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 aquí para regresar.' ;
}
else {
$fecha = time() ;
$contrasena = md5(md5(quitar($_POST))) ;
$sexo = quitar($_POST) ;
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 aquí 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()">
Nick:

<input type="text" name="nick" maxlength="20">

Contraseña:

<input type="password" name="contrasena" maxlength="10">

Confirmar contraseña:

<input type="password" name="c_contrasena" maxlength="10">

Email:

<input type="text" name="email" maxlength="40">

Sexo:

<select name="sexo">
<option value="0">Masculino
<option value="1">Femenino
</select>


<input type="submit" name="enviar" value="Registrar">
</form>
</div>
<?
}
?>


4.- Bien, vamos muy bien , ya que tenemos nuestras tablas creadas, nuestro archivo "config.php" y "registrar.php", procederemos a crear nuestro archivo que llamaremos "entrar.php" ...


<?
require 'config.php' ;
if($_POST) {
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) ;
$contrasena = md5(md5(quitar($_POST))) ;
$con = mysql_query("select id,contrasena from usuarios where nick='$nick'") ;
$datos = mysql_fetch_assoc($con) ;
if(mysql_num_rows($con)) {
if($datos == $contrasena) {
setcookie('uid',$datos,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 aquí para regresar.' ;
}
}
else {
echo 'El nick no existe. Haz click aquí para regresar.' ;
}
}
?>


5.- Yeahhh , hasta el momento tendremos que tener creadas las tablas en la base de datos y los siguientes archivos:
-> config.php
-> registrar.php
-> entrar.php

Ahora toca el turno de insertar el codigo que nos servira para que los usuarios inicien sesion , por lo general este codigo se inserta en la pagina inicial de la web (esto ya es tu desicion) ...


<?
if(!$_COOKIE) {
?>
<form method="post" action="entrar.php">
Nick:

<input type="text" name="nick" maxlength="20">

Contraseña:

<input type="password" name="contrasena" maxlength="20">


<input type="submit" name="enviar" value="Iniciar Sesión">
</form>


-->Registrate aqui <--
<?
}
else {
?>
Bienvenid@ <?=$_COOKIE?>




Salir
<?
}
?>




5.-Paciencia .. Ahora creamos el archivo que se encargara de proteger las paginas que nosotros deseemos... (a los usuarios que no esten registrados se les emitira el siguiente mensaje:"Esta sección es sólo para usuari@s registrad@s . Regresa a la pagina principal y registrate" .... para hacer eso crearemos otro archivo con el siguiente codigo ... al cual guardaremos como "login.php"


<?
require 'config.php' ;
$con = mysql_query("select count(id) from usuarios where id='$_COOKIE' and nick='$_COOKIE' and contrasena='$_COOKIE'") ;
if(!mysql_result($con,0,0)) {
exit('

Esta sección es sólo para usuari@s registrad@s.

» Regresar') ;
}
?>



6.- Ya casi ..... Procedemos a crear el archivo que servira para que los usuarios registrados cierren sesion y redireccionarlos a la pagina principal del sitio , para eso insertamos el siguiente codigo y lo guardamos como "salir.php"


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


7.- Por ultimo !!! Solo nos falta proteger las paginas .. OJO, en al paso numero 5 , nosotros creamos el ARCHIVO con el codigo que impedira a los visitantes acceder a las paginas que nosotros deseemos ... Ahora falta invocar ese archivo en cada pagina protegida ...
para invocar el archivo , insertaremos al principio de cada pagina que vayamos a proteger ...el siguiente codigo

<? require 'login.php' ?>


/////////////////////////////////////////////////////////////////////////

Bien !!!! , con esto terminamos nuestro sistema de registro de usuarios, se que es muy basico y sencillo pero de algo les servira .....


AQUI PUEDES CHECAR EL SCRIPT EN FUNCIONAMIENTO

http://macabre-secrets.iespana.es/pruevas/


Y AQUI PUEDES DESCARGARTE EL SCRIPT COMPLETO


DESCARGAR SCRIPT COMPLETO
---------------------------------
EL SISTEMA DE REGISTRO DE PRUEVA ESTA HECHO CON EL CODIGO QUE AKI LES DEJE ..

Si tienen problemas con el sistema de registro pueden contactarme a la siguiente direccion: kore69_10@hot...
Esto me va a venir de perlas, porque la programación es mi punto debil.
Ahora que me lo he copiado para leermelo muy despacito.
hola muy bueno, pero recuerda que hay una sección de php y base de datos.

Que buen tuto :wink:
Me registro y todo va bien pero a la hora de loguearme no pasa nada,, se refresca la pagina y ya esta y en la tuya probe y pasa lo mismo. Si lo kereis probar:
http://psp-yeah.iespana.es
SALUDOS
www.psp-yeah.com.ar [En Contruccion]
no me funciona el login, al darle iniciar sesion me da este error:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\registro\entrar.php:9) in C:\AppServ\www\registro\entrar.php on line 25

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\registro\entrar.php:9) in C:\AppServ\www\registro\entrar.php on line 26

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\registro\entrar.php:9) in C:\AppServ\www\registro\entrar.php on line 27

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\registro\entrar.php:9) in C:\AppServ\www\registro\entrar.php on line 28

podrias decirme ke puede ser+ no consigo ver el ke.. merci
has puesto tus datos de la base de datos en el config.php¿
Yo he hecho todo y me va pero a la hora de loguearme no me pone bienvenido y mi nombre :?
SALUDOS
www.psp-yeah.com.ar [En Contruccion]
si kep euto mis datos en el config.php, si registrar si ke registra usuarios, osea se guardan en la base de datos, el problema es cuando le doy a logear, ke no logea.... es decir yo pongo una pagina "protegida" , privada digamos.. y no puede verla porke no esta logeado.... y eso no me funciona :S
hay alguien ke nos pueda ayudar plz??

necesito hacer el login para el trabajo de clase y por mas ke busco no encuentro ningun ke vaya bien....

merci de antemano
Hey , la verdad no entiendo el porque de sus errores .. pero estoy trabajando en un tutorial mas detallado .. y estoy checando detenidamente el codigo ..

Tengan paciencia
-----

O si lo prefieren puedesn agregarme al MSN, que con gusto les hechare una mano ..
[correo eliminado]
Bien, pues ya esta terminado el codigo , al parecer ya funciona correctamente ... El codigo ya esta editado en la explicacion del INICIO de este post ...
Pero ahun asi aqui les dejo el LINK para que se descargen el codigo completo

DESCARGAR SCRIPT


Aki pueden probar el Script en funcionamiento

PROBAR SCRIPT

--------------------------

BIEN PUES, YA SABEN .. DUDAS? COMENTARIOS? SUGERENCIAS?
a mi correo
[correo eliminado]
me dao cuenta ke las linias no coinciden con la guia, en esas linias tngo esto:

25- setcookie('uid',$datos,time()+604800) ;
26- setcookie('unick',$nick,time()+604800) ;
27- setcookie('ucontrasena',$contrasena,time()+604800) ;
28- header("location: $_SERVER[HTTP_REFERER]") ;
ya era hora gracias. Ahora si kieres cambiar el color de los cuadros y cosas asi? Tambien me gustaria centrarlo,, ese codigo php se puede modificar normal? es decir como una pag html
SALUDOS
www.psp-yeah.com.ar [En Contruccion]
:arrow: Near , olvidate del codigo pasado ,, Comienza por descargarte el Script nuevo completo [ http://rapidshare.com/files/91083587/registro_usuarios.rar.html ] , esta listo para instalar y usar ..

:arrow: tebet si sabes algo de php podras modificarlo sin problemas,, ahora si no quieres complicarte la vida ,, Te recomiendo que estructurtes tu pagina web y en los lugares que quieras los formularios insertes el codigo ... Re cuerda que insertando los codigos PHP, la extencion de tus paginas tambien devera cambiar a .php ( index.html = index.php ) .

- Si quieres cambiar el color de los cuadros te recomiendo que lo hagas con un CSS, busca en el foro el apartado de CSS..

------------------------------------

Pueden provar el Script AQUI

------------------------------------

Aqui pueden descargar el Script completo

----------------------------------

Dudas ? sugerencias? Comentarios ?
[correo eliminado]
Doy fe de que funciona si kereis probar entrar aki:

http://psp-yeah.freetzi.com


Estan muy sosos los cuadros y eso pero ya lo personalizare :D

El unico problema que hay es que cuando me logueo se vuelve la pagina blanca y se va todo hacia la izquierda. Si podeis probarlo y decirme si os pasa lo mismo
SALUDOS
www.psp-yeah.com.ar [En Contruccion]
hey man , pues felicidades por que ya lograste instalar el sistema de registro ,, ya lo vi y funciona correctamente.
me descarge el archivo que pusiste, pero por alguan extraña razon, no se coencta con la bd :S, puse mis datos y todo eso, pero no va :S, toy de los nervios ya xD
no se como pero consegi arreglarlo ^^, ya me va creo xD sino tendreis noticias mias por aki xD

muchas gracias logan, te agrege al msn para dudas y eso ;)
Me funciona pero no me dijiste nada sobre el problema que comente (que al loguearte se cambia de color la pag y se alinea a la izquierda
SALUDOS
www.psp-yeah.com.ar [En Contruccion]
excelente tutorial pero me podrias ayudar con lo de crear las tablas que mencionas en el punto 1 de tu tutorial pls ayudame que no soy muy bueno para la programcion y eso XD
Che logre podre registrarme en mi pagina pero cuando quiero iniciar Sesion me dice que el nick es incorrecto.
Y otra cosa...
Como hago para que el usuario que se creen desde mi pagina sea la misma para el foro y viseversa?
Hola..estoy probando de instalrlo en mi web. Aqui un par de consultas.
Cuantos campos debe tener la tabla? Son 13 o me falta o sobra alguno?
Para la celda de "Descripcion" no aparece ningun numero asignado en la extension...eso no es necesario?
Por ultimo no comprendo la parte final del codigo, desde aqui hacia abajo
primary key (id)
Estos son campos o que? En que parte deberia añadirlos.
Muchas Gracias
Saludos