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

Andrer757

duvidas no meu sistema de login

10 mensagens neste tópico

boas pessoal eu ainda apesar de ja ter feito algumas paginas em php tive muita ajuda e por isso as vezes ainda ando um pouco a nora com o código, como agora :S.

o meu problema é o seguinte no meu sistema de login a password não é sensível a maiúsculas e minúsculas e não sei como fazer.

o código é este:

<?php require_once('connections/ardb.php'); ?>
<?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['user'])) {
  $loginUsername=$_POST['user'];
  $password=$_POST['pass'];
  $MM_fldUserAuthorization = "nivel";
  $MM_redirectLoginSuccess = "index2.php";
  $MM_redirectLoginFailed = "index.php?erro=1";
  $MM_redirecttoReferrer = true;
  mysql_select_db($database_ardb, $ardb);
  	
  $LoginRS__query="SELECT user, pass, nivel FROM ar_convidados WHERE user='$loginUsername' AND pass='$password'";
  $LoginRS = mysql_query($LoginRS__query, $ardb) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
    
    $loginStrGroup  = mysql_result($LoginRS,0,'nivel');
    
    //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 );
  }
}
?>
<!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>
<title>Login</title>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

  <!-- **** layout stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="style/style.css" />

  <!-- **** colour scheme stylesheet **** -->
  <link rel="stylesheet" type="text/css" href="style/colour.css" />
</head>
<body>
<div id="login" align="center">
<h3 align="center">Login</h3>
<?php
if ($_GET['erro']==1) {
echo "Login ou password incorrectos.<br /><br />";
}
if ($_GET['erro']==2) {
echo "Não tens premição para aceder a essa pagina fax 1º o login.<br /><br />";
}
if ($_GET['sucesso']==1) {
echo "Logout feito com sucesso.<br /><br />";
}
?>
<strong>Se tens convite para entrar fax login aqui.</strong><br /><br />
<form name="formlogin" method="POST" action="<?php echo $loginFormAction; ?>">
<table border="0" cellspacing="2" cellpadding="2">
  <tr>
    <th>Utilizador:</th>
    <td><input name="user" type="text" size="30" maxlength="50" /></td>
  </tr>
  <tr>
    <th>Password:</th>
    <td><input name="pass" type="password" size="30" maxlength="90" /></td>
  </tr>
  <tr>
  	<td colspan="2" align="right"><input name="submit" type="submit" value="Validar" /></td>
  </tr>
</table>
</form>
</div>
</body>
</html>

alguém me pode ajudar?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

o melhor é eu me explicar melhor a minha duvida :S

o meu problema é que na base de dados tenho passwords do tipo "bKYybR96YT" mas quando eu faço login na página, com esse código, se escrever a password só em minúsculas, "bkyybr96yt", ele entra na mesma e não devia.

desculpem estar a insistir mas estou com alguma urgência porque estou a fazer 3 sites ao mesmo tempo e preciso disto para os 3 :S

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podias era gerar uma hash para cada utilizador que se registasse e assim não tinhas as passwords em claro. Usa o md5 para cifrá-las, tens vários exemplos no fórum.

E atenção aos problemas de segurança, nomeadamente aos SQL injection.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não uses MD5, isso já está mais que inseguro. Usa SHA-1 ou mesmo SHA256.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

obrigado pela ajuda :P mas agora tenho outro problema e que ao usar o md5 ou o sha1 o meu script de recuperação de passwords não funciona :S

não existe forma de descodificar para recuperar uma password?

cumpz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

não existe forma de descodificar para recuperar uma password?

Os algoritmos que te indicamos são unidireccionais, ou seja, só encriptam a password.

Para recuperar uma password podias implementar tu o teu próprio algoritmo de cifra, mas isso seria inseguro para o utilizador. :P

O que os sites usam é enviar ao utilizador um link para o mail para ele meter uma nova password.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que os sites usam é enviar ao utilizador um link para o mail para ele meter uma nova password.

Que é o que tu deves fazer... Ou então geras uma password nova, encriptas, actualizas o perfil do utilizador e mandas mail a notificar sobre isso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não uses MD5, isso já está mais que inseguro. Usa SHA-1 ou mesmo SHA256.

Inseguro ?

Mostra exemplos por favor!

Continuo a usar md5!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não uses MD5, isso já está mais que inseguro. Usa SHA-1 ou mesmo SHA256.

Inseguro ?

Mostra exemplos por favor!

Continuo a usar md5!

http://en.wikipedia.org/wiki/MD5
In 1996, a flaw was found with the design of MD5; while it was not a clearly fatal weakness, cryptographers began to recommend using other algorithms, such as SHA-1 (which has meanwhile been found vulnerable itself). In 2004, more serious flaws were discovered making further use of the algorithm for security purposes questionable.
0

Partilhar esta mensagem


Link 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