Ir para conteúdo

POWERED BY:

Arquivado

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

Kakaroto1309

Sessions

Recommended Posts

Gente preciso de ajuda ...

Já li vários lugares mais não to entendendo, ou melhor, conseguindo o que quero fazer.

 

Tenho um formulário de login

 

acessar.php

<table width="760" border="0" cellspacing="0" cellpadding="0">
 <tr bgcolor="#CCFF00"> 
   <td height="20" align="center"><font color="#000000" size="2" face="Verdana"><strong> 
     Área Restrita</strong></font></td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#FFFFFF"></td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#FFFFFF"> </td>
 </tr>
 <tr>
   <td height="20" bgcolor="#FFFFFF"><form name="form" method="post" action="logar.php?acao=1">
       <table width="33%" border="0" align="center" cellpadding="0" cellspacing="0">
         <tr> 
           <td width="31%" height="25"><font size="2" face="Verdana">Usuário:</font></td>
           <td width="69%" height="25"> 
             <input name="d_usuario" type="text" id="d_usuario">
           </td>
         </tr>
         <tr> 
           <td width="31%" height="25"><font size="2" face="Verdana">Senha:</font></td>
           <td width="69%" height="25"> 
             <input name="d_senha" type="password" id="d_senha" size="14" maxlength="12"></td>
         </tr>
         <tr align="center"> 
           <td height="40" colspan="2"> 
             <input name="submit" type="submit" value="Entrar"> 
             <input type="reset" name="Submit" value="Limpar">
           </td>
         </tr>
       </table>
       </form>
   </td>
 </tr>
</table>

 

Ao clicar em enviar irá passar pra página logar.php a ação 1 que vai verificar no banco e talz

 

logar.php

<?
session_start(); 

if($_GET['acao'] == "usuario") {

   include "conn.php";
   $d_usuario = $_POST['d_usuario'];
   $q_usuario = mysql_query("SELECT * FROM tb_usuarios WHERE usuario='$d_usuario'");

   if(mysql_num_rows($q_usuario) == 1) {

       $query = mysql_query("SELECT * FROM tb_usuarios WHERE usuario='$d_usuario'");
       $dados = mysql_fetch_array($query);
       if($_POST['d_senha'] == $dados['senha']) {
           session_register("d_usuario");
           header("Location: ../perfil.php");
           exit;
       }
	else
	{
           header("Location: erro.php?login=falhou&causa=".urlencode('Senha Errada'));
           exit;
       }
   }
else
{	
       header("Location: erro.php?login=falhou&causa=".urlencode('Usuário Inválido'));
       exit;
   }
}

//Verifica se o login foi feito
if(session_is_registered("d_usuario") == false) {
   header("Location: index.php");
}
?>

 

Na página perfil quero pegar os dados da BD pra jogar na tela, Bem vindo NOME e talz e não estou conseguindo. tento fazer assim e não da certo.

 

perfil.php

<?
session_start(); 
require ("logar.php");
include "conexao.php";
$selecionar = mysql_query("SELECT nome FROM tb_usuarios WHERE usuario=".$_SESSION["usuario"]."");

//Listar Dados
while($sel = mysql_fetch_array($selecionar))
{
$nome = $sel['nome'];
}

?>

 

Alguem sabe como uso a variavel pelo sessions. Já tentei de tudo ...

 

Puts ngm sabe!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para tu armazenar algum valor em SESSION tu tem de fazer assim:

 

$_SESSION["nomedasession"] = $varivelcomovalorquevocedeseja;

 

e para chamar é só :

session_start(); echo $_SESSION["nomedasession"];

Compartilhar este post


Link para o post
Compartilhar em outros sites

tua ação ta errada ..

olhe

 

accessar.php

 

   <td height="20" bgcolor="#FFFFFF"><form name="form" method="post" action="logar.php?acao=1">

 

ja no codigo .. ta executando se pegar a ação igual a usuario não 1

 

 

