Postado Julho 22, 2016 8 anos 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.
Postado Julho 22, 2016 8 anos 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 Julho 22, 2016 8 anos 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 Julho 22, 2016 8 anos por emersontb (veja o histórico de edições)
Postado Julho 23, 2016 8 anos 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.