Ir para conteúdo

POWERED BY:

Arquivado

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

eduehi

Select Pegando usuário logado (session)

Recommended Posts

Boa tarde Galera.

 

Estou me batendo para criar um select que pegue o nome do usuário que está logado.

 

Eu quero criar um spam com uma mensagem no topo da página (Olá Nome Usuário, seja bem vindo!)

 

Segue o código da session.

<?php

class Session
{

    public static function start(){
        session_start();
    }

    public static function setValue($variavel, $valor)
    {
        $_SESSION[$variavel] = $valor;
    }

    public static function getValue($variavel)
    {
        if (isset($_SESSION[$variavel]))
        {
            return $_SESSION[$variavel];
        }
    }

    public static function destroy()
    {
        $_SESSION = array();
        session_destroy();
    }
}

 $tdados = Connection::select("SELECT nome FROM users");
       foreach ($tdados as $reg) {
       $nomeusuario .= '<span>' . $reg['nome'] . '</span>';
  }
       
       $html = str_replace('#NOMEUSUARIO#', $nomeusuario, $html);
        
<p>Olá, <strong>#NOMEUSUARIO#</strong> seja bem vindo!</p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser pegar o nome do usuário salvo na session, use o ID dele na cláusula WHERE do SELECT

Estou perguntando justamente isso amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você nem tentou usar a classe Session? O método getValue() vai te retornar o valor na session. Aí é só passar pra consulta SQL.

 

Tente fazer primeiro. O objetivo do fórum é orientar, não entregar código pronto :)

 

 

Links úteis:

http://forum.imasters.com.br/topic/542539-atencao-orientacoes-e-regras-do-forum-de-php/ (sobre o fórum)

http://php.net/manual/pt_BR/language.oop5.static.php (sobre métodos estáticos)

http://blog.ultimatephp.com.br/sistema-de-cadastro-php-mysql-pdo/ (para montar a consulta)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não cara, não me entenda errado. Não quero código pronto não. Só uma luz, pois sou iniciante. Veja se estou no caminho certo.

       $tdados = ('SELECT * FROM users WHERE id = "'. ($_SESSION['nome']) . '"');
                           
            
            foreach ($tdados as $reg) {
            $nomeusuario .= '<span>' . $reg['nome'] . '</span>';
        }
        
        $html = str_replace('#NOMEUSUARIO#', $nomeusuario, $html);

Compartilhar este post


Link para o post
Compartilhar em outros sites


$query = "SELECT * FROM usuarios WHERE login = '$login'"; //Pega nome pelo Login

$query2 = mysqli_query($connect, $query);

$array = mysqli_fetch_array($query2);

 

$_SESSION['nome'] = $array['nome']; //Nome da coluna no banco de dados, no caso a nome.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o campo id for inteiro, não precisa das aspas. A query ficará assim:

$sql = 'SELECT * FROM users WHERE id = '. $_SESSION['nome'];

(não precisa dos parênteses a mais que você tinha usado)

 

Mas $tdados no seu código é só uma string. Vai gerar erro ao usá-la com o foreach.

Você precisa executar a consulta, com Connection::select, como fez no Post #1.

 

Mas se você criou essa classe Session, pode usar Session::getValue('nome') em vez de usar $_SESSION diretamente

 

 

PS: tome cuidado com SQL Injection. Colocar dados diretamente na query pode gerar problemas. Recomendo filtrar os dados ou, ainda melhor, usar Prepared Statements. Veja este artigo

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.