Jump to content
RafsF

Armazenando vários dados na sessão

Recommended Posts

Boa noite.

 

Sou leigo em PHP e atualmente tenho um projeto apenas para fins didáticos.

 

Estou com um sistema de login, e gostaria de armazenar várias informações dentro de uma session. Porém, só estou conseguindo armazenar o email e senha (que é digitado pelo usuário no formulário de login).

 

O formulário de login (index.php) está assim:

<div class="modal-body">
	<form name="loginform" method="post" action="userauthentication.php" class="form-login">
		<div class="input-group">
        	<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
        	<input type="email" name="email" id="inputEmail" class="form-control" placeholder="Exemplo: usuario@hotmail.com" required autofocus> 
        </div>
            
        <div class="input-group">
        	<span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
        	<input type="password" name="senha" id="inputPassword" class="form-control" placeholder="••••••••••••••••" required>
        </div>
</div>

 

O arquivo de autenticação de usuário (userauthentication.php) está assim:

<?php
$email=$_POST['email'];
$senha=$_POST['senha'];
$sql = mysql_query ("SELECT * FROM usuarios WHERE email = '$email' and senha = '$senha'") or die(mysql_error());
$row = mysql_num_rows($sql);
if ($row > 0) {
	session_start();

	$_SESSION['email']=$_POST['email'];
	$_SESSION['senha']=$_POST['senha'];
	


	echo "<script>alert('Você foi autenticado com sucesso. Redirecionando...');</script>";
	echo "<script>loginsuccessfully()</script>"; //Script para redirecionamento de páginas
}
    else {
    	echo "<script>alert('Usuário ou senha incorretos. Tente novamente.');</script>";
    	echo "<script>loginfailed()</script>"; //Script para redirecionamento de páginas
    }
?>

 

Eu gostaria de armazenar todos os dados (nome, endereço, data nascimento, etc) do usuário quando ele logasse com seu login e senha, e depois fazer uma consulta com SESSION, exemplo:

.$_SESSION['data_nasc'].

 

Atualmente eu consigo fazer essa consulta como citada acima somente com o EMAIL e SENHA, que são os campos que o usuário completa no formulário de login.

 

Então, na verdade, a session só está armazenando os campos que o usuário digita no login. 

 

E como eu disse, eu gostaria de consultar todos os dados, e não somente o que o usuário digita no formulário de login.

 

Eu dei uma olhada neste tópico: https://forum.imasters.com.br/topic/562416-resolvido-mostrar-mais-de-um-dado-do-usuário-logado-php/ porém não consegui resolver.

 

Share this post


Link to post
Share on other sites

Olá, eu não sei realmente qual a duvida mas na minha seria somente colocar o resto do campo na autenticação, pois la você colocou semente o email e senha, colocque o que quer junto com os outros campos despois da session_star

 

  • Confuso 1

Share this post


Link to post
Share on other sites
3 minutos atrás, lucianfpaula disse:

Olá, eu não sei realmente qual a duvida mas na minha seria somente colocar o resto do campo na autenticação, pois la você colocou semente o email e senha, colocque o que quer junto com os outros campos despois da session_star

 

 

Não adianta só adicionar o resto dos campos (nome, cpf, etc) ali na autenticação pois a sessão está guardando o que o usuário digita no input do login. Caso eu quisesse gravar mais dados, eu teria que criar mais inputs, exemplo:

 

EMAIL:_________

SENHA:_________

CPF:___________

ENDEREÇO:________

 

Se tivesse esses 4 inputs pro usuário preencher na página de login, aí sim eu conseguiria "só adicionar" os dados na autenticação.

Share this post


Link to post
Share on other sites

você ta chamando seu arquivo de autenticação tipo

require_once 'autenticacao.php';

 

se assim estiver, dentro da autenticação coloque as variaveis.

    $usuario = $_SESSION["usuario"];
    $senha  = $_SESSION["senha"];

   $endereco  = $_SESSION["endereco"];

  etc....

 

e na outra pagina chame as variveis em vez de chamar as session direto.
    
    

Share this post


Link to post
Share on other sites

Amigo, se você esta verificando se existe um usuario com este email e login, apartir que ele encontre alguem, você pode trazer os dados do mesmo, vou da um exemplo: 

<?php
$email=$_POST['email'];
$senha=$_POST['senha'];
$sql = mysql_query ("SELECT * FROM usuarios WHERE email = '$email' and senha = '$senha'") or die(mysql_error());
$row = mysql_num_rows($sql);
if ($row > 0) {
  		session_start();
  		//Pegando os dados do usuario e jogando nas sessões
  		$row  					 =  mysqli_fetch_assoc($sql);
        $_SESSION['id'] 		 = $row['id'];
  		$_SESSION['data_nac'] 	 = $row['data_nac'];
  		$_SESSION['nome']  		 = $row['nome'];		
		$_SESSION['email']		 = $row['email'];
		$_SESSION['senha']		 = $row['senha'];
	


	echo "<script>alert('Você foi autenticado com sucesso. Redirecionando...');</script>";
	echo "<script>loginsuccessfully()</script>"; //Script para redirecionamento de páginas
}
    else {
    	echo "<script>alert('Usuário ou senha incorretos. Tente novamente.');</script>";
    	echo "<script>loginfailed()</script>"; //Script para redirecionamento de páginas
    }
?>

 

  • +1 1

Share this post


Link to post
Share on other sites

Não entendi a necessidade de armazenar todos esses dados em sessão, se elas estão ali no db para quando e onde quiser.

 

