Registro de Usuarios
Partiendo del registro de usuarios de Electros y de algunos mods, quedó como os voy a explicar en este tutorial.
Consta de 6 archivos:
uregistrar.php, es el archivo donde se registran los usuarios
menu.php es el menú de usuarios que se mostrará en la pagina que querais (debe de tener extension .php) insertando este código:
Codigo PHP:
--------------------------------------------------------------------------------
<?
include('menu.php');
?>
--------------------------------------------------------------------------------
uentrar.php es el archivo de action del formulario para identificarse.
ulogin.php es el archivo que debeis poner en las paginas que quereis que solo los usuarios registrados puedan ver, dichas paginas deberán tener extensión .php
y debeis poner al principio este código para "protegerlas":
Codigo PHP:
--------------------------------------------------------------------------------
<?
include('uentrar.php');
?>
--------------------------------------------------------------------------------
usalir.php es un archivo que borra las cookies y desconecta al usuario, hay un link en el menú para eso
config.php es el archivo donde van los datos de configuración de la base de datos.
Para instalarlo, debemos ir al phpMyAdmin y en la pestaña de SQL escribir esto:
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)
)
Los códigos son estos (las demás explicaciones, para los que quieren saber más, las he puesto en los códigos en forma de comentarios):
uregistrar.php:
Codigo PHP:
--------------------------------------------------------------------------------
<?
if($_POST[enviar]) {
include("config.php") ; //se incluye el confid.php
function quitar($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
return $texto ;
}
$nick = quitar($nick) ;
$email = quitar($email) ;
$con = mysql_query("select id from usuarios where nick='$nick' or email='$email'") ;
if(mysql_num_rows($con) != 0) {
echo "Este usuario ya existe en la base de datos o ya hay un usuario con este email. Haz click <a href=\"javascript:history.back()\">aquí</a> para regresar." ; //si ya existe el usuario...
}
else {
$fecha = time() ;
$contrasena = quitar($contrasena) ;
$contrasena = md5(md5($contrasena)) ;
mysql_query("insert into usuarios (fecha,nick,contrasena,email,sexo,ip) values ('$fecha','$nick','$contrasena','$email','$sexo','$REMOTE_ADDR')") ; //se escribe en la base de datos
echo "Has sido registrado. Haz click aquí <a href=\"index.php\">aquí</a> para regresar a la página principal." ; //se registra correctamente (cambiar index.php por la pagina a la que se quiere que se lleve al hacer clic IMPORTANTE: No cambiar lar barras ni las comillas para evitar errores)
}
}
else {
?>
<!-- El formulario y la funcion de revisar...-->
<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 < 8) { alert('La contraseña debe contener por lo mínimo 8 caractéres.') ; return false ; }
if(formulario.contrasena.value != formulario.c_contrasena.value) { alert('Las contraseñas no son correctas.') ; return false ; }
if(formulario.email.value.length == 0) { alert('Debes poner un email válido.') ; return false ; }
}
</script>
<form name="formulario" method="post" action="<?=$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>
</div>
<!-- Fin del formulario y la funcion de revisar...-->
<?
}
?>
--------------------------------------------------------------------------------
menu.php
Codigo PHP:
--------------------------------------------------------------------------------
<?
if($_COOKIE["unick"]) {
?>
<!-- Esto lo verán los que estén logeados -->
<p>Bienvenido <b><? echo $_COOKIE["unick"] ?></b><b><br>
</b> <a href="usalir.php">Salir</a>
<!-- Fin de lo que verán los no registrados/logeados -->
<?
}
else {
?>
<!-- Esto lo verán los no registrados/logeados -->
</a></p>
<form method="post" action="uentrar.php">
Nick:<br>
<input type="text" name="nick" maxlength="20"><br>
Contraseña:<br>
<input type="password" name="contrasena" maxlength="20"><br><br>
<input type="submit" name="enviar" value="Entrar">
</form>
<p> <a href="uregistrar.php">Registrarse</a></p>
<!-- Fin de lo que verán los no registrados/logeados -->
<?
}
?>
--------------------------------------------------------------------------------
uentrar.php
Codigo PHP:
--------------------------------------------------------------------------------
<?
//este archivo es el action del formulario para identificarse
include("config.php") ; //incluimos el config
if($_POST[enviar]) { //si se rellenó el formulario...
function quitar($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
return $texto ;
}
$nick = quitar($nick) ;
$contrasena = quitar($contrasena) ;
$contrasena = md5(md5($contrasena)) ;
$con = mysql_query("select contrasena from usuarios where nick='$nick'") ;
$datos = mysql_fetch_array($con) ;
if(mysql_num_rows($con) != 0) {
if($datos[contrasena] == $contrasena) {
setcookie("unick",$nick,time()+2592000) ; //se crean las cookies
setcookie("ucontrasena",$contrasena,time()+2592000) ;
header("location: $HTTP_REFERER") ;
}
else {
echo "La contraseña es incorrecta. Haz click <a href=\"javascript:history.back()\">aquí</a> para regresar." ; //si la contraseña es incorrecta...
}
}
else {
echo "Este usuario no existe en la base de datos. Haz click <a href=\"javascript:history.back()\">aquí</a> para regresar." ; //si ese usuario no existe...
}
}
?>
--------------------------------------------------------------------------------
ulogin.php
Codigo PHP:
--------------------------------------------------------------------------------
<?
include("config.php") ;
$con = mysql_query("select id from usuarios where nick='$_COOKIE[unick]' and contrasena='$_COOKIE[ucontrasena]'") ;
if(mysql_num_rows($con) == 0) {
?>
<script>location="index.php"</script> <!-- Cambiar index.php por la pagina a la que quieres que se lleve si no esta identificado. -->
<?
exit ;
}
?>
--------------------------------------------------------------------------------
usalir.php
Codigo PHP:
--------------------------------------------------------------------------------
<?
//Código sencillo, se borran las cookies
setcookie("unick") ;
setcookie("ucontrasena") ;
header("location: index.php") ; //cambiar index.php por la página a la que se quiere que se lleve a los usuarios cuando se desconecten
?>
--------------------------------------------------------------------------------
config.php
Codigo PHP:
--------------------------------------------------------------------------------
<?
$dbhost = "localhost" ; //host, normalmente localhost, en mi@ mysql.webcindario.com
$dbuser = "usuario" ; //usuarios de la base de datos
$dbpass = "**********" ; //contraseña de la base de datos
$db = "basededatos" ; //nombre de la base de datos
$conectar = mysql_connect($dbhost,$dbuser,$dbpass) ;
mysql_select_db($db,$conectar) ;
?>
--------------------------------------------------------------------------------
¡Que os sea util!