Ir para conteúdo
Fórum Script Brasil
  • 0

Carregando nivel em session


Vinny789

Pergunta

Paz galera, blza?

To necessitando de uma coisinha, espero poder contar com ajuda de vocês... to perdendo os neuronios por isso já rs

Tenho um sistema de cadastro de usuários, com base em um de login, para usuários de loja de catalogo.

E seguinte, estou realizando o login e senha, ok, funcionando perfeitamente, só queria que no login e senha ele carregasse

por session o nivel do usuário "no caso 0,1 ou 2" o que atualmente fiz e não deu certo.

O que atualmente vejo é que ele carrega somente na session o email e a senha, no caso,

já fiz em post e tudo mais e nada deu certo, como resgato ele do banco de dados e coloco na session?

Vou postar para vocês verem o codigo original, qual não fiz nenhuma alteração.

LOGIN.PHP

<?php

$erro = "";

if(getenv("REQUEST_METHOD") == "POST") {

    $email  = $_POST["Email"];
    $senha = $_POST["Senha"];

    if ( get_magic_quotes_gpc() ) {
        $email  = stripslashes($_POST["Email"]);
        $senha = stripslashes($_POST["Senha"]);
    }
    $email  = mysql_escape_string($email);
    $senha = mysql_escape_string($senha);
    
    
    $chave = md5( md5(strtolower(trim($email))) . md5(strtolower(trim($senha))) );    
    $senha = md5($senha);
    //coloque seus dados de conexao
    mysql_connect("localhost", "newcampi_user", "2010");
    mysql_select_db("newcampi_banco");
    
    $sql   = "SELECT COUNT(*) AS total FROM tabela_usuarios WHERE email = '%s' AND senha = '%s' and chave = '$chave' and nivel_acesso > 0";        
    
    $re    = mysql_query(sprintf($sql, $email, $senha));
    $total = mysql_result($re, 0, "total");
    mysql_close();
    
    if($total == 1) {
        $dados = array();
        $dados["email"]     = ucfirst(strtolower($email));
        $dados["logado"]   = true;
        session_start();
        $_SESSION["dados"] = $dados;
        header("Location: index.php?id=principal");
    } else {
        $erro  = "Usuario ou senha invalido";
        $erro .= "<script type=\"text/javascript\">document.getElementById(\"erro\").className = 'visivel';</script>";
    }
}

?>
<html>
<head>
<title>LOGIN</title>
</head>
<body bgcolor="#E6E6E6" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form id="formulario" name="formulario" action="index.php?id=login" method="post" >
<table align="center" border="0" cellpadding="0" cellspacing="0" width="280">
<tr>
<td width="70" height="35">
<p style="margin-right:10; margin-left:10;"><font face="Verdana" color="#003399"><span style="font-size:9pt;"><b>Email:</b></span></font></p>
</td>
<td width="180" height="35">
<p align="left"><input type="text" name="Email" class="todoform" size="25"></p>
</td>
</tr>
<tr>
<td width="70" height="35">
<p style="margin-right:10; margin-left:10;"><font face="Verdana" color="#003399"><span style="font-size:9pt;"><b>Senha:</b></span></font></p>
</td>
<td width="180" height="35">
<p align="left"><input type="password" name="Senha" class="todoform" size="20"></p>
</td>
</tr>
</table>
</body>
</html>
PRINCIPAL.PHP
<?php
include "protecao.php";
$dados = $_SESSION["dados"];
$emailverifica  = $dados['email'];
?>
<?
echo "<h3>Bem-Vindo, $emailverifica</h3>"; // AQUI ELE MOSTRA O EMAIL VERIFICADOR
?>
PROTEÇÃO.PHP
<?php
session_start();
if(!isset($_SESSION["dados"])) {
    header("Location: index.php?id=login");
}
?>

Desde já agradeço a todos.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Paz galera, blza?

To necessitando de uma coisinha, espero poder contar com ajuda de vocês... to perdendo os neuronios por isso já rs

Tenho um sistema de cadastro de usuários, com base em um de login, para usuários de loja de catalogo.

E seguinte, estou realizando o login e senha, ok, funcionando perfeitamente, só queria que no login e senha ele carregasse

por session o nivel do usuário "no caso 0,1 ou 2" o que atualmente fiz e não deu certo.