A resposta acima faz exatamente o que você quer.. Entretanto, como você mencionou 'fins didáticos' na sua pergunta, devo dizer ... esse código está obsoleto.. dá uma pesquisada em mysqli e pdo, pois não tem sentido aprender errado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Pellegrini3834
      Ola galera do IMasters!!!!!!
       
      Estou com uma duvida eu tenho um CRUD em php MVC e queria saber em que camada fica as mensagens depois de uma realização de um evento por exemplo:
      Cadastro de Pessoa, depois de cadastrada quero que ele emita uma mensagem dizendo que a "PESSOA FOI CADASTRADA COM SUCESSO!!!!" e eu queria saber  em que parte ela fica se é no Controle ou na View porque sabemos que no modelo fica a parte referente a manipulação de dados.
      Obrigado.
    • By Henrique Augusto Rohloff
      Olá! Sou iniciante e estou treinando para configurar uma página de buscas de produtos em um banco de dados.
      Os produtos já estão sendo encontrados quando a palavra bate com os itens do banco. A conexão com o banco de dados está funcionando corretamente. Porém, quando nada é encontrado, queria que aparecesse uma mensagem "Nenhum resultado, tente novamente." Já tentei com  else de tudo que é jeito mas não aparece corretamente... Qual é o jeito certo?
       
      Segue o código:
       
       
    • By maruoppolo
      Olá, tenho 2 tabelas:
       
      tb_dados: ID - MUSICA
       
      tb_votos: ID - VOTO - RADIO - MUSICA
       
      Preciso fazer uma query que traga as musicas da tb_dados porém ordenando pelo número de votos que ela teve na tb_votos.
       
      Então assim, existem 2 tipos de voto 1 = like e 2 = dislike, cada ver que um usuário vota eu pego qual radio que ele esta ouvindo e salvo no campo radio, o id da musica na tb_dados e salvo no campo musica da tb_votos e coloco o número 1 para like e 2 para dislike no campo voto.
       
      A query precisa contar quantos likes teve na tv_votos filtrando por radio e mostrando os resultados em ordem decrescente as musicas com mais likes.
       
      A ideia é trazer as 10 musicas com mais like de cada radio
       
      Alguma ideia de como fazer?? Estou enroscado nisso a dias.
    • By Chester1
      oi, eu to tentando mexer com servidores agora no PHP e esta dando um erro muito estranho que quando eu procuro em um programa que acha erros de sintaxe ele me diz que o erro esta no </HTML>    se alguem puder me dizer qual foi o erro que eu cometi eu agradeceria
       

       
      <HTML> <HEAD><TITLE>incluindo no banco de dados</TITLE></HEAD> <body> <BODY bgcolor="#d0d0d0"> <center> <h3>Lanchonete coma bem (voltada para o internauta)</h3> <h1>24horas</h1> <?php $login_digitado=$_POST['login']; $senha=$_POST['senha']; $nome=$_POST['nome']; $email=$_POST['email']; $telefone=$_POST['telefone']; $celular=$_POST['celular']; $endereco=$_POST['endereco']; $complemento=$_POST['complemento']; if ($login_digitado == "" || $senha == "" || $nome =="" || $email == "" || $telefone == "" || $endereco == "" || $complemento == "") { echo "existem(m) campos(s) de preenchimento obrigatorio em branco,<BR> infelizmente tera que voltar para preenche-lo(s)."; echo "<BR><a href=\"cadastro.php\">clique aqui para tentar novamente</a>"; } else { { $link=mysql_connect("localhost", "root", "") or die ("<h1>nao foi possivel conectar !!!</h1> ".mysql_error());  
      obs :estou trabalhando com formularios e servidores
         
         
         
         
      ?>
      </BODY>
      </HTML>
    • By DavidPin94
      Boa tarde, estou tentando criar uma validação para saber se o usuário já está cadastrado no meu banco de dados para meu sistema ficar mais organizado, porém quando realizo o teste cadastrando um usuário já cadastrado, o cadastro ocorre sendo que não era para ocorrer
      <?php require_once("conexao.php");?> <?php if (isset($_POST['usuario'])) { $nome = utf8_decode($_POST['usuario']); $senha = utf8_decode($_POST['senha']); $inserir = "INSERT INTO cadastro "; $inserir .= "(usuario, senha) "; $inserir .= "VALUES "; $inserir .= "('$nome', '$senha')"; $query = "SELECT usuario FROM cadastro WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); $query = "SELECT usuario FROM clientes WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); if (mysqli_num_rows($consulta) < 1) { $operacao_inserir = mysqli_query($conecta, $inserir); if (! $operacao_inserir) { die("Erro no banco"); }else header("location: login.php"); }else{ die("Usuário existente!"); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Cadastrar novo usuário</title> <link rel="stylesheet" type="text/css" href="estilo.css"> </head> <body> <nav> <ul> <li><a href="inicial.php">PÁGINA INICIAL</a></li> <li><a href="quem_somos.php">QUEM SOMOS</a></li> </ul> </nav> <div id="cadastro"> <form method="post" action="cadastro.php"> <label>Digite seu nome de usuário</label> <input type="text" name="usuario" placeholder="Ex: Usuario123" required size="50" minlength="5" maxlength="20" autofocus><br> <label>Digite sua senha</label> <input type="password" name="senha" placeholder="Deve conter mais de 5 caracteres" required size="50" minlength="5" maxlength="20" autofocus><br> <input type="submit" value="Cadastrar" id="enviar" name="enviar"> </form> </div> </body> </html> ,  alguém poderia me ajudar?  Meu código:
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.