Bueno encontre un sistema de usuarios (Registro, login y "perfil") que me anduvo (Por suerte), sin tener que ponerme a corregir nada. Mi pregunta era si se podia ir modificando.
Lo principal que queria era ponerle una imagen para el perfil que la podamos buscar en el escritorio, con un boton examinar.. como para comenzar..
Este es el codigo php:
1_registro.sql :
id int(5) not null auto_increment,
fecha int(10) not null,
nick varchar(20) not null,
pass varchar(32) not null,
mail varchar(40) not null,
ip varchar(15) not null,
avatar varchar(90) not null,
primary key (id),
key (nick,pass)
2_conexion.php:
<?php
$nombre_server[1] = 'localhost'; //Servidor al cual nos vamos a conectar.
$nombre_user[2] = 'root'; //Nombre del usuario de la base de datos.
$password[3] = ''; //Contraseña de la base de datos
$nombre_db[4] = 'registro'; //nombre de la base de datos
$conectar = @mysql_connect($nombre_server[1],$nombre_user[2],$password[3]) or exit('Datos de conexion incorrectos.');
mysql_select_db($nombre_db[4]) or exit('No existe la base de datos.');
/*En este archivo también pondremos unas funciones necesarias para el registro y el login*/
session_start();
/*Función que se encarga de eliminar codigo malicioso de las variables.*/
function limpiar($var)
{
$var = trim($var);
$var = htmlspecialchars($var);
$var = str_replace(chr(160),'',$var);
return $var;
}
/*Función que se encarga de validar el email de registro para que sea correcto.*/
function validar_email($email){
$mail_correcto = 0;
//compruebo unas cosas primeras
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 terminaci?n 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>");
}
}
?>
3_registro.php:
<?php
include("conexion.php");
//Sistema de registro --HiperAcme.net--
if(isset($_POST['registro']))//Vallidamos que el formulario fue enviado
{ /*Validamos que todos los campos esten llenos correctamente*/
if(($_POST['nick'] != '') && ($_POST['mail'] != '') && ($_POST['pass'] != '') && ($_POST['conf_pass'] != ''))
{
if($_POST['pass'] != $_POST['conf_pass'])
{
echo '<br />Las contraseñas no coinciden';
}
else
{
$date= time();
$nick= limpiar($_POST['nick']);
$mail= limpiar($_POST['mail']);
$pass= md5(md5(limpiar($_POST['pass'])));
$ipuser= $_SERVER['REMOTE_ADDR'];
$b_user= mysql_query("SELECT nick FROM usuarios WHERE nick='$nick'");
if($user=@mysql_fetch_array($b_user))
{
echo '<br />El nombre de usuario o el email ya esta registrado.';
mysql_free_result($b_user); //liberamos la memoria del query a la db
}
else
{
if(validar_email($_POST['mail']))
{
mysql_query("INSERT INTO usuarios (fecha,nick,mail,pass,ip) values ('$date','$nick','$mail','$pass','$ipuser')");
echo '<br />Te has registrado Correctamente, ahora podras iniciar sesión como usuario registrado.';
}
else
{
echo '<br />El email no es valido.';
}
}
}
}
else
{
echo '<br />Deberas llenar todos los campos.';
}
}
?>
<!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>Registro de Usuarios</title>
</head>
<body>
<h2>Sistema de Registro</h2>
<div align="center">
<form name="registrar" action="registro.php" method="post" onsubmit="return validar()" />
<dt><label>Nick:</label></dt>
<input type='text' name='nick' /><br /><br />
<dt><label>E-mail:</label></dt>
<input type='text' name='mail' /><br /><br />
Avatar URL: <input type="text" name="avatar" size="90"><br>
<dt><label>Contraseña:</label></dt>
<input type="password" name='pass' /><br /><br />
<dt><label>Confirmar Contraseña:</label></dt>
<input type="password" name='conf_pass' /><br /><br /><br /><br />
<input type="submit" name="registro" style="width:100px;" tabindex="6" value="Registrar" />
<input type="reset" name="Limpiar" style="width:100px;" tabindex="6" value="Limpiar" />
</form>
<a href="login.php">Identificarse</a>
</div>
</body>
</html>
4_ Login.php:
<?php
include("conexion.php");
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']= $ses["id"];
$_SESSION['fecha']= $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>Contraseña:</label></dt>
<input type="password" name='pass' /><br /><br />
<input type="submit" name="login" style="width:100px;" tabindex="6" value="Entrar" />
<input type="reset" name="Limpiar" style="width:100px;" tabindex="6" value="Limpiar" />
</form>
<a href="registro.php">Registrarse</a>
</div>
<?php
}
?>
</body>
</html>
5_Perfil.php
<?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>';
?>
Principalmente necesitaba eso de la imagen.. Alguien me da una mano de como hacer el codigo?, yo ya empece un poco pero no se como seguir. Desde ya muchas gracias
