Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
bioshock

Login {Resolvido}

Recommended Posts

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" ?>>

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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 );
  }
}
?>

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other sites
bioshock

Okey, amanhã já experimento na empresa, depois digo-te algo. Obrigado!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.