Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

beowlf

[Resolvido] Problema no login e senha

Recommended Posts

Bom dia.. Galera da iMasters

 

to com um problema no login do meu site

 

ele autentica a o login e se eu deixo a senha em branco ele entra no sistema

 

se eu digito a senha correta ele da senha incorreta... oq pode ser...

 

alguem pode me ajudar vou postar o codigo...

 

<?
$login = $_POST['login'];
$senha = $_POST['senha'];

include "config.php";



$sql = mysql_query("SELECT * FROM users WHERE user = '$login'");
$cont = mysql_num_rows($sql);
while($linha = mysql_fetch_array($sql)){
$senha_db = $linha['senha'];
}

if($cont == 0){

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
<script type=\"text/javascript\">
alert(\"O nome de usuario não corresponde.\");
</script>";

}else{

if($senha_db != $senha){//confere senha

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
<script type=\"text/javascript\">
alert(\"A senha não <> corresponde.\");
</script>";

}else{
session_start();
$_SESSION['login_usuario'] = $login;
$_SESSION['senha_usuario'] = $senha;

header('Location: admin.php');
}
}
mysql_close($db);
?>

 

Obrigado!!! fico feliz por vcs estarem sempre me ajudando.... é uma honra fazer parte dessa comunidade...

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifica o usuário e a senha diretemante na query

$sql = mysql_query("SELECT * FROM `users` WHERE `user` = '{$login}' AND `senha` = '{$senha}'") or die(mysql_error());

depois é só verificar se retornou alguma linha, caso contrário o usuário ou senha estão incorretos

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha a mensagem que dá...

 

Unknown column 'senha' in 'where clause'

 

eu arrumei no meu banco estava como pass o campo deu certo

 

mas quando agora digita uma senha incorreta ele vai para o logar.php ele nao volta pro index.php

 

nao entendi o pq

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?
$login = $_POST['login'];
$senha = $_POST['senha'];

include "config.php";



$sql = mysql_query("SELECT * FROM `users` WHERE `user` = '{$login}' AND 'senha' = '{$senha}'") or die(mysql_error());
$cont = mysql_num_rows($sql)or die(mysql_error());
while($linha = mysql_fetch_array($sql)){
$senha_db = $linha['senha'];
}

if($cont == 0){

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
<script type=\"text/javascript\">
alert(\"O nome de usuario não corresponde.\");
</script>";

}else{

if($senha_db != $senha){//confere senha

echo "
<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
<script type=\"text/javascript\">
alert(\"A senha não <> corresponde.\");
</script>";

}else{
session_start();
$_SESSION['login_usuario'] = $login;
$_SESSION['senha_usuario'] = $senha;

header('Location: admin.php');
}
}
mysql_close($db);
?>

 

 

o unico lugar que ele pega esse logar.php é aqui

 

<form action="logar.php" method="post" enctype="multipart">
			<fieldset>
				<label>
					<span>login:</span>
					<input type="text" name="login" />
				</label>
				<label>
					<span>Senha:</span>
					<input type="password" name="senha" />
				</label>
				<label>
					<input style="border:0 !important; background:none; font:bold 12px Arial !important; color:#FFF !important; cursor:pointer !important; float:right !important; margin:0 21px 0 0 !important; padding:0 !important;" type="submit" value="acessar" name="submit" />
				</label>
			</fieldset>
		</form>

 

 

vo postar aqui o meu banco de dados do login e senha

 

senha.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos corrigir e simplificar esse código

 

erros detectados

 

nunca use

<?

sempre use a tag completa para iniciar o php

<?php

 

nomes de campos e tabelas sempre com crase `` e não com aspas simples ' '

errado

...'senha'..

certo

...`senha`..

 

fora alguns excessos de código desnecessários

e no quesito segurança falta uma verificação de sql injection e criptografia de senha, pesquise sobre isso

 

de uma forma simples, tae

<?php
$login = $_POST['login'];
$senha = $_POST['senha'];

include "config.php";

$sql = mysql_query("SELECT * FROM `users` WHERE `user` = '{$login}' AND `senha` = '{$senha}'") or die(mysql_error());
if(mysql_num_rows($sql) == 0){//se não achar
   echo "
	<META HTTP-EQUIV=REFRESH CONTENT='0; URL=index.php'>
       <script type=\"text/javascript\">
		alert(\"O nome de usuario ou senha não correspondem.\");
       </script>";        
}else{//se achar
   session_start();
   $_SESSION['login_usuario'] = $login;
   $_SESSION['senha_usuario'] = $senha;
   header('Location: admin.php');
}
mysql_close($db);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara fico show... fico top fico lindo

 

obrigado pelas dicas... obrigado de verdade me ajudo muito

 

as dicas fantasticas eu to vendo a parte que você disse de sql injection e criptografia de senha

 

eu dei uma olhada em um site olha como ta o exemplo dele dessa criptografia de senha

 

<?php
session_start();

$login = $_POST["login"];
$senha = $_POST["senha"];

$login_escape = addslashes($login);
$senha_escape = addslashes($senha);

$sql = "SELECT * FROM admin WHERE login='{$login_escape}' AND senha = '{$senha_escape}' ";

.
.
.
?>

 

vou ver se consigo melhorar isso, mas banco de dados tenho muitas duvidas é complicado...

 

 

mas muito obrigado de verdade... valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.