Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Mudando usuário no meio da sessão

06-11-2014 17:43

Olá!

Tenho um sistema (o web conhece bem rs), onde estou com mais um problema nele.

O usuário faz login, e aparece o nome dele no canto da tela no lado direito, de acordo com o o login e senha que ele colocar aparece o nome que esta cadastrado no banco dele, até aí td bem.

O que eu preciso e está dando erro, é na hora de exibir os dados do usuário.

Eu listo todos primeiro: http://prntscr.com/53otq4

Administrador é o nome do primeiro da lista, fiz login com ele então mostra o nome dele no canto direito superior.

Daí quando eu clico nele, lista todos os dados desse user: http://prntscr.com/53ouv0 (Neste ex. cliquei no user Rodrigo para listar os dados dele)

Aí mostra tudo certinho, mas o problema está, quando eu clico em voltar, olha o que acontece: http://prntscr.com/53ouv0

Ele muda o usuário que está conectado.

Pq será que acontece isso? apenas clicando em voltar?

Obrigado desde já!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Mudando usuário no meio da sessão

06-11-2014 19:05

Os 2 últimos links do post são o mesmo.

Quanto ao problema, pode ser algum desses problemas:

- Nome de variáveis repetindo;
- A session sendo recriada na página que visualiza os dados do usuário.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Mudando usuário no meio da sessão

06-11-2014 19:17

Não sei se tem session nao, ta mais pra variavel

Olha o terceiro link do post: http://prntscr.com/53q34i

Se puder da uma olhada no codigo da pagina relatorio_usuarios.php (que lista todos):

<?php // Incluindo arquivo de conexão/configuração require_once('config/conn.php'); // Instanciando novo objeto da classe Login $objLogin = new Login(); // Verificando se o usuário está logado, caso contrá será redirecionado para a página de login if (!$objLogin->verificar('index.html'))     // Finalizado o script, apenas para garantir que o usuário irá ver o conteúdo da página     exit; // Selecionando informações do usuário $query = mysql_query("SELECT * FROM usuario WHERE usuario_id = {$objLogin->getID()}"); $usuario = mysql_fetch_object($query);   // FUNÇÃO PUXA CLIENTE function PuxaCliente($cliente) { $base = mysql_query("SELECT id_cl, empresa_cl FROM cliente WHERE id_cl IN($cliente)"); while($campos=mysql_fetch_array($base)) {     echo'•';     echo " {$campos['empresa_cl']}<br />"; } }   // FUNÇÃO PUXA OBRA function PuxaObra($obra) { $base2 = mysql_query("SELECT id_ob, nome_ob FROM obras WHERE id_ob IN($obra)"); while($obras=mysql_fetch_array($base2)) {     echo'•';     echo " {$obras['nome_ob']}<br />"; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>     <head>     <link href="estilo.css" rel="stylesheet" type="text/css">                  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <title>FERRARI ENGENHARIA | NOVO CLIENTE</title>         <script type='text/javascript' src='js/jquery.js'></script>         <script type='text/javascript' src='js/jquery.form.js'></script>              </head>     <body>          <div id="corpo-bg">          <div id="tarja-topo">     <h1><span class="texto-preto-12">       <? $query2 = "select * from usuario"; $rs = mysql_query($query2); ?>     </span>RELATÓRIO DE USUÁRIOS</h1>          <div style="float:right; width:400px; margin-top:-35px;"><table width="90%" border="0" align="right" cellpadding="10" cellspacing="10">         <tr>           <td width="86%"><h3><img src="imgs/img-user.png" width="20" height="20">&nbsp;<strong> <?php echo $usuario->nome; ?> </strong>está conectado</h3></td>           <td width="14%" align="right"><a href="sair.php" class="sair">SAIR</a></td>         </tr>         <tr>           <td colspan="2" align="center">&nbsp;</td>         </tr>       </table>             </div>     </div>         <div id="conteudo-cadastro">      <table width="100%" border="0" cellspacing="10" cellpadding="0" class="texto-preto">         <tr>           <td height="18"><img src="imgs/spacer.png" width="147" height="8"></td>           <td><img src="imgs/spacer.png" width="430" height="8"></td>           <td><img src="imgs/spacer.png" width="177" height="8"></td>         </tr>         <tr>           <td width="27%" height="18"><strong>Nome do usuário:</strong></td>           <td width="66%"><strong>Empresa:</strong></td>           <td width="29%"><strong>Obra:</strong></td>         </tr>         <tr>           <td height="2" colspan="3"><hr>             <strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>             <?  while($campo = mysql_fetch_array($rs)){   ?>           </b></font></strong></td>         </tr>         <tr>           <td height="31">             <strong><a href="usuario.php?usuario_id=<?= $campo["usuario_id"] ?>" class="texto-preto">             <?= $campo["nome"] ?>             <?= $campo["sobrenome_us"] ?>             </a>           </strong></td>           <td height="31">           <?           $id_cl2 = $campo["usuario_id"];           ?>           <?          // CONSULTA BASE $exec = mysql_query("SELECT usuario_id, cliente_id FROM usuario WHERE usuario_id = $id_cl2;"); while($campos=mysql_fetch_array($exec)) { echo PuxaCliente($campos['cliente_id']); }            ?>           </td>                                 <td height="31">           <?           $id_ob2 = $obras["id_ob"];           ?>           <?          // CONSULTA BASE $exec2 = mysql_query("SELECT usuario_id, obra_id FROM usuario WHERE usuario_id = $id_cl2;"); while($obras=mysql_fetch_array($exec2)) { echo PuxaObra($obras['obra_id']); }            ?>           </td>         </tr>         <tr>           <td height="2" colspan="3"><hr></td>         </tr><?}?>         <tr>           <td height="14" colspan="3">&nbsp;</td>         </tr>         <tr>         <td colspan="3">         <a href="javascript:history.back(1);" class="bt-cadastro">Voltar</a>         </td>         </tr>       </table>     </div>          <div id="tarja-base">       <img src="imgs/base-cadastro.png" width="940" height="115"> </div><br> <br>          </div>     </body> </html>

