[Resolvido] Fazer login com tipos - PHP - Portugal-a-Programar
[Resolvido] Fazer login com tipos
By AngeloLopes, July 5, 2013 in PHP
Eu ja fiz o login em php, ele ja vai a base de dados, e verifica se sao iguais o nome de utilizador e a password, se for ele entra se nao for ele nao entra.
E tambem ja tenho para ver se o site ja tem uma sessao iniciada, pois se ecrever no url, o site do admin vai dar uma mensagem de erro a dizer que nao tem sessao iniciada.
No entanto falta-me uma coisa que me esta a fazer confusão, isto tambem porque sou novato em php, que é:
Eu gostava que o site no login, verificase se o utilizador que entrou com a sua conta, era so e unicamente utilizador ou se era administrador, porque o admin tem funcoes diferentes dentro do site. Vou meter aqui o meu codigo de login.php
$consulta="Select * from login where utilizador='" . $_POST['utilizador'] . "' and pass='" . $_POST['password'] . "'";
//REDIRECCIONA A PAGINA PARA A PAGINA Admin
isso não nos diz grande coisa..
como controlas as permissões dos utilizadores ?
Acho que é isso que o OP quer saber.
@AngeloLopes, existem várias formas. Se te estás a iniciar, ou tens pouca experiência nas linguagens envolvidas, o mais básico é colocares um campo na base de dados dos utilizadores em que defines de alguma forma quem é administrador e quem é utilizador, e no site usas esse valor para verificar se quem está ligado pode executar determinada acção ou não (um if simples chega).
fazo um if dentro deste if ou fora??
a resposta é mesmo a do yoda mas eu nao fazo ideia como se escreve isso em codigo, a ideia eu ja tinha uma luz agora escrever e que nada mesmo xD
Podes por exemplo criar um campo na tabela dos utilizadores, cujo tipo de dados é bit (valores entre 0 e 1), onde vais dizer que o valor 0 equivale a um utilizador comum e o valor 1 equivale a administrador.
Na parte do código, basicamente o que tens de fazer é:
$query = $db->prepare("SELECT username, password, tipo FROM utilizadores WHERE username = ? AND password = ?");
$query->bind_result($user, $pass, $tipo);
if($query->num_rows() == 1){ // login com sucesso..
if($tipo == 0){
Modifiquei algumas coisas no seu codigo, e so me esta a dar um erro que é no
nao sei porque, mas o erro que me da é este :
Variable $tipo seems to be uninitialized
Este é o meu codigo.
O bioshok atribuiu o resultado da coluna chamada "tipo" da BD a uma variável também chamada "tipo" e depois comparou.