eduehi 0 Denunciar post Postado Janeiro 13, 2016 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
Beraldo 864 Denunciar post Postado Janeiro 13, 2016 Se quiser pegar o nome do usuário salvo na session, use o ID dele na cláusula WHERE do SELECT Compartilhar este post Link para o post Compartilhar em outros sites
eduehi 0 Denunciar post Postado Janeiro 13, 2016 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
Beraldo 864 Denunciar post Postado Janeiro 14, 2016 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
eduehi 0 Denunciar post Postado Janeiro 14, 2016 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
Wesley Inacio 6 Denunciar post Postado Janeiro 14, 2016 $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
Beraldo 864 Denunciar post Postado Janeiro 14, 2016 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