hola a todos, en este tutorial os mostrare como hacer un sistema de usuarios realmente sencillo xD. para empezar tenemos que crear la tabla, copien y peguen este codigo si usan phpmyadmin peguenlo en SQL
Ahora para empezar ya un poco con el script en php vamos a empezar con el config.php, aqui es donde vendra la conexion mysql :
Bueno casi todo esta explicado en el codigo php, asi que no se puede explicar mucho mas y apara seguir vamos con el registrar.php :
Bueno bastante facil visto de mi vista xD ahora pasemos a comprobar los datos y hacer una sesion, para eso usen este codigo y ponganlo donde mas les guste en su web.
Despues de eso vamos a crear el archivo session.php para crear las sesiones del usuario :
Aqui creamo el archivo logout.php para cerrar la sesion :
Bueno amigos espero que os sirva, pronto mejorare mas el post pero de momento lo dejare asi.
- Código:
CREATE TABLE `usuarios` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`nombre` varchar(15) NOT NULL DEFAULT '',
`clave` varchar(32) NOT NULL DEFAULT '',
`email` varchar(50) NOT NULL DEFAULT '',
`last_ip` varchar(10) NOT NULL DEFAULT '00/00/0000',
PRIMARY KEY (`id`)
)
Ahora para empezar ya un poco con el script en php vamos a empezar con el config.php, aqui es donde vendra la conexion mysql :
- Código:
<?php
$host_datos = ""; //aqui vendra el host del servidor casi siempre suele ser localhost
$usuario_datos = ""; //aqui el usuario de la base de datos
$clave_datos = ""; //aqui la contraseña del usuario
$nombre_datos = ""; //aqui el nombre de la base de datos
mysql_connect($host_datos, $usuario_datos, $clave_datos);
mysql_select_db($nombre_datos);
?>
Bueno casi todo esta explicado en el codigo php, asi que no se puede explicar mucho mas y apara seguir vamos con el registrar.php :
- Código:
<?php
include('config.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['nombre'], 1);
if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco
echo "El campo <em>nombre</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['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['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['clave'] != $_POST['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['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
$nombre = mysql_real_escape_string($_POST['nombre']);
$clave = mysql_real_escape_string($_POST['clave']);
$email = mysql_real_escape_string($_POST['email']);
// comprobamos que el usuario ingresado no haya sido registrado antes
$sql = mysql_query("SELECT nombre FROM usuarios WHERE nombre='".$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 {
$clave = md5($clave); // encriptamos la contraseña ingresada con md5
// ingresamos los datos a la BD
$dates = date("j/m/Y"); // definimos la fecha
$reg = mysql_query("INSERT INTO usuarios (nombre, clave, email, last_ip) VALUES ('".$nombre."', '".$clave."', '".$email."', '".$dates."')");
if($reg) {
echo "Datos ingresados correctamente.";
}else {
echo "ha ocurrido un error y no se registraron los datos.";
}
}
}
}else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Usuario:</label><br />
<input type="text" name="nombre" maxlength="15" /><br />
<label>Contraseña:</label><br />
<input type="password" name="clave" maxlength="15" /><br />
<label>Confirmar Contraseña:</label><br />
<input type="password" name="clave_conf" maxlength="15" /><br />
<label>Email:</label><br />
<input type="text" name="email" maxlength="50" /><br />
<input type="submit" name="enviar" value="Registrar" />
<input type="reset" value="Borrar" />
</form>
<?php
}
?>
Bueno bastante facil visto de mi vista xD ahora pasemos a comprobar los datos y hacer una sesion, para eso usen este codigo y ponganlo donde mas les guste en su web.
- Código:
<?php
session_start();
include('config.php');
if(empty($_SESSION['nombre'])) { // comprobamos que las variables de sesión estén vacías
?>
<form action="session.php" method="post">
<label>Usuario:</label><br />
<input type="text" name="nombre" /><br />
<label>Contraseña:</label><br />
<input type="password" name="clave" /><br />
<input type="submit" name="enviar" value="Ingresar" />
</form>
<?php
}else {
?>
<p>Hola <strong><?=$_SESSION['nombre']?></strong> | <a href="logout.php">Salir</a></p>
<p>Last Ip: <b><?=$_SESSION['last_ip']?></b></p>
<?php
}
?>
Despues de eso vamos a crear el archivo session.php para crear las sesiones del usuario :
- Código:
<?php
session_start();
include('config.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['nombre']) || empty($_POST['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
$nombre = mysql_real_escape_string($_POST['nombre']);
$clave = mysql_real_escape_string($_POST['clave']);
$clave = md5($clave);
// comprobamos que los datos ingresados en el formulario coincidan con los de la BD
$sql = mysql_query("SELECT id, nombre, clave, last_ip FROM usuarios WHERE nombre='".$nombre."' AND clave='".$clave."'");
if($row = mysql_fetch_array($sql)) {
$_SESSION['id'] = $row['id']; // creamos la sesion "id" y le asignamos como valor el campo id
$_SESSION['nombre'] = $row["nombre"]; // creamos la sesion "nombre" y le asignamos como valor el campo nombre
$_SESSION['last_ip'] = $row["last_ip"];
header("Location: index.php");
}else {
?>
Error, <a href="index.php">Reintentar</a>
<?php
}
}
}else {
header("Location: index.php");
}
?>
Aqui creamo el archivo logout.php para cerrar la sesion :
- Código:
<?php
session_start();
include('config.php'); // incluímos los datos de acceso a la BD
// comprobamos que se haya iniciado la sesión
if(isset($_SESSION['nombre'])) {
session_destroy();
header("Location: index.php");
}else {
echo "Operación incorrecta.";
}
?>
Bueno amigos espero que os sirva, pronto mejorare mas el post pero de momento lo dejare asi.