Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo5468

Criando duas contas

Recommended Posts

Olá,

 

Bom, eu tentei cadastrar um usuário já existente e pelo increível que pareça a conta duplicou, ficou uma com a antiga senha e com a nova.

Tinha uma conta já registrada com o usuário: Admin

Logo após eu registrei outra conta com o nome de usuário: Admin

E a conta registrou normalmente, então está duplicando as contas e a conta antiga que eu tinha não dava mais para conectar e sim somente a nova dava para conectar. Alguém pode me dizer o que está de errado com esse código?

<?php
class Registration
{
    private $db_connection = null;
    public $errors = array();
    public $messages = array();
	public function __construct()
    {
        if (isset($_POST["register"])) {
            $this->registerNewUser();
        }
    }
	
	private function registerNewUser()
    {
        if (empty($_POST['Username'])) {
            $this->errors[] = "Nome de Usuário vazio";
        } elseif (empty($_POST['user_password_new']) || empty($_POST['user_password_repeat'])) {
            $this->errors[] = "Senha vazia";
        } elseif ($_POST['user_password_new'] !== $_POST['user_password_repeat']) {
            $this->errors[] = "Senha e senha de repetição não são os mesmos";
        } elseif (strlen($_POST['user_password_new']) < 6) {
            $this->errors[] = "Senha tem um comprimento mínimo de 6 caracteres";
        } elseif (strlen($_POST['Username']) > 64 || strlen($_POST['Username']) < 2) {
            $this->errors[] = "Nome de usuário não pode ser menor que 2 ou mais de 64 caracteres";
        } elseif (!preg_match('/^[a-z\d]{2,64}$/i', $_POST['Username'])) {
            $this->errors[] = "Usuário não se encaixa no esquema de nome: somente AZ e do números são permitidos, 2-64 caracteres";
        } elseif (empty($_POST['email'])) {
            $this->errors[] = "E-mail não pode estar vazio";
        } elseif (strlen($_POST['email']) > 64) {
            $this->errors[] = "Email não pode ser maior que 64 caracteres";
        } elseif (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $this->errors[] = "Seu endereço de email não está em um formato de e-mail válido";
        } elseif (!empty($_POST['Username'])
            && strlen($_POST['Username']) <= 64
            && strlen($_POST['Username']) >= 2
            && preg_match('/^[a-z\d]{2,64}$/i', $_POST['Username'])
            && !empty($_POST['email'])
            && strlen($_POST['email']) <= 64
            && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)
            && !empty($_POST['user_password_new'])
            && !empty($_POST['user_password_repeat'])
            && ($_POST['user_password_new'] === $_POST['user_password_repeat'])
        ) {
            $this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

            if (!$this->db_connection->set_charset("utf8")) {
                $this->errors[] = $this->db_connection->error;
            }

            if (!$this->db_connection->connect_errno) {

                $Username = $this->db_connection->real_escape_string(strip_tags($_POST['Username'], ENT_QUOTES));
                $email = $this->db_connection->real_escape_string(strip_tags($_POST['email'], ENT_QUOTES));

                $Password = $_POST['user_password_new'];

                $Password = strtoupper(hash('whirlpool', $Password));

                $sql = "SELECT * FROM accounts WHERE Username = '" . $Username . "' OR email = '" . $email . "';";
                $query_check_Username = $this->db_connection->query($sql);

                if ($query_check_Username->num_rows == 1) {
                    $this->errors[] = "Desculpe, esse endereço de nome de usuário / e-mail já está tomada.";
                } else {
                    $sql = "INSERT INTO accounts (Username, Password, email)
                            VALUES('" . $Username . "', '" . $Password . "', '" . $email . "');";
                    $query_new_user_insert = $this->db_connection->query($sql);

                    if ($query_new_user_insert) {
                        $this->messages[] = "Sua conta foi criada com sucesso. Agora você pode logar.";
                    } else {
                        $this->errors[] = "Desculpe, o seu registo falhou. Por favor volte e tente novamente.";
                    }
                }
            } else {
                $this->errors[] = "Desculpe, sem conexão com o banco.";
            }
        } else {
            $this->errors[] = "Ocorreu um erro desconhecido.";
        }
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.