Ver Mensaje Individual
  #24 (permalink)  
Antiguo 15/08/2012, 11:06
PepeF
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 12 años, 3 meses
Puntos: 27
Respuesta: [APORTE] Sistema De Logeo Con Baneo Y Mucho Mas [APORTE]

Registro.php
Código PHP:
Ver original
  1. <?php
  2. include ("config/conectar.php");
  3. ?>
  4. <br><font color="red">
  5. <?php
  6. if(isset($_POST['enviar'])){
  7.     if(strlen($_POST['nombre']) <= "3"){
  8.     echo "El usuario debe tener como mínimo 4 caracteres.";
  9.     }else{
  10.     if(strlen($_POST['contrasena']) <= "4"){
  11.     echo "Las contraseñas tienes que tener como minimo 5 caracteres";
  12.     }else{
  13.     $registros = mysql_query("SELECT nombre FROM usuarios WHERE Nombre = '$_POST[nombre]'");
  14.     if($reg = mysql_fetch_array($registros)){
  15.     echo "El usuario ya existe";
  16.     }else{
  17.     $registros = mysql_query("SELECT email FROM usuarios WHERE Email = '$_POST[email]'");
  18.     if($reg = mysql_fetch_array($registros)){
  19.     echo "El email ya existe";
  20.     }else{
  21.     if($_POST['nombre'] == "" | $_POST['email'] == "" | $_POST['contrasena'] == "" | $_POST['contraseña2'] == "" | $_POST['captcha'] == ""){
  22.     echo "Rellena todos los campos en blanco";
  23.     }else{
  24.     if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
  25.     echo "El correo es incorrecto";
  26.     }else{
  27.     if($_POST['contrasena'] <> $_POST['contraseña2']){
  28.     echo "Las contraseñas no coinciden";
  29.     }else{
  30.     if (!empty($_REQUEST['captcha'])) {
  31.         if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) {
  32.         echo "Captcha incorrecto.";
  33.         $request_captcha = htmlspecialchars($_REQUEST['captcha']);
  34.     }else{
  35.     $CodigoKEY = SHA1(rand(0,100000000));
  36.     $Contraseña = MD5($_POST['contrasena']);
  37.     mysql_query("INSERT INTO usuarios(Nombre,Email,Contrasena,EstadoKEY,CodigoKEY,Baneado,Ip) VALUES ('$_POST[nombre]', '$_POST[email]', '$Contraseña', '1', '$CodigoKEY', '0', '$_SERVER[REMOTE_ADDR]')");
  38.     $registros = mysql_query("SELECT Email,CodigoKEY FROM usuarios WHERE Nombre = '$_POST[nombre]'");
  39.     while($reg = mysql_fetch_array($registros)){
  40.     mail("$_POST[email]","Activa tu cuenta.","Hola $_POST[nombre], Bienvenido tu te as registrado en http://localhost y para activar tu cuenta necesitas meterte en esta url. http://localhost/validacion.php?email=$reg[Email]&key=$reg[CodigoKEY]");
  41.     }
  42.     echo "<font color='green'>Registro Correcto</font>";
  43.     echo "<meta http-equiv='refresh' content='1; url=index.php'>";
  44.     }}}}}}}}}
  45. }
  46. ?></font>
  47. <form action="" method="post">
  48.   Nombre: <br> <input name="nombre" minlength="1" maxlength="15"><br>
  49.   Email: <br> <input name="email"><br>
  50.   Contraseña: <br> <input name="contrasena" type="password"><br>
  51.   Vuelve a escribir la contraseña: <br> <input name="contraseña2" type="password"><br>
  52.  
  53. <! // Captcha >
  54. Codigo de activacion: <br>
  55. <img src="captcha/captcha.php" id="captcha" /><br>
  56. <a href="#" onclick="
  57.     document.getElementById('captcha').src='captcha/captcha.php?'+Math.random();
  58.     document.getElementById('captcha-form').focus();"
  59.     id="change-image">¿No entiendes? Cambiar imagen.</a><br>
  60.     <input type="text" name="captcha" id="captcha-form" autocomplete="off" /><br>
  61. <! // End Captcha >
  62.  
  63.   <input name="enviar" type="submit">
  64. </form>
  65.  
  66. <a href="index.php">Inicia Sesion</a>

