/* Bienvenidos a mi POST */
/* Quieres aprender mas sobre programacion? http://webmastersunidos.com.ar */
/* Tutorial sistema de usuarios php y mysql */
Cosas que trae:
-Registro de usuarios
-Login de usuarios
-Perfil para cada usuario
Para la V2
-Administracion
-Sistema de Noticias
-Muro en cada perfil
EMPEZEMOS!
Vamos a Phpmyadmin y Apretamos en SQL y ponemos
CREATE TABLE IF NOT EXISTS `usuarios` (
`usuario_id` int(4) NOT NULL AUTO_INCREMENT,
`usuario_nombre` varchar(15) NOT NULL DEFAULT '',
`usuario_clave` varchar(32) NOT NULL DEFAULT '',
`usuario_email` varchar(50) NOT NULL DEFAULT '',
`usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`tipo` enum('2','1') NOT NULL DEFAULT '2',
`facebook` varchar(250) NOT NULL,
`twitter` varchar(250) NOT NULL,
`avatar` varchar(500) NOT NULL,
PRIMARY KEY (`usuario_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
http://i.imgur.com/ksAH0.png
AHORA CREAMOS UN ARHIVO PARA LA CONEXION A LA BASE DE DATOS:
acceso_db.php
y de contenido lo siguiente:
<?php
$host_db = ""; // Host de la BD
$usuario_db = ""; // Usuario de la BD
$clave_db = ""; // Contraseña de la BD
$nombre_db = ""; // Nombre de la BD
//conectamos y seleccionamos db
mysql_connect($host_db, $usuario_db, $clave_db);
mysql_select_db($nombre_db);
?>
AHORA VAMOS A CREAR EL ARCHIVO DE REGISTRO
registro.php
y de contenido lo siguiente:
<?php
include('acceso_db.php'); // incluimos el archivo de conexión a la Base de Datos
if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos desde el formulario
// creamos una función que nos parmita validar el email
function valida_email($correo) {
if (eregi("^[_.0-9a-z-]+@[0-9a-z._-]+.[a-z]{2,4}$", $correo)) return true;
else return false;
}
// Procedemos a comprobar que los campos del formulario no estén vacíos
$sin_espacios = count_chars($_POST['usuario_nombre'], 1);
if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco
echo "El campo <em>usuario_nombre</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['usuario_nombre'])) { // comprobamos que el campo usuario_nombre no esté vacío
echo "No haz ingresado tu usuario ._.<a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['usuario_clave'])) { // comprobamos que el campo usuario_clave no esté vacío
echo "No haz ingresado contraseña. <a href='javascript:history.back();'>Reintentar</a>";
}elseif($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) { // comprobamos que las contraseñas ingresadas coincidan
echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(!valida_email($_POST['usuario_email'])) { // validamos que el email ingresado sea correcto
echo "El email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";
}else {
// "limpiamos" los campos del formulario de posibles códigos maliciosos
$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
$usuario_email = mysql_real_escape_string($_POST['usuario_email']);
// comprobamos que el usuario ingresado no haya sido registrado antes
$sql = mysql_query("SELECT usuario_nombre FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'";
if(mysql_num_rows($sql) > 0) {
echo "El nombre usuario elegido ya ha sido registrado anteriormente. <a href='javascript:history.back();'>Reintentar</a>";
}else {
$usuario_clave = md5($usuario_clave); // encriptamos la contraseña ingresada con md5
// ingresamos los datos a la BD
$reg = mysql_query("INSERT INTO usuarios (usuario_nombre, usuario_clave, usuario_email, usuario_freg) VALUES ('".$usuario_nombre."', '".$usuario_clave."', '".$usuario_email."', NOW())";
if($reg) {
echo "Datos ingresados correctamente.";
}else {
echo "ha ocurrido un error y no se registraron los datos.";
}
}
}
}else {
?>
<html>
<head>
<title>Registro de Usuarios</title>
</head>
<body>
<h1>Formulario de Registro!</h1>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" maxlength="15" /><br />
<label>Contraseña:</label><br />
<input type="password" name="usuario_clave" maxlength="15" /><br />
<label>Confirmar Contraseña:</label><br />
<input type="password" name="usuario_clave_conf" maxlength="15" /><br />
<label>Email:</label><br />
<input type="text" name="usuario_email" maxlength="50" /><br />
<input type="submit" name="enviar" value="Registrar" />
<input type="reset" value="Borrar" />
</form>
<br />
<br />
<br />
<?php
}
?>
</body>
</html>
AHORA CREAMOS EL ARHIVO PARA EL ACCESO
acceso.php
<?php include ("acceso_db.php"; session_start(); ?>
<?
$sql = "SELECT usuario_nombre FROM usuarios";//Este es el script SQL que necesitas para jalar el ultimo registro
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);
if(empty($_SESSION['usuario_nombre'])) { // comprobamos que las variables de sesión estén vacías
?>
<center>
<h2 style=color:blue;>Ingresar!</h2>
<form action="comprobar.php" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" /><br />
<label>Contraseña:</label><br />
<input type="password" name="usuario_clave" /><br />
<input type="submit" name="enviar" value="Ingresar" />
</form>
</center>
<?php
}else {
?>
<div align="right">
<p>Hola <strong><?=$_SESSION['usuario_nombre']?></strong> |
<a href="logout.php">Salir</a></p>
</div>
<center>
<a href="/perfil.php?id=<?=$_SESSION['usuario_id']?>">Ir a tu perfil</a>
<a href="http://www.comunidadfeedback.net" target="_blank">Entra aqui</a>
</center>
<?php
}
?>
AHORA CREAMOS UN ARCHIVO PARA COMPROBAR EL ACCESO .. XD
comprobar.php
<?php
session_start();
include('acceso_db.php');
if(isset($_POST['enviar'])) { // comprobamos que se hayan enviado los datos del formulario
// comprobamos que los campos usuarios_nombre y usuario_clave no estén vacíos
if(empty($_POST['usuario_nombre']) || empty($_POST['usuario_clave'])) {
echo "El usuario o la contraseña no han sido ingresados. <a href='javascript:history.back();'>Reintentar</a>";
}else {
// "limpiamos" los campos del formulario de posibles códigos maliciosos
$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
$usuario_clave = md5($usuario_clave);
// comprobamos que los datos ingresados en el formulario coincidan con los de la BD
$sql = mysql_query("SELECT usuario_id, usuario_nombre, usuario_clave FROM usuarios WHERE usuario_nombre='".$usuario_nombre."' AND usuario_clave='".$usuario_clave."'";
if($row = mysql_fetch_array($sql)) {
$_SESSION['usuario_id'] = $row['usuario_id']; // creamos la sesion "usuario_id" y le asignamos como valor el campo usuario_id
$_SESSION['usuario_nombre'] = $row["usuario_nombre"]; // creamos la sesion "usuario_nombre" y le asignamos como valor el campo usuario_nombre
$_SESSION['tipo'] = $row["tipo"];
header("Location: acceso.php";
}else {
?>
<body bgcolor="black">
<center>
<h2 style="color:white;">Error</h2>
<img src="/images/error-login.png"/>
<a href="acceso.php"><h2>Reintentar</h2></a>
</center>
<?php
}
}
}else {
header("Location: acceso.php";
}
?>
AHORA CREAMOS EL ARCHIVO PARA EL PERFIL
perfil.php
<? include 'acceso_db.php'; ?>
<? $perfil = mysql_query("SELECT * FROM usuarios WHERE usuario_id='".$_GET['id']."'" or die(mysql_error());
if(mysql_num_rows($perfil)) { // Comprobamos que exista el registro con la ID ingresada
$row = mysql_fetch_array($perfil);
$usuario_id = $row["usuario_id"];
$usuario_nombre = $row["usuario_nombre"];
$usuario_email = $row["usuario_email"];
$usuario_freg = $row["usuario_freg"];
$facebook = $row["facebook"];
$twitter = $row["twitter"];
$avatar = $row["avatar"];
?>
<html>
<head>
<title>Perfil de <?=$usuario_nombre?> | Tu web</title>
</head>
<body>
<h2>Perfil de <?=$usuario_nombre</h2>
<img src="<?=$avatar?>" width="200" height="200" />
<p>Email: <?=$usuario_email?></p>
<p>Fecha de registro: <?=$usuario_freg?></p>
<p>Facebook: <a href="<?=$facebook?>" target="_blank">Mi facebook</a></p>
<p>Twitter: <a href="<?=$twitter?>" target="_blank">Mi twitter</a></p>
</body>
</html>
<? } else { ?>
<p>El usuario o perfil que buscas no existe .-.</p>
<a href="usuarios.php"><button>Lista de usuarios</button></a>
<? } ?>
AHORA VAMOS CON LA LISTA DE USUARIOS XD
usuarios.php
<? include 'acceso_db.php'; ?>
<html>
<head>
<title>Lista de usuarios registrados</title>
</head>
<body>
<? $_pagi_sql=("SELECT * FROM usuarios ORDER BY usuario_id DESC";
while ($row=mysql_fetch_array($_pagi_result))
{
echo '<hr>';
echo '<tr><td><p>'.$row["usuario_nombre"].'</p></td>';
echo '<td><img src="'.row["avatar"].'" width="100" height="100" /></td>';
echo '<td><p>Email: '.$row["usuario_email"].'</p></td>';
echo '<td><p><a href="perfil.php?id='.$row["usuario_id"].'">Ir al Perfil</a></p></td></tr>';
echo '</hr>';
}
mysql_free_result($_pagi_result)
</body>
</html>
Link al post con descarga e instrucciones:
TODO POR AHORA ...PERO LA V2 VIENE CON MUCHAS COSAS MAS