E este é o código da página usuario.php (que mostra os dados do usuario clicado, passa via get): ex: http://engferrari.com.br/usuario.php?usuario_id=1

<?php // Incluindo arquivo de conexão/configuração require_once('config/conn.php'); // Instanciando novo objeto da classe Login $objLogin = new Login(); // Verificando se o usuário está logado, caso contrá será redirecionado para a página de login if (!$objLogin->verificar('index.html'))     // Finalizado o script, apenas para garantir que o usuário irá ver o conteúdo da página     exit; // Selecionando informações do usuário $query = mysql_query("SELECT * FROM usuario WHERE usuario_id = {$objLogin->getID()}"); $usuario = mysql_fetch_object($query);   // FUNÇÃO PUXA CLIENTE function PuxaCliente($cliente) { $base = mysql_query("SELECT id_cl, empresa_cl FROM cliente WHERE id_cl IN($cliente)"); while($campos=mysql_fetch_array($base)) {     echo'•';     echo " {$campos['empresa_cl']}<br />"; } }   // FUNÇÃO PUXA OBRA function PuxaObra($obra) { $base2 = mysql_query("SELECT id_ob, nome_ob FROM obras WHERE id_ob IN($obra)"); while($obras=mysql_fetch_array($base2)) {     echo'•';     echo " {$obras['nome_ob']}<br />"; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>     <head>     <link href="estilo.css" rel="stylesheet" type="text/css">                  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">         <title>FERRARI ENGENHARIA | RELATÓRIO DE USUÁRIOS</title>         <script type='text/javascript' src='js/jquery.js'></script>         <script type='text/javascript' src='js/jquery.form.js'></script>              </head>     <body>          <div id="corpo-bg">          <div id="tarja-topo">     <h1><span class="texto-preto-12">       <?       $usuario_id = $_GET['usuario_id']; $query = "select * from usuario where usuario_id = $usuario_id"; $rs = mysql_query($query); $campo = mysql_fetch_array($rs) ?>     </span>RELATÓRIO DE USUÁRIO</h1>          <div style="float:right; width:400px; margin-top:-35px;"><table width="90%" border="0" align="right" cellpadding="10" cellspacing="10">         <tr>           <td width="86%"><h3><img src="imgs/img-user.png" width="20" height="20">&nbsp;<strong> <?php echo $usuario->nome; ?> </strong>está conectado</h3></td>           <td width="14%" align="right"><a href="sair.php" class="sair">SAIR</a></td>         </tr>         <tr>           <td colspan="2" align="center">&nbsp;</td>         </tr>       </table>             </div>     </div>         <div id="conteudo-cadastro">      <table width="100%" border="0" cellspacing="10" cellpadding="0" class="texto-preto">         <tr>           <td width="17%" height="18"><strong>Nome do usuário:</strong></td>           <td width="83%"><strong>             <?= $campo["nome"] ?>             <?= $campo["sobrenome_us"] ?>          </strong></td>         </tr>         <tr>           <td height="14"><strong>Login:</strong></td>           <td height="14">             <?= $campo["login"] ?>           </td>         </tr>         <tr>           <td height="14"><strong>Senha:</strong></td>           <td height="14">             <?= $campo["senha"] ?>           </td>         </tr>         <tr>           <td height="14"><strong>Empresa:</strong></td>           <td height="14"><?           $id_cl2 = $campo["usuario_id"];           ?>           <?          // CONSULTA BASE $exec = mysql_query("SELECT usuario_id, cliente_id FROM usuario WHERE usuario_id = $id_cl2;"); while($campos=mysql_fetch_array($exec)) { echo PuxaCliente($campos['cliente_id']); }            ?></td>         </tr>         <tr>           <td height="14"><strong>Obra:</strong></td>           <td height="14">           <?           $id_ob2 = $obras["id_ob"];           ?>           <?          // CONSULTA BASE $exec2 = mysql_query("SELECT usuario_id, obra_id FROM usuario WHERE usuario_id = $id_cl2;"); while($obras=mysql_fetch_array($exec2)) { echo PuxaObra($obras['obra_id']); }            ?>           </td>         </tr>         <tr>           <td height="2" colspan="2"><hr></td>         </tr>         <tr>           <td height="14" colspan="2">&nbsp;</td>         </tr>         <tr>           <td height="22" colspan="2"><a href="javascript:history.back(1);" class="bt-cadastro">Voltar</a> <a href="editar_usuario.php?usuario_id=<?= $campo["usuario_id"] ?>" class="bt-cadastro">Editar</a></td>         </tr>       </table>     </div>          <div id="tarja-base">       <img src="imgs/base-cadastro.png" width="940" height="115"> </div><br> <br>          </div>     </body> </html>