O que atualmente vejo é que ele carrega somente na session o email e a senha, no caso,

já fiz em post e tudo mais e nada deu certo, como resgato ele do banco de dados e coloco na session?

Vou postar para vocês verem o codigo original, qual não fiz nenhuma alteração.

LOGIN.PHP

<?php

$erro = "";

if(getenv("REQUEST_METHOD") == "POST") {

    $email  = $_POST["Email"];
    $senha = $_POST["Senha"];

    if ( get_magic_quotes_gpc() ) {
        $email  = stripslashes($_POST["Email"]);
        $senha = stripslashes($_POST["Senha"]);
    }
    $email  = mysql_escape_string($email);
    $senha = mysql_escape_string($senha);
    
    
    $chave = md5( md5(strtolower(trim($email))) . md5(strtolower(trim($senha))) );    
    $senha = md5($senha);
    //coloque seus dados de conexao
    mysql_connect("localhost", "newcampi_user", "2010");
    mysql_select_db("newcampi_banco");
    
    $sql   = "SELECT COUNT(*) AS total FROM tabela_usuarios WHERE email = '%s' AND senha = '%s' and chave = '$chave' and nivel_acesso > 0";        
    
    $re    = mysql_query(sprintf($sql, $email, $senha));
    $total = mysql_result($re, 0, "total");
    mysql_close();
    
    if($total == 1) {
        $dados = array();
        $dados["email"]     = ucfirst(strtolower($email));
        $dados["logado"]   = true;
        session_start();
        $_SESSION["dados"] = $dados;
        header("Location: index.php?id=principal");
    } else {
        $erro  = "Usuario ou senha invalido";
        $erro .= "&lt;script type=\"text/javascript\">document.getElementById(\"erro\").className = 'visivel';</script>";
    }
}

?>
<html>
<head>
<title>LOGIN</title>
</head>
<body bgcolor="#E6E6E6" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form id="formulario" name="formulario" action="index.php?id=login" method="post" >
<table align="center" border="0" cellpadding="0" cellspacing="0" width="280">
<tr>
<td width="70" height="35">
<p style="margin-right:10; margin-left:10;"><font face="Verdana" color="#003399"><span style="font-size:9pt;"><b>Email:</b></span></font></p>
</td>
<td width="180" height="35">
<p align="left"><input type="text" name="Email" class="todoform" size="25"></p>
</td>
</tr>
<tr>
<td width="70" height="35">
<p style="margin-right:10; margin-left:10;"><font face="Verdana" color="#003399"><span style="font-size:9pt;"><b>Senha:</b></span></font></p>
</td>
<td width="180" height="35">
<p align="left"><input type="password" name="Senha" class="todoform" size="20"></p>
</td>
</tr>
</table>
</body>
</html>
PRINCIPAL.PHP
<?php
include "protecao.php";
$dados = $_SESSION["dados"];
$emailverifica  = $dados['email'];
?>
<?
echo "<h3>Bem-Vindo, $emailverifica</h3>"; // AQUI ELE MOSTRA O EMAIL VERIFICADOR
?>
PROTEÇÃO.PHP
<?php
session_start();
if(!isset($_SESSION["dados"])) {
    header("Location: index.php?id=login");
}
?>
Desde já agradeço a todos.
Na verdade não sou muito fã de colocar senha do usuario na sessão não, fica muito vulneravél... vou postar como eu fiz o meu : ok
// DATABASE é uma contante;
// TABELAUSUARIO é uma constante;


$sql= "SELECT * FROM ".DATABASE."".TABELAUSUARIO." where 1 AND  txtLogin = '".$_POST['txtLogin']."' AND txtSenha = md5('".$_POST['txtSenha']."')";
$qry = mysql_query($sql,$conn);
$retorno = mysql_fetch_object($qry);

if($retorno){

 $_SESSION['txtLogin'] = $retorno->txtLogin;
/// caso tivesse nivel colocaria abaixo:
 $_SSSION['nivel'] = $retorno->nivel;

 /// restante do codigo aki

}

Como já disse não coloco senha em sessao;

ai você faz a verificação por $_SESSION['txtLogin'] e $_SESSION['nivel'];

É isso ai espero ter ajudado;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...