[POO][APORTE] Sistema de Usuarios (Login + Registro)

Topic created · 4 Mensajes · 8735 Visitas
  • Hola, estos ultimos dias me ha dado por aprender poo. Casi todos, por no decir todos, no sabeis ni lo que es POO, pues es sencillo, Programacion orientada a Objetos. En resumidas palabras, PHP de una forma un poco especial. Este "lenguaje" se usa para crear proyectos en grupo, porque de la otra forma seria muchisimo mas dificil saber lo que ha escrito el comprañero. Bueno, comento que solo es un sistema de usuarios, asi que si no sabeis programar en php, aprenderoslo, es lo mejor que podeis hacer. Las contraseñas estan encriptadas en MD5 y tiene una pequeña function para evitar las sql ibjection. Tambien decir que esto solo lo soporta PHP5, que es donde se ha implementado esta funcion.

    login.php

    user                 =    $username;
            $this->post_password    =    $password;
            $this->query             =    mysql_query("SELECT * FROM users WHERE username = '".$this->user."'");
            $this->mysql_password    =    mysql_fetch_array($this->query);
            $this->numrows            =    mysql_num_rows($this->query);
            $this->error            =    "Nombre de usuario o contraseña incorrectos.";
            $this->ok                =    "Bienvenido ".$this->user.". Te has logueado correctamente.";
            $this->fields            =    "Por favor, rellena todos los campos.";
        }
        public function check()
        {
            if($this->user && $this->post_password)
            {
                if($this->numrows !=0)
                {
                    if($this->mysql_password['password'] == md5($this->post_password))
                    {
                        session_start();
                        $_SESSION['username'] = $this->user;
                        echo $this->ok;
                    }
                    else
                    {
                        echo $this->error;
                    }
                }
                else
                {
                    echo $this->error;
                }
            }
            else
            {
                echo $this->fields;
            }
        }
    }
    include_once "clear.php";
    $login = new login(clear($_POST['username']), clear($_POST['password']));
    echo $login->check();
    ?>
    

    login.html

        Username:   
    
        Password:   
    

    register.php

    user         =    $username;
            $this->password        =    $password;
            $this->repassword    =    $repeatpassword;
            $this->email        =    $email;
            $this->fullname        =    $fullname;
            $this->query        =    mysql_query("SELECT * FROM users WHERE username = '".$this->user."'");
            $this->numrows        =    mysql_num_rows($this->query);
            $this->error        =    "Nombre de usuario en uso.";
            $this->error2        =    "Las contraseñas no coinciden";
            $this->error3        =    "Nombre completo y/o nombre de usuarios superan los 25 caracteres.";
            $this->error4        =    "La contraseña debe tener un minimo de 6 caracteres y un maximo de 25";
            $this->ok            =    "Te has registrado correctamente";
            $this->fields        =    "Por favor, rellena todos los campos.";
        }
        public function check()
        {
            if($this->numrows!=0)
            {
                die ($this->error);
            }
            if($this->user&&$this->password&&$this->email&&$this->fullname)
            {
                if($this->password == $this->repassword)
                {
                    if(strlen($this->username)>25||strlen($this->fullname)>25)
                    {
                        echo $this->error3;
                    }
                    else
                    {
                        if(strlen($this->password)>25||strlen($this->password)
    

    register.html

        Fullaname:   
    
        Username:   
    
        Password:   
    
        Repeat Password:   
    
        E-Mail:   
    

    clear.php

    config.php

    MySQL

    CREATE TABLE IF NOT EXISTS `users` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `fullname` varchar(100) NOT NULL DEFAULT '',
      `username` varchar(25) NOT NULL DEFAULT '',
      `password` varchar(100) NOT NULL DEFAULT '',
      `email` varchar(100) NOT NULL DEFAULT '',
      `admin` char(1) NOT NULL DEFAULT '',
      PRIMARY KEY (`id`)
    )
    

    Salu2

  • POO (programacion orientada a objetos, en este caso en PHP)
    PHP (lenguaje de programacion)
    MySQL (Base de datos)
    MD5(modo de encriptar texto)

    Esto es un sistema de registros hecho en POO. El POO se usa para hacer proyectos en grupo, principalmente, por ser mas facil de entender que el "PHP de toda la vida". Este sistema esta protejido de los hackers. Las contraseñas de los registros estan codificadas en MD5. Si pensair usar este codigo, deveis saber que solo funciona con PHP5, las versiones anteriores no soportan el POO.

  • vale, por aclarar un poco:
    EL sistema consta de una base de datos, donde se crea una tabla "usuarios". En esa tabla se almacenan la ID, nombre, email, contraseña, etc.
    Y el usuario tiene dos páginas a su disposición: login.html y register.html. (se sobreentiende para qué se usa cada página claro).

    Esas páginas únicamente constan de un pequeño formulario. La información de esos formularios es enviada a un archivo php: login.html envía la información al archivo login.php como podemos ver en esta línea:

    method="post" action="login.php"
    

    Eso significa que al enviar el formulario se llevará a cabo la acción "login.php" y que el método usado para enviar esa información será POST. El método es importante por lo que veremos ahora, mirad esta línea del archivo login.php:

    $login = new login(clear($_POST['username']), clear($_POST['password']));
    

    la variable $login se crea a partir de la info enviada por el formulario. Concretamente con los valores introducidos en los campos "username" y "password", que como fueron enviados con el método POST, se obtienen ahora mediante $_POST['username'] y $_POST['password']

    El formulario registro.html hace algo similar.
    Bueno, con más tiempo en otro momento explicamos más.

  • He estado haciendo unos arreglillos en el login.php, no guardaba la session correctamente.

    session_strat; no funciona, debe ser session_start();

    Ya lo he cambiado.

    Salu2