Tuweb.php
Código PHP:
Ver original
  1. <?php
  2. include ("config/conectar.php");
  3. ?>
  4.  
  5. <?php
  6. /* Sistema de baneo y de activar cuenta */
  7. if($_COOKIE['login']){
  8. $baneado = mysql_query("SELECT EstadoKEY,Baneado FROM usuarios WHERE Email = '$_COOKIE[login]'");
  9.     while($bane = mysql_fetch_array($baneado)){
  10.         if($bane['Baneado'] == "1"){
  11.         echo "Estas baneado";
  12.         }elseif($bane['EstadoKEY'] == "1"){
  13.         echo "Tu cuenta no esta activada !Activala¡";
  14.         }else{
  15.         include ("config/online.php");
  16. /* End Sistema de baneo y de activar cuenta */
  17.  
  18. ?>
  19.  
  20. ///////////////////////////////
  21. Aqui el contenido de tu web.
  22. ///////////////////////////////
  23.  
  24. <?php
  25.         }
  26.     }
  27. }else{
  28. header('Location: index.php');
  29. }
  30. ?>

Validacion.php
Código PHP:
Ver original
  1. <?php
  2. include ("config/conectar.php");
  3. ?>
  4. <?php
  5. $verificacion = mysql_query("SELECT * FROM usuarios WHERE Email = '$_GET[email]' AND CodigoKey = '$_GET[key]'");
  6. if ($veri = mysql_fetch_array($verificacion)){
  7.     mysql_query("UPDATE usuarios SET EstadoKEY = '0' WHERE Email = '$_GET[email]'");
  8.     echo "Tu cuenta ha sido activada Inicia Sesion.";
  9.     echo "<meta http-equiv='refresh' content='2; url=index.php'>";
  10. }
  11. ?>
  12. <?php
  13. $verificacion = mysql_query("SELECT * FROM usuarios WHERE Email = '$_GET[correo]' AND CodigoKEY = '$_GET[codigokey]'");
  14. if($validar = mysql_fetch_array($verificacion)){
  15.     if(isset($_POST['enviar'])){
  16.         if(strlen($_POST['contraseñanueva']) <= "4"){
  17.         echo "La contraseña debe tener como minimo 5 digitos.";
  18.         }else{
  19.         mysql_query("UPDATE usuarios SET Contrasena = '$_POST[contraseñanueva]' WHERE Email = '$_GET[correo]'");
  20.         }
  21.     }
  22. echo'
  23. <form action="" method="post">
  24.  Tu nueva contraseña: <br> <input name="contraseñanueva">
  25.  <input name="enviar" type="submit">
  26. </form>';
  27. }else{
  28. header('Location: index.php');
  29. }
  30. ?>


Config/Conectar.php
Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect("..........","............","...........");
  3. mysql_select_db("...............");
  4. ?>


Config/Online.php
Código PHP:
Ver original
  1. <?php
  2. include ("conectar.php");
  3. ?>
  4. <?php
  5. $time = 1;
  6. $date = time();
  7. $ip = $_SERVER['REMOTE_ADDR'];
  8. mysql_query("delete from online where Fecha < $limite");
  9. $resp = mysql_query("select * from online where Ip='$ip'");
  10. if(mysql_num_rows($resp) != 0) {
  11. mysql_query("update online set Fecha='$date' where Ip='$ip'");
  12. }
  13. else {
  14. mysql_query("insert into online (Fecha,IP) values ('$date','$ip')");
  15. }
  16. $query = "SELECT * FROM online";
  17. $resp = @mysql_query($query) or die(mysql_error());
  18. $usuarios = mysql_num_rows($resp);
  19. if($usuarios > 1 || $usuarios == 0){
  20. echo("Hay ");
  21. }else{
  22. echo("Hay ");
  23. }
  24. if($usuarios == 0){
  25. echo("no ");
  26. }else{
  27. echo($usuarios." ");}
  28. if($usuarios > 1 || $usuarios == 0){
  29. echo("usuarios en línea.");
  30. }else{
  31. echo("usuario en línea.");
  32. }
  33. ?>

¿Que tablas hay que añadir en la base de dato?
En la base de dato tienes que añadir estas dos tabla.

Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `online` (
  2.   `Fecha` VARCHAR(40) NOT NULL,
  3.   `Ip` VARCHAR(40) NOT NULL,
  4.   PRIMARY KEY (`Fecha`,`Ip`)
  5. )
  6.  
  7. CREATE TABLE IF NOT EXISTS `usuarios` (
  8.   `Nombre` VARCHAR(40) NOT NULL,
  9.   `Email` VARCHAR(40) NOT NULL,
  10.   `Contrasena` VARCHAR(40) NOT NULL,
  11.   `EstadoKEY` VARCHAR(40) NOT NULL,
  12.   `CodigoKEY` VARCHAR(40) NOT NULL,
  13.   `Baneado` VARCHAR(40) NOT NULL,
  14.   `Ip` VARCHAR(40) NOT NULL,
  15.   PRIMARY KEY (`Nombre`,`Email`)
  16. )

El proximo aporte lo creare en MYSQLI

Última edición por PepeF; 15/08/2012 a las 11:14