As vezes vc bate o olho e ve o que esta errado, se puder claro por favor!

Obrigado!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Mudando usuário no meio da sessão

06-11-2014 19:33

Você usa <?php echo $usuario->nome; ?> para exibir o nome do usuário em ambas a página.
O que acho é que alguma parte da class está armazenando esse nome como sendo o do logado. Tem que verificar na class.

O que eu faço geralmente em um sistema de login, é criar duas SESSIONS, uma com o nome de usuário e outra com a senha. Isso quando o usuário loga corretamente.

Em cada documento a ser acessado, tem uma verificação para ver se aquele login e senha da SESSION podem realizar a consulta, e verifica também o nível de acesso do usuário.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Mudando usuário no meio da sessão

07-11-2014 11:25

Fala web, tem algum exemplo pra não dar esse conflito?

O que devo fazer?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Mudando usuário no meio da sessão

07-11-2014 11:35

A idéia que passei é igual a do documento.php desse link Sistema-de-login-multiplos-usuariossimples_15_363.html
Só que a verificação de login e senha é feita por uma consulta ao banco de dados, e não somente pela SESSION, se existe.

Quanto ao conflito, você tem que verificar se na class que tem é criada alguma SESSION para o usuário, ai recuperar essa SESSION na página dos dados.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Mudando usuário no meio da sessão

07-11-2014 11:40

eu testei com outro sistema de login, deu mesmo erro!

Como eu recupero essa session? ou como passo ela do login para a página de exibição?

Estou perdidinho nesse rs

Tks
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Mudando usuário no meio da sessão

07-11-2014 12:31

Onde a session é criada, tem o session_start() no topo.

A session deve ser nessa base:

$_SESSION['nome_da_session'] = "um valor aqui, geralmente o login";

Para exibir o valor salvo, como mostrado no exemplo acima, basta usar o session_start no documento que irá exibir a session, o onde for mostrar, usar:

<?php echo $_SESSION['nome_da_session']; ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Mudando usuário no meio da sessão

07-11-2014 12:43

Ele está passando o id do usuario no link, tipo pagina.php?usuario_id=8

Dai na pagina que entra e le isso, ele entende que o nome do usuario que tem que exibir é do usuario_id = 8

Se eu trabalhar com session sera que ele nao vai mais entender assim?

Olha o outro sistema de login que testei:

Form:

