Ir para conteúdo

POWERED BY:

Arquivado

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

demosthenesvalois

Como puxar informações do banco de dados

Recommended Posts

Boa tarde,

Não sei se ja teve um tópico tratando sobre essa mesma questão procurei e não encontrei eu sou novato e linguagem web e estou no trabalho e tenho que fazer um sistema de justificativa de falta basicamente a pessoa vai colocar o seu login e a senha e logo após vai abrir a pagina da justificativa o que eu queria saber é:

Como puxar os dados do usuário para essa tela por exemplo o usuario loga "Carlos Eduardo" ai na tela de justificativa eu queria que ja aparecesse as informações dele por exemplo "nome", "matricula", "setor", essas informações ja deveriam aparecer assim que o usuario logasse eu não consegui fazer isso e por enquanto os usuarios logam e depois tem que digitar toda essa informação.

Se eu alguém puder me ajudar eu agradeço

 

Grato

 

Demosthenes Valois

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora do login, salve na session/cookie o ID do usuário. Em seguida, onde precisar dos dados dele, basta fazer um SELECT filtrando pelo ID na session/cookie

 

Se houver outros dados usados com frequência, por guardar na session/cookie também, não só o ID

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara primeiro você terá que criar um painel de login com senha criptografada, e criar um banco de dados junto para armazenar a senha e os dados do usuário no mesmo banco, é um pouco trabalhoso, e se você não têm nenhuma noção de php, sugiro que você procure saber como funciona a programação, não é difícil têm muitos tutoriais que ensinam a fazer passo a passo, aqui tanto os colaboradores e como os moderadores , possam te dar dicas de como funciona, se realmente que entender a lógica faça isso, e se você pegar um código pronto só copiando e colando, você nunca irá entender de como funciona, eu sei o básico de programação, e comecei assim, tendeu, espero ter ajudado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

o meu sistema tem o "index.html" que aponta para o "login.php" e no login ele verifica as informações e depois ele aponta para o "index.php" e que o sistema propriamente dito no meu código tem o comando de pegar o cookie de login no caso se eu logar como "demosthenes" fica embaixo "Bem vindo, Demosthenes".

Beraldo essa session/cookie que você falou eu coloco em qual arquivo?

no de "login.php" ou no "index.php"

Jeovane eu ja criei esses arquivos e o banco de dados com o easyphp ele está cadastrando normal e preenchendo a tabela. Eu entro no fórum imasters todo dia vejo video aula sempre só tenho 2 semanas de linguagem web na faculdade eu não vejo e comecei o estagio que é só web estou gostando basbante. Muito obrigado pelo conselho

 

segue o codigo do cookie do meu sistema que está no final da pagina do "index.php"

<?php
$login_cookie = $_COOKIE['login'];
if(isset($login_cookie)) {
echo "Bem-Vindo, $login_cookie <br>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

no login.php você deve criar a session ou cookie (se já está usando cookie, continue com cookie)

nesse script você salva o cookie para identificar o usuário

apenas tome cuidado com a Segurança. Se salvar somente o ID do usuário, basta o usuário trocar o ID no cookie e ele estará logado como outro usuário, mesmo sem saber a senha dele. Leia mais sobre isso neste meu artigo: http://rberaldo.com.br/seguranca-em-sistemas-de-login-senhas-e-cookies/

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado Beraldo estou lendo seu artigo ele é ótimo bastante explicado muito bom parabéns!

Eu não tinha me tocado ainda com a questão da segurança e ai me veio uma pergunta no caso aqui o sistema nós vamos importar os logins e as senhas que os usuarios usam para logar na maquina dai eles não vão precisar se cadastrarem.

Isso é muito perigoso? Tem como implementar uma boa segurança?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nenhuma senha deve ser armazenada literalmente. Use hash ou criptografia

Eu importaria só o email e geraria senhas aleatórias (salvando o hash dela). Para logarem no sistema novo, os usuários precisariam usar o recurso "esqueci minha senha" para criarem senhas novas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm entendi vou tentar implementar senha aleatória salvando em hash.

eu ainda estou me batendo para fazer o select com o cookie e depois tenho que ver um problema tipo quando tento acessar o "index.php" ele antes não verificava se existia usuário logado agora ele faz isso mas não redireciona para o "index.html".

Mas um problema de cada vez quando eu conseguir extrair os dados que eu quero do banco de dados eu tento redirecionar.

muito obrigado Beraldo pelo auxilio


o erro do cookie que está aparecendo é:

 

Notice: Undefined index: nome in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\projects\testesistema\index.php on line 3

Notice: Undefined index: matricula in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\projects\testesistema\index.php on line 4

 

 

o codigo que eu to colocando é esse :

 

<?php

$nome_cookie = $_COOKIE['nome'];
$matricula_cookie = $_COOKIE['matricula'];
if(isset($nome_cookie && $matricula_cookie)) {
echo "Bem-Vindo, $nome_cookie , $matricula_cookie <br>";
} ?>
estou colocando esse código no arquivo "index.php"

Compartilhar este post


Link para o post
Compartilhar em outros sites

só pense nisto: se redirecionar para index.html, essa página não terá qualquer verificação de login. Ou seja, qualquer pessoa poderá digitar seusite.com/index.html e acessar essa página restrita.

 

Todas as páginas que são restritas precisam de uma verificação, não apenas a de login

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm entendi eu vou tentar fazer essa verificação com mais dados.

Beraldo veja se você pode me ajudar com esse código eu ja estou conseguindo fazer a consulta no banco de dados e exibir as informações que eu quero no caso "matricula", "nome".

Só que quando eu logo com outro usuário o sistema mostra as informações de todos os usuários que ja logaram sei que deve ser com o select que eu estou usando mas não consegui colocar para exibir apenas o do usuário logado

segue o codigo:

 

<?php
error_reporting(0);
$servidor = "127.0.0.1"; /*maquina a qual o banco de dados está*/
$usuario = "root"; /*usuario do banco de dados MySql*/
$senha = ""; /*senha do banco de dados MySql*/
$banco = "sistemadeponto"; /*seleciona o banco a ser usado*/
$conexao = mysql_connect('127.0.0.1','root',''); /*Conecta no bando de dados MySql*/
mysql_select_db('sistemadeponto'); /*seleciona o banco a ser usado*/
$res = mysql_query("select * from usuario"); /*Executa o comando SQL, no caso para pegar todos os usuarios do sistema e retorna o valor da consulta em uma variavel ($res) */
/*Enquanto houver dados na tabela para serem mostrados será executado tudo que esta dentro do while */
while($escrever=mysql_fetch_array($res)){
/*Escreve cada linha da tabela*/
echo "<tr><td>" . $escrever['nome'] . "</td><td>" . "</td><td><td><td><td>" . $escrever['matricula'] . "</td></td></td></td></tr>";
}/*Fim do while*/
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu script retorna todos os usuários, pois não há cláusula WHERE no seu SELECT. Você deve adicionar um WHERE, filtrando pelo ID do usuário (que está salvo no cookie)

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

mudei o meu codigo coloquei um WHERE mas não funciou ele ta um erro na linha do input.

Primeiro ele diz que o '<' não é esperado, depois diz o "text"...

ou seja eu não estou conseguindo imprimir as informações na tela

 

 

<?php
session_start();
$sql = "SELECT id, nome FROM usuarios WHERE login = '$login' AND senha = '$senha'";
$qry = mysql_query($sql);
if ( mysql_num_rows( $qry ) ) {
//usuário válido
$res = mysql_fetch_array( $qry );
$_SESSION['usuario']['id'] = $res['id'];
$_SESSION['usuario']['nome'] = $res['nome'];
}
<input type='"text" name="nome_completo" value="<?php echo $_SESSION['usuario']['nome']; ?>" />
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Habilite todas as exibições de erro como mostrado neste tópico. Isso exibirá qualquer erro que esteja sendo escondido

 

É possível que não esteja entrando no if. Dê um echo logo após ele.

Também insira isto logo após o mysql_fech_array:

 

print_r( $res );

 

veja qual é o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok vou habilitar todas as exibições de erro, atualizar os códigos para o "mysqli_" e colocar esse print e vê o resultado.


apareceram esses erros

 

 

Notice: Undefined variable: login in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\projects\testesistema\index.php on line 57

Notice: Undefined variable: senha in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\projects\testesistema\index.php on line 57

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\projects\testesistema\index.php on line 58

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\projects\testesistema\index.php on line 59

Compartilhar este post


Link para o post
Compartilhar em outros sites

excelente artigo Beraldo consegui resolver alguns erros, estou me batendo na linha do "input"

 

<br /><b>Notice</b>: Undefined index: usuario in <b>C:\Program Files\EasyPHP-DevServer-14.1VC11\data\localweb\projects\testesistema\index.php</b> on line <b>73</b><br />

 

estou em duvida com a declaração das variáveis não sei se estou fazendo correto segue o codigo

 

<?php

session_start();
$login = 'login';
$senha = 'senha';
$nome = 'nome';
$conexao = mysqli_connect('127.0.0.1','root','','sistemadeponto'); /*Conecta no bando de dados MySql*/
$sql = "SELECT id,nome,matricula FROM usuario WHERE login = '$login' AND senha = '$senha' "; /*Executa o comando SQL, no caso para pegar todos os usuarios do sistema e retorna o valor da consulta em uma variavel ($res) */
$qry = mysqli_query($conexao, $sql);
if ( mysqli_num_rows( $qry )){
$res=mysqli_fetch_array($qry);
$_SESSION['usuario']['id'] = $res['id'];
$_SESSION['usuario']['nome'] = $res['nome'];
$_SESSION['usuario']['matricula'] = $res['matricula'];
print_r( $res);
}
?>
<input type="text" name="nome" value="<?php echo $_SESSION['usuario']['nome']; ?>" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

É porque esse comando está no meio do código por que eu estou tentando colocar no meio da pagina onde tem "Dados do Funcionário"

a linha 73 é essa

 

<input type="text" name="nome" value="<?php echo $_SESSION['usuario']['nome']; ?>" />

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.