Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bioshock

Login {Resolvido}

Mensagens Recomendadas

bioshock

Possuo duas textboxs:

Username

Password

E um botão: Enter.

Caso, quando eu clicar no botão Enter, o que estiver nas textboxs username = "Ola" e password = "Ola" então abre-me XPTO ficheiros, caso contrário "Acesso negado".

Então, eu pensei:

<input type="submit" name="Butt" id="Butt" value="Submit" <?php if ($Textbox1 =="Bem vindo") and ($Textbox2=="2") echo "Ok feito" else echo "Nada" ?>>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jcfr

não percebi bem o objectivo... isso é suposto ser em tempo real ou o echo so acontece após clicares no botão e chamar a página novamente?

de qualquer forma pelo que me parece esás a tentar criar um sistema de login...

não estás a mostrar quase nada do código que possuis mas se não tens mais nada isso não é um bom sistema de login... aliás isso não é um sistema de login de todo

o ideal é usares sessões...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Boas, eu quero uma coisa simples.

Vai ser feito o login via base de dados, mas irá haver um administrador, que não precisa de estar na base de dados.

E o sistema de login era algo muito simples como: Se o que estiver na Textfield1 = "Admin" e o que estiver na Textfield2 = "Admin22" então aparecem labels, etc etc.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jcfr

mas como é que estás a pensar fazer a comparação do que foi escrito com os valores que queres? só o que tens não chega...

pelo que eu percebi queres ter dados predefinidos para os administradores que não necessita de base de dados e dados de contas existentes na base de dados certo??

de qualquer forma mesmo sendo uma coisa simples devias trabalhar com sessões...

colocavas na sessão os campos que precisasses de acordo com a tua base de dados e um dos campos seria o tipo de utilizador ou user ou admin

no ficheiro onde fazias o login verificavas primeiro se os dados inseridos eram os do administrador e so se não fossem é que ias á base de dados desta forma nunca usarias a base de dados quando não era administrador...

mas, principalmente por a conta padrão ser de administrador, aconcelho-te a usar sessões....

faz algo do genero:

<?php
$user=$_POST['user'];
$pass=$_POST['pass'];
if(($user=="Admin")&&($pass=="Admin22")){
$_SESSION['tipo']="Admin";
$_SESSION['user']=$user;
$_SESSION['pass']=$pass;
//// e os parametros que precisares, á partida não precisas da pass na sessão.....
//// e de seguida encaminhas para a página de administração onde verificas o tipo de utilizador

}else{

/////////pesquisa na base de dados
}


?>

penso que é muito simples e serve-te perfeitamente

não testei e não sou especialista nisto por isso provavelmente pode ser melhorado mas penso que serve para o que queres...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
IceBrain

Eu aconselho a que não se reinvente a roda. Autenticação e permissões é daquelas coisas que 80% dos sites usam, o que quer dizer que há módulos muito completos e, mais importante, testados.

Um dos que oferecem autenticação e gestão de permissões (admin, user, guest, etc) é o LiveUser, presente no Pear (repositório de módulos PHP).


❝The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.❞- John Carmack on software patents

A list  of command line apps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jcfr

não conhecia,

geralmente crio o meu próprio sistema de login e testo eu mesmomas pelo que percebi o live user trabalha com xml em vez de  base de dados o que pelo que penso saber é muito mais lento que a utilização de uma base de dados

principalmente com páginas que chegam a atingir centenas ou milhares de utilizadores...

se bem que utilizando apenas em login tal só acontece uma vez, é quando fazes login e pronto...

o exemplo que dei em cima obviamente era apenas um exemplo simples para o que ele queria...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sc0rpion

O LiveUser também suporta BDs, tens é que usar um container. A documentação no pear do php n ajuda grande coisa mas podes espreitar aqui como se faz.

Se não precisares de permissões também tens o módulo Auth.

Já agora, o módulo LiveUser foi "abandonado"? É que desde 2008 que está como versão beta no repositório.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

<?php
$user=$_POST['user'];
$pass=$_POST['pass'];
if(($user=="Admin")&&($pass=="Admin22")){
$_SESSION['tipo']="Admin";
$_SESSION['user']=$user;
$_SESSION['pass']=$pass;
//// e os parametros que precisares, á partida não precisas da pass na sessão.....
//// e de seguida encaminhas para a página de administração onde verificas o tipo de utilizador

}else{

/////////pesquisa na base de dados
}


?>

O $user e $pass são as textfields?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Eu possuo este código para fazer o login via BD:

<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['Textbox1'])) {
  $loginUsername=$_POST['Textbox1'];
  $password=$_POST['Textbox2'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "jobs.html";
  $MM_redirectLoginFailed = "restaurante.html";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_connection, $connection);
  
  $LoginRS__query=sprintf("SELECT Nome, Password FROM registo WHERE Nome=%s AND Password=%s",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $connection) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;	      

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jcfr

só dei uma vista de olhos e pelo que vi deve funcionar...

só tens de acrescentar uma condição que verifique os dados da textbox 1 e 2 antes de fazeres a pesquisa na base de dados e verificar se são os dados predefinidos de administração e caso não sejam entao executa o resto do código....

podes usar o session tb para definir o nivel de acesso ao que eu chamei tipo de utilizador anteriormente...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.