
Controle De Acesso
#1
Posted 25/09/2005, 19:49
Preciso colocar um sisteminha de controle de acesso em um site meu...
Acontece o seguinte: eu criei uma tabela com as permissões...
Ex: news, artigos, leis e tal
Se o usuário for ganhar a permissão apenas para news, por exemplo, ele ganha 1 no campo news e 0 em todos os outros.,..
Ok, já consegui criar a tabela e atribuir a permissão para todos os usuários
Agora, não sei como fazer o PHP reconhecer quem está logando e nem como ir no campo news por exemplo e reconhecer que lá está 1 ou 0
Na minha pagina news.php vai ter que ter um comando tipo
if (news==1)
{
todo codigo html
}
{
sai fora
}
Esta dúvida parece ser simples de resolver, então conto com a ajuda dos grandes craques do PHP..
Abraço
#2
Posted 26/09/2005, 14:08
De uma olhada nas funcoes de MySQL caso haja duvidas em usa-las ( http://br.php.net/ma...R/ref.mysql.php )
Flws!!

<----------- JESUS, O PÃO DA VIDA!!! ----------->
Zaplim - Soluções em Internet
Portal Veste Moda Brasil
#3
Posted 26/09/2005, 14:21
na pagina news.php, poe:
$news = "1";
ai tu faz um SELECT ... e ve se o campo da tabela do user... se ele eh maior que 1 ( > ) ou menor que 1 ( < ), ai tu faz um if basico ....
if($campo_membro > '$news') {
acho q assim da certo !
:: Criação e manuntenção de websites
:: Criação e desenvolvimento de layouts
:: Desenvolvimento de banners temáticos
:: Programação de sistemas dinâmicos (PHP/MySQL)
www.abstractdreams.com.br (BREVE)
#4
Posted 26/09/2005, 14:45
Só que como programador iniciante em PHP, estou apanhando...
Não sei qdo tenho que usar
mysql_affected_rows
mysql_fetch_array
mysql_fetch_assoc
mysql_fetch_row
mysql_fetch_object
não consigo, no código, fazer essa comparação...
Estou apanhando por enquanto
#5
Posted 26/09/2005, 14:50
na página de login:
<?
$user = $_POST[user];
$pass = $_POST[pass];
$status = authenticate($user, $pass);
if ($status == 1)
{
session_start();
session_register("SESSION");
session_register("SESSION_UNAME");
$SESSION_UNAME = $user;
header("Location: index.php");
exit();
}
else
{
$erro = "Login ou senha inválidos";
header("Location: logar.php");
exit();
}
function authenticate($theuser, $thepass)
{
include("config.php");
global $connection1;
$connection = @mysql_connect($host, $user, $pass) or die("Não foi possível conectar ao banco de dados - login.php!");
@mysql_select_db($db, $connection) or die("Não foi possível selecionar o banco de dados - login.php!");
$query = "SELECT id from admin WHERE username = '$theuser' AND password = '$thepass'";
$result = @mysql_query($query, $connection) or die ("Error in query: $query. " . mysql_error());
if (mysql_num_rows($result) == 1)
{
return 1;
}
else
{
return 0;
}
}
?>
e em todas as páginas eu coloco pra ver se o usuário se logou:
<?
session_start();
if (!session_is_registered("SESSION"))
{
header("Location: ../admin/logar.php");
exit();
}
?>
beleza, tudo está funcionando perfeitamente
Agora é o seguinte
tenho a tabela news e para o usuário rafael ela tá com o valor de 1 (tenho permissão)
Não sei como fazer essa sessão comparar com o meu campo no banco de dados... parece ser fácil, mas reconheço que estou apanhando um pouco...
abraço
#6
Posted 26/09/2005, 15:54
Blz??$query = "SELECT * FROM admin WHERE username = '$theuser'";//isso depois de ja ter verificado se o login e senha do usuario estao corretos
$result = mysql_query($query);
$dados = mysql_fetch_array($result);
if($dados['news'] == 1){ //verifica se o usuario tem permissao para acessar as news
...
}
...

Obs.: Não poste duas vezes seguidas, pois isto é contra as regras. Ao inves disso, use o botao editar.
Edição feita por: ph_Rodrigues, 26/09/2005, 15:59.
<----------- JESUS, O PÃO DA VIDA!!! ----------->
Zaplim - Soluções em Internet
Portal Veste Moda Brasil
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)