Ir para conteúdo

POWERED BY:

Arquivado

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

danilolemoss

Exibição de links de acordo com o nível de acesso'

Recommended Posts

Bom dia Pessoal,

 

 

Estou aqui para mais uma vez pedir um Help a todos ...

 

 

Vamos lá, eu tenho uma página onde é exibido diversos links que redirecionam para outra página ...

até ai tudo bem, o que eu queria basicamente é que quando o usuário efetuava o login, ao clicar nesta

página, exibisse somente os links que estão de acordo com o id do usuário ...

 

Observação: cada link tem um id especifico, os links estão armazenados no banco, fico no aguardo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, talvez a melhor maneira de você fazer isso é colocando uma condicional para cada link.

Quando eu precisei utilizar algo parecido, fiz assim.

 

1 - criei 1 tabela permições(contendo chave estrang. id_usuario). E então cada campo com o nome do link.

2 - Dei permissões de 0 para não e 1 para sim para os links.

 

3 - Depois, na pagina dos links, você chama a permissão daquele usuario e compara cada link.


Se precisar de algum exemplo, avisa que posso te enviar! valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cada login vai ter um tipo de permissão, certo? Então na tabela do banco onde fica cadastrado cada usuário teria um campo "nivel_acesso".

Quando faz o login você olha o "nivel_acesso" e faz um if, exemplo:

<?php
if($nivel_acesso == 1){
?>
mostra o link
<?php
}else if($nivel_acesso == 2){
?>
mostra o link
<?php
}else{
?>
mostra o link
<?php
}else{
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exaamente como nosso amigo falou acima, faca uma busca no BD por sql e verifique sua condicao para fazer a resposta !!!

Eu utilizo isto por nivel de acesso em sistemas;

if($SESSION_USER == "admin"){
echo "Adminsitrador";
}elseif($SESSION_USER == "edit"){
echo "Editor";
}else{
echo "usuario";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camila, Caio

 

Obrigado pelo retorno, tentei das duas formas mais não consegui ...

 

Hoje eu busco os links direto no B.D. e também tenho um script para a pesquisa dos links, existe

a possibilidade de acrecentarmos alguma função no meu código ?

 

Código:
<?php require_once('Connections\config.php'); 
if (isset($_POST['ok'])){


//Comando para efetuar a busca de links especificos.


$q = mysql_escape_string($_POST['b']);


mysql_select_db($database_config, $config);
$query_busca = "SELECT * FROM agrupamentos_x_descricoes WHERE descricao  LIKE '%$q%'";
$busca = mysql_query($query_busca, $config) or die(mysql_error());
$row_busca = mysql_fetch_assoc($busca);
$totalRows_busca = mysql_num_rows($busca);


}else{


//Comando para exibição de todos os links.


mysql_select_db($database_config, $config);
$query_busca = "SELECT * FROM agrupamentos_x_descricoes ";
$busca = mysql_query($query_busca, $config) or die(mysql_error());
$row_busca = mysql_fetch_assoc($busca);
$totalRows_busca = mysql_num_rows($busca);
} ?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="css\botao.css">
<meta http-equiv="Content-Type" content="text/html; charset=latin1" />
<link rel="stylesheet" href="css\taboriginal.css">
<title>Agrupamentos</title>
</head>


<body><center>
<font face="verdana" size="3,5" color="black">
<br />
<form id="form" name="form" method="post" action="">
<label for="b"></label>


Digite uma norma específica:
<input type="text" name="b" id="b" style="  height: 26px;"/>
<input type="submit" name="ok" id="ok" value="Buscar" class="ab-boton "  />
</form><br />


Caso a sua pesquisa não retorne o resultado esperado, Clique<a href="javascript://" onclick="location.href='agrupamentos.php/'">"aqui"<a/> para listar as normas novamente.
</font>


<br />


<table>
<thead>
<tr><th colspan="3"><center><font size="3,5">Normas</font></center></th></tr></thead>
  
     <?php do {?> 


    <tr>


    <td><center><?php 


// Campo Links. 


echo $row_busca['descricao'];?></center></td>


    </tr>


<?php } while ($row_busca = mysql_fetch_assoc($busca));?>
</table>
</center>
</body>
</html>
<?php
mysql_free_result($busca);
?>

 

Cada login vai ter um tipo de permissão, certo? Então na tabela do banco onde fica cadastrado cada usuário teria um campo "nivel_acesso".

Quando faz o login você olha o "nivel_acesso" e faz um if, exemplo:

<?php
if($nivel_acesso == 1){
?>
mostra o link
<?php
}else if($nivel_acesso == 2){
?>
mostra o link
<?php
}else{
?>
mostra o link
<?php
}else{
?>

Seu código está dando erro ...  

Exaamente como nosso amigo falou acima, faca uma busca no BD por sql e verifique sua condicao para fazer a resposta !!!

Eu utilizo isto por nivel de acesso em sistemas;

 

if($SESSION_USER == "admin"){

echo "Adminsitrador";

}elseif($SESSION_USER == "edit"){

echo "Editor";

}else{

echo "usuario";

}

 

 

Mudei as variaveis, ao invés de Session_user eu coloquei agrupamento que na verdade seria o nivel de acesso do usuario... não exibiu nada após o login ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Pessoal,

 

Acho que a melhor solução parao meu projeto seria esta:

 

<?php
if($nivel_acesso == 1){
?>
mostra o link
<?php
}else if($nivel_acesso == 2){
?>
mostra o link
<?php
}else{
?>
mostra o link
<?php
}else{
?>

 

Só que eu não sei como fazer funcionar no meu código ... esta

dadno erro nesta parte do codigo:

 

<?php

}else{
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tente assim:

if($nivel_acesso === '1'){
    echo 'Conteúdo';
}
if($nivel_acesso === '2'){
    echo 'Conteúdo';
}else{
    echo 'Conteúdo';
}

Obrigado pelo retorno, então Alex o código está sem erro, porém só está exibindo o 3 echo, idependente do nível de acesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes do if, imprima a $nivel_acesso e veja o que retorna.

eu coloquei antes do if :

echo $nivel_acesso;

 

Mais ainda não apareceu nada ...

 

Grato!

 

eu coloquei antes do if :

echo $nivel_acesso;

 

Mais ainda não apareceu nada ...

 

Grato!

Continua na mesma

 

 

Mais alguém ?

 

Vlw !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Danilo, vamos tentar otimizar o uso do fórum, NUNCA DÊ UP, isso é contra as regras do fórum, quanto ao seu problema, SEMPRE, vou repetir, SEMPRE dê informações, postar algo do tipo "Não deu certo ..." é totalmente inútil, lembre-se de um fato, o único interessado em resolver o problema é você mesmo.

 

Quanto ao seu problema, qual a diferença entre == e ===? Sabe? Se não sabe pesquise, vamos mudar de === apenas para ==:

 

Agora teste e veja o que retorna, se continuar caindo no else, poste o valor de $nivel_acesso:

if($nivel_acesso == '1'){
    echo 'Conteúdo';
}elseif($nivel_acesso == '2'){
    echo 'Conteúdo';
}else{
    echo 'Me nível de acesso é: '.$nivel_acesso ;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok ESerra,

 

 

coloquei o código mencionado, porém ele não exibe o nível de acesso ...

só apresenta o comentário: "Me nível de acesso é:"

 

 

 

será que tem colocar algum código acima para validar o usuário?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só usar a cabeça, se a frase está saindo assim a variável não existe ou está em branco, logo ela nunca vai ser igual a 1 ou igual a 2, então só sobra o else mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável existe sim meu caro,

 

Consegui resolver de uma outra forma, como eu tinha um código que trazia os links do banco, eu utilizei este

script que é responsável pela exibição do nome do usuário,

 

<?php require_once('Connections/config.php');
if (!isset($_SESSION)) {
session_start();
}
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$colname_Recordset1 = "-1";
if (isset($_SESSION['MM_Username'])) {
$colname_Recordset1 = $_SESSION['MM_Username'];
}
mysql_select_db($database_config, $config);
$query_Recordset1 = sprintf("SELECT * FROM usuarios WHERE login = %s", GetSQLValueString($colname_Recordset1, "text"));
$Recordset1 = mysql_query($query_Recordset1, $config) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
mysql_free_result($Recordset1);
?>

-----------------------------------------------------------------------------------------------------------------------------------------------

Conforme abaixo, quando ele chama as informações do banco, ele só me retorna tudo que for igual ao valor de agrupamento ou seja nivel_acesso.

 

 

"Observação: eu utilizei o recordset para trazer o número de agrupamento ou nivel_acesso"

 

mysql_select_db($database_config, $config);
$query_busca = "SELECT * FROM agrupamentos_x_descricoes where agrupamento = $row_Recordset1[agrupamento] ";
$busca = mysql_query($query_busca, $config) or die(mysql_error());
$row_busca = mysql_fetch_assoc($busca);
$totalRows_busca = mysql_num_rows($busca);

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável existe sim meu caro,

Existe? Sério? E qual o valor dela? Pois no echo nada foi impresso, como eu disse "a variável não existe ou está em branco".

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.