<form action='inc/autenticacao.rotinas.php' method="post">           <div class="loader" style="display: none;"><img src="image/loader.gif" alt="Carregando" /></div>             <table width="41%" border="0" align="center" cellpadding="10" cellspacing="10">               <tr>                 <td><div class="mensagem-erro"></div></td>               </tr>           <tr>             <td><h4>Usuário:</h4></td>           </tr>           <tr>             <td width="73%"><input name="usuario" type="text" class="campo" id="usuario" /></td>           </tr>           <tr>             <td><h4>Senha:</h4></td>           </tr>           <tr>             <td><input name="senha" type="password" class="campo" id="senha" /></td>           </tr>           <tr>             <td><h4>Esqueceu sua senha?</h4></td>           </tr>           <tr>             <td><input type='hidden' name="enviado" value="posted" />              <input name="emtrar" type="submit" class="bt" id="emtrar" value="Entrar" /></td>           </tr>           <tr>             <td>&nbsp;</td>           </tr>           </table>                           </form>

autenticacao.rotinas.php

<? session_start(); include ("../config/conn.php"); $cliente_username = $_POST["usuario"]; $cliente_password = $_POST["senha"]; $enviado          = $_POST["enviado"]; if ($enviado == "posted"){          if (!isset($cliente_username) or !isset($cliente_password)) { echo "Erro!";    exit; }   if (empty($cliente_username) or empty($cliente_password)) { echo "Dados inválidos!"; exit; } $query = "select * from usuario where login = '$cliente_username' and senha = '$cliente_password'"; $result = mysql_query($query); $number = mysql_num_rows($result); if ($number==0) { ?><script>alert('Autorização inexistente/Senha inválida ou expirada.');history.back();</script> <?     exit; } else {     $_SESSION['usuario_id'] = mysql_result($result,0,'usuario_id');     $_SESSION['usuario_nome'] = mysql_result($result,0,'nome');     ?><script>document.location = '../painel.php'</script><? } mysql_close($conexao);     }  ?>

painel.php (pagina que exibe dados se o usuario logou corretamente:

<? session_start(); if (empty($_SESSION['usuario_id'])){  echo "Acesso negado!";  exit; }else{ include('config/conn.php'); header('Content-Type: text/html; charset=utf-8'); mysql_set_charset('utf8'); $usuario_id   = $_SESSION['usuario_id']; $usuario_nome = $_SESSION['usuario_nome']; } ?> <?  // PEGA OS DADOS DO USUÁRIO $query = "SELECT * FROM usuario where usuario_id = '$usuario_id'";     $resultado = mysql_query ($query);     $campo = mysql_fetch_array ($resultado);        $usuario_nome = $campo ['nome'];   ?>

Da o mesmo erro, eu estou achando que não é a session que vai resolver, ou se for ela, não estou passando direito né?

parece ser aquele caso de variavel duplicada que vc falou, onde esta puxando o id do usuario esta repetido, não sei.

Sera que com a session que vc falou vai dar certo?script
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Mudando usuário no meio da sessão

07-11-2014 13:17

Se já criou a session em autenticacao.rotinas.php, não precisa criar novamente em painel.php

Enquanto não destruir a session, basta ter o session_start no topo do documento para exibir o valor dela.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Mudando usuário no meio da sessão

07-11-2014 13:48

seria só isso no painel então?

<? session_start(); if (empty($_SESSION['usuario_id'])){  echo "Acesso negado!";  exit; }else{ include('config/conn.php'); header('Content-Type: text/html; charset=utf-8'); mysql_set_charset('utf8'); } ?>

Será que é isso que ta duplicando?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Mudando usuário no meio da sessão

07-11-2014 14:39

Com base que você salvou o usuário em autenticacao.rotinas.php

$_SESSION['usuario_id'] = mysql_result($result,0,'usuario_id'); 

Dentro desse bloco

else{ include('config/conn.php'); header('Content-Type: text/html; charset=utf-8'); mysql_set_charset('utf8'); } 

Deve ter a chamada da session

echo $_SESSION['usuario_id']; 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 268
Sexo: Masculino

Mudando usuário no meio da sessão

07-11-2014 15:55

ACHEI O ERRO, mas sua ajuda me fez enxergar rs

no autenticacao_rotinas estava assim:

$_SESSION['usuario_id'] = mysql_result($result,0,'usuario_id'); 

o nome no meu banco é usuário_id, e a session que estava criando, é usuario_id, dai ele repetia.

Ai fiz o teste e mudei pra isto:

$_SESSION['usuario_id2'] = mysql_result($result,0,'usuario_id'); 

Com o 2 na frente ele mudou a session gravada, dai agora nao troca mais :)

Muuuuito obrigado mais uma vez, espero que sirva de ajuda pra mais alguem rsrs

Valeu e um abraço
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Mudando usuário no meio da sessão

07-11-2014 16:03

:up:
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado