Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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!
Bom dia André,
Poderia me informar um exemplo ?
Mais alguém ?
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{
?>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";
}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 ...
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{
?>
Se você abriu um else você tem que fechar } ele.
Não deu certo ...
Tente assim:
if($nivel_acesso === '1'){
echo 'Conteúdo';
}
if($nivel_acesso === '2'){
echo 'Conteúdo';
}else{
echo 'Conteúdo';
}>
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.
Antes do if, imprima a $nivel_acesso e veja o que retorna.
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 !
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 ;
}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?
Coloque aqui como está definida a $nivel_acesso e o conteúdo que envolve a alimentação dela.
É 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.
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;$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;$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);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".
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".
Cara na boa,
Estou focando em soluções, se eu entro aqui no fórum, é porque eu preciso da a ajuda de alguém que tenha mais conhecimento que eu, De fato não manjo de quase nada, agora você ficar me questionando disso e daquilo, não vai dar em nada, Se vc é moderador deveria se tocar um pouco mais na hora de ficar questionando os outros...
Postei todo o código da minha página, se o que vc passou funcionasse mesmo, daria certo ..
Sucesso!
>
Cara na boa,
Estou focando em soluções, se eu entro aqui no fórum, é porque eu preciso da a ajuda de alguém que tenha mais conhecimento que eu, De fato não manjo de quase nada, agora você ficar me questionando disso e daquilo, não vai dar em nada, Se você é moderador deveria se tocar um pouco mais na hora de ficar questionando os outros...
Postei todo o código da minha página, se o que você passou funcionasse mesmo, daria certo ..
Sucesso!
Hunnn... é que eu sempre assumo que do outro lado da tela está um humano que tem alguma vontade de usar o cérebro, mas de fato, algumas vezes só está o humano.
>
Hunnn... é que eu sempre assumo que do outro lado da tela está um humano que tem alguma vontade de usar o cérebro, mas de fato, algumas vezes só está o humano.
Palmas para você, O SABE TUDO, O FODÁSTICO DO FÓRUM !
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!