Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Não estou conseguindo entender o que está errado, o que estou deixando passar...
estou fazendo um sistema com níveis de acesso diferentes para os usuários onde cada nível terá conteúdo específico, por exemplo:
Quando um usuário de nível 1 acessa o site e faz o seu login a página de edição de cadastro abre corretamente com todos os dados deste usuário; quando um usuário de nível 0 faz o login a página de edição de cadastro não traz as informações do cadastro.
*obs: estou utilizando o mesmo usuário para fazer os testes, só altero manualmente no bd o nível de acesso, ou seja, o usuário tem os seus dados cadastrados :)
O link para a página de cadastro é exatamente o mesmo, a página de edição de cadastro é exatamente a mesma (não é cópia!!! é a mesma página).. a única diferença mesmo é o nível de acesso. .. e o mais 'legal' que este problema só acontece online.. em localhost tanto o nível 0 quanto o nível 1 mostram os dados do usuário..
alguém tem uma luz??
Eu gravo sim o nível de acesso em sessão Will..
if (isset($_SESSION['logado']))
{
if ($_SESSION['logado'])
$cod = $_SESSION['cod'];
$nome = $_SESSION['nome'];
$nome = $_SESSION['nome'];
$nometemp = explode(" ", $nome);
$primeironome = $nometemp[0];
$nivel_acesso = $_SESSION['nivel_acesso'];
{
echo "<h3 align='center'>Bem Vindo $primeironome</h3>";
if ($nivel_acesso == '0')
{
include "includes/menu_basico.php";
}
elseif ($nivel_acesso == '1')
{
include "inter1/menuinter1.php";
}<?
if (!isset($_SESSION)){session_start();}
ob_start();
?>Nesse $_SESSION['nivel_acesso'] você utiliza banco de dados para pegar o nivel dele?
sim fetish, este é um dos campos do bd
Tenta fazer o seguinte então:
<?php
$sql = mysql_query ("SELECT nome,nivel FROM tabela WHERE nome = '$nome' AND nivel = nivel");
$assoc = mysql_fetch_assoc ($sql);
if ($assoc['nivel'] == 0) echo 'Normal';
else if ($assoc['nivel'] == 1) echo 'Intermediario';
?>Pelo amor de deus, não grava o nivel de acesso em um cookie.
A coisa mais facil que existe hoje é editar um cookie.
Basta ele mudar o valor que ele vai ter acesso a paginas que outro nivel pode.
Use sessoes com a maior segurança.
mas os dados estão em sessão André... não estou utilizando cookies
<?php
$sql = mysql_query ("SELECT nome,nivel FROM tabela WHERE nome = '$nome' AND nivel = nivel");
$assoc = mysql_fetch_assoc ($sql);
if ($assoc['nivel'] == 0) echo 'Normal';
else if ($assoc['nivel'] == 1) echo 'Intermediario';
?>Não entendi fetish..
minha página para editar o cadastro é a mesma, independe do nível de acesso, se eu passo o id do cliente para a pesquisa tudo que ela deve fazer é mostrar os dados cadastrados no bd daquele id
url: geral.php?pag=cad_editar&cod=<?= $cod ?>
sql: $busca = mysql_query("SELECT * FROM cadastro WHERE cod = $cod");
e não consigo entender porque localhost funciona e online só funciona com o cadastro no nível de acesso 1. Teoricamente não deveria fazer nenhuma diferença.
Vou fazer uma sugestão. Pode ser que online esteja com SHORT_OPEN_TAG off e localhost esteja on.
Tenta trocar <?= $cod ?> por <?php echo $cod?>
Espero ter ajudado
Carlos Eduardo
Não é isso não Carlos.. mesmo porquê os dados para o usuário com nível de acesso 1 aparecem corretamente..
de qualquer forma, por desencargo de consciência, eu fiz a alteração e não mudou nada..
Bom te recomendo usar meu método acima, ele pega o nome do usuario sem saber o NIVEL, ai ele faz uma verificação, se for 0 aparece Normal e se for 1 aparece Intermediario.
fetish, não entendi o que sua sugestão vai mudar, por via das dúvidas testei seu o código junto ao login e também na página de edição de cadastro e não mudou nada, ou seja, a página de edição de cadastro traz os dados do usuário somente quando o nível de acesso é 1; quando o nível de acesso é 0 o formulário de edição aparece em branco... valeu a tentantiva
como eu comentei em post anterior, 'teoricamente' o nível de acesso não deveria fazer nenhuma diferença mas o fato é que, por algum motivo que eu não estou conseguindo enxergar, quando o nível de acesso é 0 a sessão não está sendo guardada.
:blink:
Acho que a solução vai ser mudar o sistema de níveis de acesso.. ao invés de começar no 0 para o nível básico, começar do 1...
será que isso é algum "problema" com o php ou com o mysql?
quando o usuario faz o login guarda o nivel de acesso dele na session ou cookie (a q estiver ultilizando) ae so faz as verificacao... com if ou switch..
switch ($_SESSION['login']):
case == 2:
default:
acho que deve funciona =]
espero ter ajudado