Ir para conteúdo

Featured Replies

Postado

Venho pedir desculpa se esse nao for o lugar correto ..

 

Peguei um website de nto aqui no tk mesmo e queria saber como valida a conta de um player no forum.

  • Respostas 6
  • Visualizações 461
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Vai haver sim, você vai precisar ter um pouco de conhecimento em HTML, para mudar os formulários e utilizar o PHP que estou usando para enviar para o banco de dados e por e-mail. Esse tutorial qu

Postado
  • Autor
4 horas atrás, emersontb disse:

Validar o formulário ou a Sessão do usuário?

tipo ele cria a conta no forum mais tinha que ir um link pro email dele pra ele confirmar a conta dele so que nao vai o link

Postado

Ok vamos lá, vamos fazer isso com o PDO para uma conexão segura e anti "SQL INJECTION", vamos criar uma database chamada "users" dentro dessa database clique em SQL e dentro de SQL coloque esse

código para criar as tabelas dentro da database que criamos a chamada "users"

 

CREATE TABLE IF NOT EXISTS `tbl_users` (
  `userID` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(100) NOT NULL,
  `userEmail` varchar(100) NOT NULL,
  `userPass` varchar(100) NOT NULL,
  `userStatus` enum('Y','N') NOT NULL DEFAULT 'N',
  `tokenCode` varchar(100) NOT NULL,
  PRIMARY KEY (`userID`),
  UNIQUE KEY `userEmail` (`userEmail`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

2° parte :

Crie um arquivo dbconfig.php  dentro coloque esse código:

Spoiler

<?php
class Database
{
     // aqui vão seus dados do do PHPMYAdmin seu dominio seu usuario e senha !
    private $host = "localhost";
    private $db_name = "users";
    private $username = "";
    private $password = "";
    public $conn;
     
    public function dbConnection()
    {
     
        $this->conn = null;    
        try
        {
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    
        }
        catch(PDOException $exception)
        {
            echo "Connection error: " . $exception->getMessage();
        }
         
        return $this->conn;
    }
}
?>

 

3° parte : crie um arquivo chamado class.user.php

Spoiler

<?php

require_once 'dbconfig.php';

class USER
{    

    private $conn;
    
    public function __construct()
    {
        $database = new Database();
        $db = $database->dbConnection();
        $this->conn = $db;
    }
    
    public function runQuery($sql)
    {
        $stmt = $this->conn->prepare($sql);
        return $stmt;
    }
    
    public function lasdID()
    {
        $stmt = $this->conn->lastInsertId();
        return $stmt;
    }
    
    public function register($uname,$email,$upass,$code)
    {
        try
        {                            
            $password = md5($upass);
            $stmt = $this->conn->prepare("INSERT INTO tbl_users(userName,userEmail,userPass,tokenCode)
                                                         VALUES(:user_name, :user_mail, :user_pass, :active_code)");
            $stmt->bindparam(":user_name",$uname);
            $stmt->bindparam(":user_mail",$email);
            $stmt->bindparam(":user_pass",$password);
            $stmt->bindparam(":active_code",$code);
            $stmt->execute();    
            return $stmt;
        }
        catch(PDOException $ex)
        {
            echo $ex->getMessage();
        }
    }
    
    public function login($email,$upass)
    {
        try
        {
            $stmt = $this->conn->prepare("SELECT * FROM tbl_users WHERE userEmail=:email_id");
            $stmt->execute(array(":email_id"=>$email));
            $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
            
            if($stmt->rowCount() == 1)
            {
                if($userRow['userStatus']=="Y")
                {
                    if($userRow['userPass']==md5($upass))
                    {
                        $_SESSION['userSession'] = $userRow['userID'];
                        return true;
                    }
                    else
                    {
                        header("Location: index.php?error");
                        exit;
                    }
                }
                else
                {
                    header("Location: index.php?inactive");
                    exit;
                }    
            }
            else
            {
                header("Location: index.php?error");
                exit;
            }        
        }
        catch(PDOException $ex)
        {
            echo $ex->getMessage();
        }
    }
    
    
    public function is_logged_in()
    {
        if(isset($_SESSION['userSession']))
        {
            return true;
        }
    }
    
    public function redirect($url)
    {
        header("Location: $url");
    }
    
    public function logout()
    {
        session_destroy();
        $_SESSION['userSession'] = false;
    }

// Estou usando de teste o PHPMailer usando para autenticar o provedor Gmail
    
    function send_mail($email,$message,$subject)
    {      

 

// Lembrando que estou usando o Gmail, para usar outro provedor procure no google para você colocar a porta e o Host do provedor aqui \/

               
        require_once('mailer/class.phpmailer.php');
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPDebug  = 0;                     
        $mail->SMTPAuth   = true;                  
        $mail->SMTPSecure = "ssl";                 
        $mail->Host       = "smtp.gmail.com";      
        $mail->Port       = 465;             
        $mail->AddAddress($email);
        $mail->Username="seu email aqui";  
        $mail->Password="sua senha do seu e-mail aqui";            
        $mail->SetFrom('coloque seu e-mail aqui tbm');
        $mail->AddReplyTo("Email que recebera as respostas");
        $mail->Subject    = $subject;
        $mail->MsgHTML($message);
        $mail->Send();
    }    
}

 

4° Parte : Crie um pasta dentro do seu site chamada: Mailer

dentro coloque esses 3 arquivos e não mexa:

class.phpmailer.php

class.pop3.php

class.smtp.php

 

5° Parte: Agora vamos utilizar o Bootstrap crie uma pasta chamada Bootstrap

e descompactar eles:

bootstrap.zip

 

6° Parte crie uma pasta chamada Assets dentro dessa pasta vão conter os arquivos style.css

Descompactar dentro dela :

assets.zip

 

7° Parte : Agora eu não vou vou ficar criando spoiler e colocando os códigos dentro porque vai ficar extenso o tutorial.

Vou colocar os arquivos aqui e é só você descompactá-los na raiz do site:

fpass.php 

home.php

index.php

logout.php

resetpass.php

signup.php

verify.php

 

8° Parte: É isso aí amigo acabou graças a deus rsrsrs, bom esse tutorial foi utilizando a classe PDO - Orientado a Objeto

Uma conexão bem segura e utilizando o MYSQL, esse exemplo dos arquivos aqui podem ser utilizado em projetos: pequenos e

grandes, eu comentei as linhas dos arquivos iniciais que você irá colocar seus dados, espero que eu tenha ajudado não só você

mais, outras pessoas aqui do forum para utilizar em um projeto com: Login, Register, Resgatar senhas e confirmação usando a Class PHPMailer

Qual quer coisa me notificar para o suporte ! ^^ !

 

                               

 

 

Editado por emersontb (veja o histórico de edições)

Postado
  • Autor
18 horas atrás, emersontb disse:

Ok vamos lá, vamos fazer isso com o PDO para uma conexão segura e anti "SQL INJECTION", vamos criar uma database chamada "users" dentro dessa database clique em SQL e dentro de SQL coloque esse

código para criar as tabelas dentro da database que criamos a chamada "users"

 

CREATE TABLE IF NOT EXISTS `tbl_users` (
  `userID` int(11) NOT NULL AUTO_INCREMENT,
  `userName` varchar(100) NOT NULL,
  `userEmail` varchar(100) NOT NULL,
  `userPass` varchar(100) NOT NULL,
  `userStatus` enum('Y','N') NOT NULL DEFAULT 'N',
  `tokenCode` varchar(100) NOT NULL,
  PRIMARY KEY (`userID`),
  UNIQUE KEY `userEmail` (`userEmail`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

 

2° parte :

Crie um arquivo dbconfig.php  dentro coloque esse código:

  Mostrar conteúdo oculto

<?php
class Database
{
     // aqui vão seus dados do do PHPMYAdmin seu dominio seu usuario e senha !
    private $host = "localhost";
    private $db_name = "users";
    private $username = "";
    private $password = "";
    public $conn;
     
    public function dbConnection()
    {
     
        $this->conn = null;    
        try
        {
            $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    
        }
        catch(PDOException $exception)
        {
            echo "Connection error: " . $exception->getMessage();
        }
         
        return $this->conn;
    }
}
?>

 

3° parte : crie um arquivo chamado class.user.php

  Mostrar conteúdo oculto

<?php

require_once 'dbconfig.php';

class USER
{    

    private $conn;
    
    public function __construct()
    {
        $database = new Database();
        $db = $database->dbConnection();
        $this->conn = $db;
    }
    
    public function runQuery($sql)
    {
        $stmt = $this->conn->prepare($sql);
        return $stmt;
    }
    
    public function lasdID()
    {
        $stmt = $this->conn->lastInsertId();
        return $stmt;
    }
    
    public function register($uname,$email,$upass,$code)
    {
        try
        {                            
            $password = md5($upass);
            $stmt = $this->conn->prepare("INSERT INTO tbl_users(userName,userEmail,userPass,tokenCode)
                                                         VALUES(:user_name, :user_mail, :user_pass, :active_code)");
            $stmt->bindparam(":user_name",$uname);
            $stmt->bindparam(":user_mail",$email);
            $stmt->bindparam(":user_pass",$password);
            $stmt->bindparam(":active_code",$code);
            $stmt->execute();    
            return $stmt;
        }
        catch(PDOException $ex)
        {
            echo $ex->getMessage();
        }
    }
    
    public function login($email,$upass)
    {
        try
        {
            $stmt = $this->conn->prepare("SELECT * FROM tbl_users WHERE userEmail=:email_id");
            $stmt->execute(array(":email_id"=>$email));
            $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
            
            if($stmt->rowCount() == 1)
            {
                if($userRow['userStatus']=="Y")
                {
                    if($userRow['userPass']==md5($upass))
                    {
                        $_SESSION['userSession'] = $userRow['userID'];
                        return true;
                    }
                    else
                    {
                        header("Location: index.php?error");
                        exit;
                    }
                }
                else
                {
                    header("Location: index.php?inactive");
                    exit;
                }    
            }
            else
            {
                header("Location: index.php?error");
                exit;
            }        
        }
        catch(PDOException $ex)
        {
            echo $ex->getMessage();
        }
    }
    
    
    public function is_logged_in()
    {
        if(isset($_SESSION['userSession']))
        {
            return true;
        }
    }
    
    public function redirect($url)
    {
        header("Location: $url");
    }
    
    public function logout()
    {
        session_destroy();
        $_SESSION['userSession'] = false;
    }

// Estou usando de teste o PHPMailer usando para autenticar o provedor Gmail
    
    function send_mail($email,$message,$subject)
    {      

 

// Lembrando que estou usando o Gmail, para usar outro provedor procure no google para você colocar a porta e o Host do provedor aqui \/

               
        require_once('mailer/class.phpmailer.php');
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPDebug  = 0;                     
        $mail->SMTPAuth   = true;                  
        $mail->SMTPSecure = "ssl";                 
        $mail->Host       = "smtp.gmail.com";      
        $mail->Port       = 465;             
        $mail->AddAddress($email);
        $mail->Username="seu email aqui";  
        $mail->Password="sua senha do seu e-mail aqui";            
        $mail->SetFrom('coloque seu e-mail aqui tbm');
        $mail->AddReplyTo("Email que recebera as respostas");
        $mail->Subject    = $subject;
        $mail->MsgHTML($message);
        $mail->Send();
    }    
}

 

4° Parte : Crie um pasta dentro do seu site chamada: Mailer

dentro coloque esses 3 arquivos e não mexa:

class.phpmailer.php

class.pop3.php

class.smtp.php

 

5° Parte: Agora vamos utilizar o Bootstrap crie uma pasta chamada Bootstrap

e descompactar eles:

bootstrap.zip

 

6° Parte crie uma pasta chamada Assets dentro dessa pasta vão conter os arquivos style.css

Descompactar dentro dela :

assets.zip

 

7° Parte : Agora eu não vou vou ficar criando spoiler e colocando os códigos dentro porque vai ficar extenso o tutorial.

Vou colocar os arquivos aqui e é só você descompactá-los na raiz do site:

fpass.php 

home.php

index.php

logout.php

resetpass.php

signup.php

verify.php

 

8° Parte: É isso aí amigo acabou graças a deus rsrsrs, bom esse tutorial foi utilizando a classe PDO - Orientado a Objeto

Uma conexão bem segura e utilizando o MYSQL, esse exemplo dos arquivos aqui podem ser utilizado em projetos: pequenos e

grandes, eu comentei as linhas dos arquivos iniciais que você irá colocar seus dados, espero que eu tenha ajudado não só você

mais, outras pessoas aqui do forum para utilizar em um projeto com: Login, Register, Resgatar senhas e confirmação usando a Class PHPMailer

Qual quer coisa me notificar para o suporte ! ^^ !

 

                               

 

 

uma pergunta na 7° parte tem um arquivo index.php pra baixar ...   mais na raiz do meu site tem um tbm pode subistituir nao vai ter problema nenhum ?

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo