Ir ao conteúdo
  • Cadastre-se

PHP Como posso chamar o nome da pessoa do banco e colocar na tela do usuário logado


Posts recomendados

//CODIGO DO ARQUIVO LOGIN
<?php
require_once 'classe/usuarios.php';
$u = new Usuario;
?>
...
...
...
<?php
if (isset($_POST['email'])) {

    $email = addslashes($_POST['email']);
    $senha = addslashes($_POST['senha']);

    if (!empty($email) && !empty($senha)) {
        $u->conectar("tela_tcc","localhost","root","");

        if ($u->msgErro == "") {

            if ($u->logar($email, $senha)) {
                header("Location: painel-user.php");
        }

        else {
            ?>
            <div class="msg-erro">
            Email e/ou senha estão incorretos!
            </div>
            <?php
        }
    }
}
?>


//CODIGO DO ARQUIVO usuarios.php 
public function logar ($email, $senha) {                /*verificar se a pessoa esta cadastrada ou nao no banco de dados */
        global $pdo;
        //verificar se o email e senha estão cadastrados, se sim 
        $sql = $pdo->prepare("SELECT id_usuario FROM users WHERE email = :e AND senha = :s");
        $sql->bindValue(":e", $email);
        $sql->bindValue(":s", md5($senha));    //clipitografando a senha com md5...
        $sql->execute();

        if ($sql->rowCount() > 0) {
            //entrar no sistema(sessao)
            $dado = $sql->fetch();
            session_start();
            $_SESSION['id_usuario'] = $dado['id_usuario'];
            return true;     //logado com sucesso 
        }

        else {
            return false; //nao foi possivel logar
        }
    }

//PAINEL DO USUARIO JA LOGADO
<?php
session_start();
if (!isset($_SESSION['id_usuario'])){
    header ("Location: Login.php");
    exit();
}
?>
...
...
<nav class="menu">     //EU QUERIA QUE APARECESSE AQUI DENTRO O NOME DO USUARIO QUE FOI CADASTRADO
        <ul>
            <li> <a href="#"> Home </a></li>
            <li> <a href="#"> Dashboard </a></li>
            <li> <a href="#"> Minha Vida </a></li>
            <li> <a href="Sair.php"> Sair </a></li>
            <li class="perfil"> <a href="#"> <i class="fab fa-facebook-square"> //AQUIII DENTRO <?php echo... ?> </i></a></li>
        </ul>
    </nav>
...
...

Pessoal estou com uma dificuldade muito grande nessa parte, eu estou tentando trazer o "NOME" do usuario que foi cadastrado la no banco de dados, nao consigo trazer esse nome e colocar no painel do usuario o nome dele, alguem poderia me ajudar?

as partes que estão em "..." sao os html da pagina, so coloquei o mais importante pra vocês entenderem... Queria mt que aparecesse o nome que o usuario colocou nesse painel do usuario mas nao consigo pegar esse nome do banco...

Link para o comentário
Compartilhar em outros sites

9 minutos atrás, henrique Souza850 disse:


//CODIGO DO ARQUIVO LOGIN
<?php
require_once 'classe/usuarios.php';
$u = new Usuario;
?>
...
...
...
<?php
if (isset($_POST['email'])) {

    $email = addslashes($_POST['email']);
    $senha = addslashes($_POST['senha']);

    if (!empty($email) && !empty($senha)) {
        $u->conectar("tela_tcc","localhost","root","");

        if ($u->msgErro == "") {

            if ($u->logar($email, $senha)) {
                header("Location: painel-user.php");
        }

        else {
            ?>
            <div class="msg-erro">
            Email e/ou senha estão incorretos!
            </div>
            <?php
        }
    }
}
?>


//CODIGO DO ARQUIVO usuarios.php 
public function logar ($email, $senha) {                /*verificar se a pessoa esta cadastrada ou nao no banco de dados */
        global $pdo;
        //verificar se o email e senha estão cadastrados, se sim 
        $sql = $pdo->prepare("SELECT id_usuario FROM users WHERE email = :e AND senha = :s");
        $sql->bindValue(":e", $email);
        $sql->bindValue(":s", md5($senha));    //clipitografando a senha com md5...
        $sql->execute();

        if ($sql->rowCount() > 0) {
            //entrar no sistema(sessao)
            $dado = $sql->fetch();
            session_start();
            $_SESSION['id_usuario'] = $dado['id_usuario'];
            return true;     //logado com sucesso 
        }

        else {
            return false; //nao foi possivel logar
        }
    }

//PAINEL DO USUARIO JA LOGADO
<?php
session_start();
if (!isset($_SESSION['id_usuario'])){
    header ("Location: Login.php");
    exit();
}
?>
...
...
<nav class="menu">     //EU QUERIA QUE APARECESSE AQUI DENTRO O NOME DO USUARIO QUE FOI CADASTRADO
        <ul>
            <li> <a href="#"> Home </a></li>
            <li> <a href="#"> Dashboard </a></li>
            <li> <a href="#"> Minha Vida </a></li>
            <li> <a href="Sair.php"> Sair </a></li>
            <li class="perfil"> <a href="#"> <i class="fab fa-facebook-square"> //AQUIII DENTRO <?php echo... ?> </i></a></li>
        </ul>
    </nav>
...
...

Pessoal estou com uma dificuldade muito grande nessa parte, eu estou tentando trazer o "NOME" do usuario que foi cadastrado la no banco de dados, nao consigo trazer esse nome e colocar no painel do usuario o nome dele, alguem poderia me ajudar?

as partes que estão em "..." sao os html da pagina, so coloquei o mais importante pra vocês entenderem... Queria mt que aparecesse o nome que o usuario colocou nesse painel do usuario mas nao consigo pegar esse nome do banco...

Faça um select com mysqli_query buscando o nome do usuário no banco.. use como parâmentro where no select o id_usuario da session para buscar.. guarde o retorno do select em uma variável e aponte ela no echo. simples..

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, henrique Souza850 disse:

Eu ainda nao entendi mt bem, onde eu preciso colocar esse mysqli_query("SELECT nome FROM users WHERE id_usuario... ? seria no proprio painel do usuario logado?

Não.. Em qualquer trecho de código php você faz essa query.. como você fez um select com pdo na página, mais ou menos da mesma forma... Eu quando programava em php fazia da seguinte maneira

 

<?php

$query = 'SELECT nome FROM users WHERE $_SESSION['id_user'] = id';
$nome_user = mysqli_query($connection, $query);


$connection = é sua variável de conexão com o BD

?>

Depois vá faça

 

<li class="perfil"> <a href="#"> <i class="fab fa-facebook-square"> <?php echo $nome_user ?> </i></a></li>

Link para o comentário
Compartilhar em outros sites

1 minuto atrás, henrique Souza850 disse:

//FUNÇAO CRIADA NO ARQUIVO USUARIOS ONDE TEM TODA A CONEXAO COM O BANCO DE DADOS
public function loggar($id) {
global $pdo;

$array = array();

$sql = "SELECT nome FROM users WHERE idusuario = :idusuario";
$sql = $pdo->prepare($sql);
$sql->bindValue("idusuario",$id);
$sql->execute();

if ($sql->rowCount() > 0) {
$array = $sql->fetch();
}

return $array;
}

//PAINEL DO USUARIO
if (isset($SESSION['id_usuario']) && !empty($_SESSION['id_usuario'])) {
    
    require_once 'classe/usuario.php;
    $u = new Usuario();
     
    $listLoggar = $u->loggar($_SESSION['id_usuario']);
    $nomeUser = $listLoggar['nome'];
}
    else {
     header (" Location Login.php");
}	

 

Eu vi esse codigo, e tentei implementar no meu mas mesmo assim nao deu...

Não precisa usar fetch, nem muito menos guardar em um array, você quer o nome do usuário que está logado.. o fetch retorna o primeiro elemento de uma consulta, os outros são ignorados, como não haverá outros elementos se buscas pelo id, o id deve ser único, sempre retornará apenas um registro.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@vini_seven

//Aquivo do usuario ja logado, estou colocando o que voce falou aqui dentro mesmo no começo do arquivo, tentei mudei isso que voce mandou de "id_user" que nao estava dando e tentei colocar o "id_usuario" mesmo pra ver se ia, mas mesmo assim n deu
<?php
session_start();
if (isset($_SESSION['id_usuario'])){
    
    $query = 'SELECT nome FROM users WHERE $_SESSION['id_usuario'] = id';
    $nome_usuario = mysqli_query($connection, $query);
}
    else {
        header ("Location: Login.php");
        exit();
    }
?>

Ainda esta dando erro na parte do " $_SESSION['id_usuario'] = id';

Esta em vermelho e dando 3 erros aqui no meu editor, Unexpected'Name'.Expected, Undefined constant 'id_usuario' e Unexpected 'StringLiteral'.Expected

Link para o comentário
Compartilhar em outros sites

7 minutos atrás, henrique Souza850 disse:

@vini_seven



//Aquivo do usuario ja logado, estou colocando o que voce falou aqui dentro mesmo no começo do arquivo, tentei mudei isso que voce mandou de "id_user" que nao estava dando e tentei colocar o "id_usuario" mesmo pra ver se ia, mas mesmo assim n deu
<?php
session_start();
if (isset($_SESSION['id_usuario'])){
    
    $query = 'SELECT nome FROM users WHERE $_SESSION['id_usuario'] = id';
    $nome_usuario = mysqli_query($connection, $query);
}
    else {
        header ("Location: Login.php");
        exit();
    }
?>

Ainda esta dando erro na parte do " $_SESSION['id_usuario'] = id';

Esta em vermelho e dando 3 erros aqui no meu editor, Unexpected'Name'.Expected, Undefined constant 'id_usuario' e Unexpected 'StringLiteral'.Expected

Sua variável session pode estar vazia.. tentei realizar o login normalmente do usuário novamente.

7 minutos atrás, henrique Souza850 disse:

@vini_seven



//Aquivo do usuario ja logado, estou colocando o que voce falou aqui dentro mesmo no começo do arquivo, tentei mudei isso que voce mandou de "id_user" que nao estava dando e tentei colocar o "id_usuario" mesmo pra ver se ia, mas mesmo assim n deu
<?php
session_start();
if (isset($_SESSION['id_usuario'])){
    
    $query = 'SELECT nome FROM users WHERE $_SESSION['id_usuario'] = id';
    $nome_usuario = mysqli_query($connection, $query);
}
    else {
        header ("Location: Login.php");
        exit();
    }
?>

Ainda esta dando erro na parte do " $_SESSION['id_usuario'] = id';

Esta em vermelho e dando 3 erros aqui no meu editor, Unexpected'Name'.Expected, Undefined constant 'id_usuario' e Unexpected 'StringLiteral'.Expected

ah coloque assim '$_SESSION['id_usuario']' aspas em volta de session..

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

3 minutos atrás, henrique Souza850 disse:

@vini_seven Vish, mesmo assim nao, tentei colocar as aspas no $_SESSION e mesmo assim esta com erro nele

manda o trecho do código como está agora...

comente o select.. e jogue um echo nessa session pra ver se ela está capturando o valor..... Manda o código completo da página.

Link para o comentário
Compartilhar em outros sites

@vini_seven

//CODE DA PAGINA EM QUE O USUARIO ESTARA APOS EFETUAR SEU LOGIN
<?php
session_start();
if (isset($_SESSION['id_usuario'])){
    
    $query = 'SELECT nome FROM users WHERE '$_SESSION['id_user']' = id';
    $nome_user = mysqli_query($conectar, $query);
}
    else {
        header ("Location: Login.php");
        exit();
    }
?>

<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title> Conta do Usuario </title>
    <link rel="stylesheet" href="estilos-user.css">
    <script src="https://kit.fontawesome.com/331617f9bc.js" crossorigin="anonymous"> </script>
</head>

<body>
    <nav class="menu">
        <ul>
            <li> <a href="#"> Home </a></li>
            <li> <a href="#"> Dashboard </a></li>
            <li> <a href="#"> Minha Vida </a></li>
            <li> <a href="Sair.php"> Sair </a></li>
            <li class="perfil"> <a href="#"> <i class="fab fa-facebook-square"> <?php echo $nome_user ?> </i></a></li>
        </ul>
    </nav>

</body>
</html>

//CODIGO DO MEU ARQUIVO ONDE TEM TODAS AS FUNÇOES, CHAMADA usuarios.php
<?php            /*tera 3 metodos */

Class Usuario {                       
    
    private $pdo; 
    public $msgErro = "";

    public function conectar ($nome, $host, $usuario, $senha) {            /* conetando ao banco de dados*/
        global $pdo;
        global $msgErro;
        try {
            $pdo = new PDO("mysql:dbname=".$nome.";host=".$host,$usuario,$senha);
        } catch (PDOException $e){
            $msgErro = $e->getMessage();
        }
    }

    public function cadastrar ($nome, $cpf, $telefone, $email, $endereco, $senha) {         /* enviar as informaçoes para o banco de dados na tela de cadastro */
        global $pdo;
        //verificando se ja existe um email cadastrado 
        $sql = $pdo->prepare ("SELECT id_usuario FROM users WHERE email = :e");
        $sql->bindValue (":e", $email);
        $sql->execute();
        
        if ($sql->rowCount() > 0) {     //descubrindo se a pessoa esta cadastrada ou nao
            return false;               //ja esta cadastrada        
        }

        else {              //caso nao, cadastrar
            $sql = $pdo->prepare ("INSERT INTO users (nome, cpf, telefone, email, endereco, senha) VALUES (:n, :c, :t, :e, :d, :s)");
            $sql->bindValue (":n", $nome);
            $sql->bindValue (":c", $cpf);
            $sql->bindValue (":t", $telefone);
            $sql->bindValue (":e", $email);
            $sql->bindValue (":d", $endereco);
            $sql->bindValue (":s", md5($senha));    //clipitografando a senha com md5..
            $sql->execute();
            return true;
        }
    }

    public function logar ($email, $senha) {                /*verificar se a pessoa esta cadastrada ou nao no banco de dados */
        global $pdo;
        //verificar se o email e senha estão cadastrados, se sim 
        $sql = $pdo->prepare("SELECT id_usuario FROM users WHERE email = :e AND senha = :s");
        $sql->bindValue(":e", $email);
        $sql->bindValue(":s", md5($senha));    //clipitografando a senha com md5...
        $sql->execute();

        if ($sql->rowCount() > 0) {
            //entrar no sistema(sessao)
            $dado = $sql->fetch();
            session_start();
            $_SESSION['id_usuario'] = $dado['id_usuario'];
            return true;     //logado com sucesso 
        }

        else {
            return false; //nao foi possivel logar
        }
    }
}
?>

Aqui esta o cod das minhas duas paginas que estou fazendo, a primeira e do usuario ja logado, a segunda é onde eu guardo minhas funçoes funçoes, nao sei se precisa enviar a parte do login tambem mas se precisar e so falar que eu mando aqui

Link para o comentário
Compartilhar em outros sites

agora, henrique Souza850 disse:

@vini_seven


//CODE DA PAGINA EM QUE O USUARIO ESTARA APOS EFETUAR SEU LOGIN
<?php
session_start();
if (isset($_SESSION['id_usuario'])){
    
    $query = 'SELECT nome FROM users WHERE '$_SESSION['id_user']' = id';
    $nome_user = mysqli_query($conectar, $query);
}
    else {
        header ("Location: Login.php");
        exit();
    }
?>

<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title> Conta do Usuario </title>
    <link rel="stylesheet" href="estilos-user.css">
    <script src="https://kit.fontawesome.com/331617f9bc.js" crossorigin="anonymous"> </script>
</head>

<body>
    <nav class="menu">
        <ul>
            <li> <a href="#"> Home </a></li>
            <li> <a href="#"> Dashboard </a></li>
            <li> <a href="#"> Minha Vida </a></li>
            <li> <a href="Sair.php"> Sair </a></li>
            <li class="perfil"> <a href="#"> <i class="fab fa-facebook-square"> <?php echo $nome_user ?> </i></a></li>
        </ul>
    </nav>

</body>
</html>

//CODIGO DO MEU ARQUIVO ONDE TEM TODAS AS FUNÇOES, CHAMADA usuarios.php
<?php            /*tera 3 metodos */

Class Usuario {                       
    
    private $pdo; 
    public $msgErro = "";

    public function conectar ($nome, $host, $usuario, $senha) {            /* conetando ao banco de dados*/
        global $pdo;
        global $msgErro;
        try {
            $pdo = new PDO("mysql:dbname=".$nome.";host=".$host,$usuario,$senha);
        } catch (PDOException $e){
            $msgErro = $e->getMessage();
        }
    }

    public function cadastrar ($nome, $cpf, $telefone, $email, $endereco, $senha) {         /* enviar as informaçoes para o banco de dados na tela de cadastro */
        global $pdo;
        //verificando se ja existe um email cadastrado 
        $sql = $pdo->prepare ("SELECT id_usuario FROM users WHERE email = :e");
        $sql->bindValue (":e", $email);
        $sql->execute();
        
        if ($sql->rowCount() > 0) {     //descubrindo se a pessoa esta cadastrada ou nao
            return false;               //ja esta cadastrada        
        }

        else {              //caso nao, cadastrar
            $sql = $pdo->prepare ("INSERT INTO users (nome, cpf, telefone, email, endereco, senha) VALUES (:n, :c, :t, :e, :d, :s)");
            $sql->bindValue (":n", $nome);
            $sql->bindValue (":c", $cpf);
            $sql->bindValue (":t", $telefone);
            $sql->bindValue (":e", $email);
            $sql->bindValue (":d", $endereco);
            $sql->bindValue (":s", md5($senha));    //clipitografando a senha com md5..
            $sql->execute();
            return true;
        }
    }

    public function logar ($email, $senha) {                /*verificar se a pessoa esta cadastrada ou nao no banco de dados */
        global $pdo;
        //verificar se o email e senha estão cadastrados, se sim 
        $sql = $pdo->prepare("SELECT id_usuario FROM users WHERE email = :e AND senha = :s");
        $sql->bindValue(":e", $email);
        $sql->bindValue(":s", md5($senha));    //clipitografando a senha com md5...
        $sql->execute();

        if ($sql->rowCount() > 0) {
            //entrar no sistema(sessao)
            $dado = $sql->fetch();
            session_start();
            $_SESSION['id_usuario'] = $dado['id_usuario'];
            return true;     //logado com sucesso 
        }

        else {
            return false; //nao foi possivel logar
        }
    }
}
?>

Aqui esta o cod das minhas duas paginas que estou fazendo, a primeira e do usuario ja logado, a segunda é onde eu guardo minhas funçoes funçoes, nao sei se precisa enviar a parte do login tambem mas se precisar e so falar que eu mando aqui

Tentou fazer um echo na session apenas para verificar se ela está guardando o id_user corretamente?

 

  • Triste 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!