if($_GET['acao'] == "usuario") {

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

No logar.php coloquei

 

$var=$_POST['d_usuario'];
$_SESSION['usuario']=$var;

 

e no perfil.php coloquei

 

<? echo "Seja bem-vindo, ".$_SESSION['usuario']."</h1>"; ?>

 

Não funcionou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

if($_GET['acao'] == 1) {

   include "conn.php";
   $d_usuario = $_POST['d_usuario'];
   $q_usuario = mysql_query("SELECT * FROM tb_usuarios WHERE usuario='$d_usuario'");

   if(mysql_num_rows($q_usuario) == 1) {

       $query = mysql_query("SELECT * FROM tb_usuarios WHERE usuario='$d_usuario'");
       $dados = mysql_fetch_array($query);
       if($_POST['d_senha'] == $dados['senha']) {
           session_start();
           $_SESSION["d_usuario"] = $_POST["d_usuario"];
           header("Location: ../perfil.php");
           exit;
       }
               else
               {
           header("Location: erro.php?login=falhou&causa=".urlencode('Senha Errada'));
           exit;
       }
   }
       else
       {       
       header("Location: erro.php?login=falhou&causa=".urlencode('Usuário Inválido'));
       exit;
   }
}

//Verifica se o login foi feito
if(session_is_registered("d_usuario") == false) {
   header("Location: index.php");
}

 

 

<? echo "Seja bem-vindo, ".$_SESSION['usuario']."</h1>"; ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim:

 

<?
[b]session_start();
$_SESSION["d_usuario"] = $_POST["d_usuario"];
ini_set('display_errors', true);[/b]

if($_GET['acao'] == "usuario") {

//Incluir arquivo de Conexão com BD
include "../../conexao/conexao.php";

//Pega dados digitados 
   $d_usuario = $_POST['d_usuario'];
   $q_usuario = mysql_query("SELECT * FROM tb_usuarios WHERE usuario='$d_usuario'");

   if(mysql_num_rows($q_usuario) == 1) {

       $query = mysql_query("SELECT * FROM tb_usuarios WHERE usuario='$d_usuario'");
       $dados = mysql_fetch_array($query);
       if($_POST['d_senha'] == $dados['senha']) {
           session_register("d_usuario");
		header("Location: ../perfil.php");
           exit;
       }
	else
	{
           header("Location: erro.php?login=falhou&causa=".urlencode('Senha Errada'));
           exit;
       }
   }
else
{	
       header("Location: erro.php?login=falhou&causa=".urlencode('Usuário Inválido'));
       exit;
   }
}

//Verifica se o login foi feito
if(session_is_registered("d_usuario") == false) {
   header("Location: index.php");
}
?>

 

Na página que quero importar a variável coloquei:

 


<?
session_start(); 
require ("conexao/logar.php");
include "../conexao/conexao.php";
?>
<html>
<head>
<title>Prfil</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
 <tr>
   <td height="20"> </td>
 </tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="5" bgcolor="#CCFF00">
 <tr bgcolor="#FFFFFF"> 
   <td width="17%" rowspan="8" align="center"><img src="fotos/semfoto.jpg" width="122" height="142"></td>
    <td width="83%" height="20" bgcolor="#CCFF00"><font size="4" face="Verdana"><strong><? echo "Seja bem-vindo, ".$_SESSION['usuario']."</h1>"; ?></strong></font></td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#CCFF00"> </td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#CCFF00"><font size="2" face="Verdana">Cadastro: 
     DATA as HORA.</font></td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#CCFF00"><font size="2" face="Verdana">Último 
     Login: DATA as HORA. </font></td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#CCFF00"><strong></strong></td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#CCFF00"><strong><font size="2" face="Verdana">• 
     <Editar Meus Dados</a></font></strong></td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#CCFF00"><font size="2" face="Verdana"><strong><font size="2" face="Verdana">• 
     Excluir meu Perfil</font></strong></font></td>
 </tr>
 <tr> 
   <td height="20" bgcolor="#CCFF00"><font size="2" face="Verdana"> </font></td>
 </tr>
</table>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Segue abaixo o código, testei e funcionou sem problemas...

Somente ressaltando que você precisa iniciar a pagina "perfi.php" com session_start

 

Somente uma dica, armazene suas senhas codificadas, pode ser com md5(), isso ajuda na segurança!

 

<?php 

session_start();

if($_GET['acao'] == 1) {

   include "conn.php";
   $d_usuario = $_POST['d_usuario'];
   $q_usuario = mysql_query("SELECT * FROM tb_usuarios WHERE usuario='$d_usuario'");

   if(mysql_num_rows($q_usuario) > 0) {

       $dados = mysql_fetch_array($q_usuario);

       if($_POST['d_senha'] == $dados['senha']) {
           $_SESSION["d_usuario"] = $d_usuario;
           header("Location: perfil.php");
           exit;
       } else {
           header("Location: erro.php?login=falhou&causa=".urlencode('Senha Errada'));
           exit;
       }
   } else {       
       header("Location: erro.php?login=falhou&causa=".urlencode('Usuário Inválido'));
       exit;
   }
}

//Verifica se o login foi feito
if(!empty($_SESSION["d_usuario"])) {
   header("Location: index.php");
}

?>

 

abraço

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

A página fica em branco? coloque alguns echo no codigo, por ex. na pagina que você recebe os valores coloca um var_dump($acao) e veja a acao que esta chegando, dentro do if coloque um echo mysql_num_rows; e veja também a qtd de registro que está retornando e nesse trecho faça assim.

 

//Verifica se o login foi feito
if(!isset($_SESSION["d_usuario"])) {
   //header("Location: index.php");
   echo "NAO LOGADO";
}
else
{
 echo "Valor da session: ".$_SESSION["d_usuario"];
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, aqui está funcionando normalmente.

Para testar eu havia modificado uma linha e acabei deixando. O seu arquivo perfil.php está uma pasta abaixo, portanto altere a linha abaixo para:

 

header("Location: ../perfil.php");

 

Tem que funcionar...

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.