Hola, soy nuevo en php, he empezado hace 2 semanas a estudiarlo en mi casa. Y ya desde un poco más atrás empecé el diseño de una red social que aún tengo en mente. El problema es que estuve buscando códigos para el registro y login durante días para basearme en ellos. Estuve días y días buscandolos hasta que encontré un código ESPLENDIDO en este foro de un usuario llamado Joaquin(Te lo agradezco muchisimo). Pero el problema es que está todo en una sola página, y claro teniendo el diseño ya hecho y todo lo demás... Lo que queria es separar el form del login, el form del registro y el panel de logeado. Muchas Gracias, os dejo aquí el código:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<?php
session_start();
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// REGISTRO DE USUARIOS BASICO //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Registro de Usuarios By SoyJoaquin. // //
// Ejemplo del tutorial // ___ _ //
///////////////////////////////////////// |_ | (_) //
// Descripcion: // | | ___ __ _ __ _ _ _ _ _ __ //
// Simple login para modificar a tu // | | / _ \ / _` | / _` || | | || || '_ \ //
// Gusto. // /\__/ /| (_) || (_| || (_| || |_| || || | | | //
///////////////////////////////////////// \____/ \___/ \__,_| \__, | \__,_||_||_| |_| //
// Agradecimientos a: // | | //
// PHPeros.net // |_| //
///////////////////////////////////////// //
// Errores: // ...Respeta para que te respeten... //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// error01 = Cuando no se logra la coneccion a la SQL. //
// error02 = Cuando los datos al momento de logearse son incorrectos. //
// error03 = Cuando existio alguna falla al momento del registro. //
// error04 = Cuando ambas contraseÒas del registro no son validas. //
// error05 = Cuando el usuario establecido en el momento de registrarse ya se encuentra registrado. //
// error06 = Aparece cuando una seccion no existe (Si es diferente a 1,2,3,4) //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// En caso de errores, ideas, preguntas favor comunicarlas en el foro. //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Definicion: //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
define("error01", "No se pudo conectar a la SQL - Error 001.");
define("error02", "Contraseña y/o Usuario inconecto - Error 002.");
define("error03", "El usuario ya existe, o hubo un error al procesarse el registro, porfavor intentelo de nuevo. Si este error persiste pongase en contacto con nosotros - Error 003.");
define("error04", "Las contraseñas no coinciden - Error 004.");
define("error05", "El usuario ya existe - Error 005.");
define("error06", "Seccion Inexistente - Error 006.");
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Conectamos a la SQL //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
$servidor = "localhost";
$usuario = "root";
$contrasena = "*****";
$nombrebd = "joaquin";
$conecta = mysql_connect($servidor, $usuario, $contrasena) or die("Error: ".error01."");
mysql_select_db($nombrebd, $conecta);
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Asignamos una variable al GET para ser mas facil al momento de definir las paguinas //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
$id = strip_tags(htmlspecialchars(htmlentities(mysql_real_escape_string($_GET['id']))));
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Asignamos Seciones a los get para hacer mas comodo el sistema. e.j. login.php?id=1 es el registro //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
if($id == 1) {
$id = "registro";
}elseif($id == 2) {
$id = "salir";
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Panel de Usuario //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
if (isset($_SESSION['login_usuario'])) {
?>
HOLA AMAROOO! <?=$_SESSION['login_usuario'];?>
<br>
<a href="login.php?id=2">Salir</a>
<?
if($id == "salir") {
session_destroy();
echo '<SCRIPT LANGUAGE="javascript">location.href = "login.php";</SCRIPT>';
}
}else{
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Paguinas o Secciones del Login: //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Login //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
if($id == NULL) {
if(isset($_POST["entrar"])) {
$usuario = strip_tags(htmlspecialchars(htmlentities(mysql_real_escape_string($_POST['usuario']))));
$contrasena = strip_tags(htmlspecialchars(htmlentities(mysql_real_escape_string($_POST['contra']))));
$resultado = mysql_query("SELECT contra, usuario FROM usuarios WHERE usuario='".$usuario."'");
$verificar = mysql_fetch_array($resultado);
$v_usuario = mysql_num_rows($resultado);
if($verificar["contra"] == md5(md5(md5($contrasena))) and $v_usuario != 0) {
$_SESSION["login_usuario"] = $verificar['usuario'];
echo '<SCRIPT LANGUAGE="javascript">location.href = "login.php";</SCRIPT>';
}else{
echo error02;
}
}
?>
<form method="POST" action="">
Usuario: <input type="text" name="usuario" size="20"><br>
Contraseña:<input type="password" name="contra" size="20"><br>
<input type="submit" value="Entrar" name="entrar">
</form><br>
<a href="login.php?id=1">Registrate</a>
<?
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Registro //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
}elseif($id == "registro") {
if(isset($_POST["registrar"])) {
$nick = $_POST['nick'];
$nick = str_replace(" ","",$nick);
$nick = strip_tags(htmlspecialchars(htmlentities(mysql_real_escape_string($nick))));
$usuario = mysql_query("SELECT contra, usuario FROM usuarios WHERE usuario='".$nick."'");
if($usuario['usuario'] == $nick) {
echo error05;
}else{
$contra1 = strip_tags(htmlspecialchars(htmlentities(mysql_real_escape_string($_POST['contra1']))));
$contra2 = strip_tags(htmlspecialchars(htmlentities(mysql_real_escape_string($_POST['contra2']))));
if($contra1 != $contra2) {
echo error04;
}else{
$query = "INSERT INTO `usuarios` (`usuario`, `contra`) VALUES ('".$nick."','".md5(md5(md5($contra1)))."')";
if(mysql_query($query)) {
echo "Registrado correctamente";
}else{
echo error03;
}
}}}
?>
<form method="POST" action="<?=$_SERVER['PHP_SELF'] ?>?id=1">
Usuario: <input type="text" name="nick" size="20"><br>
Contraseña: <input type="password" name="contra1" size="20"><br>
Repite Contraseña:<input type="password" name="contra2" size="20"><br>
<input type="submit" value="Registrate" name="registrar">
</form><br />
<a href="login.php" >Volver ao login</a>
<?
}
///////////////////////////////////////// ///////////////////////////////////////////////////////////////
// Registro de Usuarios By SoyJoaquin. // Dudas, Ideas Comunicarlas en el foro. //
// Ejemplo del tutorial // NOTA: Les gustaron mis copyright? :D //
/////////////////////////////////////////////////////////////////////////////////////////////////////////
}
?>