mjs 0 Denunciar post Postado Agosto 7, 2003 pessoal estou fazendo esta busca no meu bd mysql em php: Código: <? // Recupera as Variáveis enviadas pelo form $user = $_GET["user"]; $pass = $_GET["pass"]; // Verifica se ambas as variáveis recuperadas tem valores if (($user!="") && ($pass!="")){ // Busca por comparação o usuário e a senha $strsql = 'SELECT `cadap`, `cadpass`, `cadnom` ' . 'FROM cadastros ' . 'WHERE `cadap` = "'.$user.'" AND `cadpass` = "'.$pass.'" '; // Executa a string sql $sql = mysql_query($strsql) or die(mysql_error()); // Retorna o número de linhas (por se tratar de usuário e senha) então só poderá // haver 0 (nenhuma linha) ou 1 (user) por que no mysql o usuário está como // chave primária. $ver = mysql_num_rows($sql); // Caso ache 0 linhas if ($ver==0){ // Apresenta a mensagem de erro echo "Ops, user ou senha inválidos!"; } elseif ($ver==1){ // Apresenta a mensagem do login efetuado echo "Login Efetuado com Sucesso!"; // Aqui irão os <comandos> para criação do Session com user logado } } ?> Até aí beleza, agora o problema se eu salvar o cadastro do user no campo cadpass como PASSWORD que ele criptografa, eu nào consigo buscar a senha para comparação, como eu faço para comparar????? Preciso só comprar e ver se bate.. Por ex.: user: mjs pass; teste (gravado normal) aparece na busca, e dá a mesnagem de login efetuado com sucesso user: mjs pass: teste (gravado como PASSWORD) não acha na busca e dá a mensagem de user ou senha inválidos. E aí pessoal como eu faço a busca usando o pass como PASSWORD??? Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Agosto 7, 2003 "...se eu salvar o cadastro do user no campo cadpass como PASSWORD que ele criptografa..."Como assim "como password"? Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 8, 2003 "...se eu salvar o cadastro do user no campo cadpass como PASSWORD que ele criptografa..."Como assim "como password"? Assim quando você vai salvar usando o phpMyAdmin um campo, tem as opções lá do lado TEXT, NOW, CURRENT DATE, então salvando como PASSWORD? Sabe? se naum lembrar eu tiro um screenshot.. Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Agosto 8, 2003 Você deve está falando da função password() do MySQL. Estou certo?O problema é muito simples, você está criptografando apenas no momento que está inserindo!Quando uma senha estiver criptografada no banco, a crítica deve criptografar também a senha dada pelo usuário e assim então comparar com a senha do banco!WHERE cadap = '$user' AND cadpass = password('$pass') Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 8, 2003 Você deve está falando da função password() do MySQL. Estou certo?O problema é muito simples, você está criptografando apenas no momento que está inserindo!Quando uma senha estiver criptografada no banco, a crítica deve criptografar também a senha dada pelo usuário e assim então comparar com a senha do banco!WHERE cadap = '$user' AND cadpass = password('$pass') AEEEEEEEE,, isso mesmo, foi mal, mas ainda naum sei o que é oq no php se não havia dito que era função.Cara eu acho que eu fiz isso hauahuaa coloquei password('$pass') e naum deu,, mas devo ter feito errado, vou ohar de novo!!! valeu! Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Agosto 8, 2003 password() não é uma funcão do php, mas sim uma função do MySQL... Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 8, 2003 password() não é uma funcão do php, mas sim uma função do MySQL... putz.. foi mal.. :ph34r: Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 9, 2003 Você deve está falando da função password() do MySQL. Estou certo?s') Cara não deu... já tentei:$strsql = 'SELECT `cadap`, `cadpass`, `cadnom` ' . 'FROM cadastros ' . 'WHERE `cadap` = "'.$user.'" AND `cadpass` = password('$pass') ';Dá esse erro: Parse error: parse error, unexpected T_VARIABLE in /home/mjs/Development/linuxhard/modules/login.php on line 10Assim: $strsql = 'SELECT `cadap`, `cadpass`, `cadnom` ' . 'FROM cadastros ' . 'WHERE `cadap` = "'.$user.'" AND `cadpass` = password('.$pass.') ';Erro: Unknown column 'teste' in 'where clauseAssim:$strsql = 'SELECT `cadap`, `cadpass`, `cadnom` ' . 'FROM cadastros ' . 'WHERE `cadap` = "'.$user.'" AND `cadpass` = password("'.$pass.'") ';Ele até executa tudo, mas não acha o suer e a senha : dando a msg: Ops, user ou senha inválidos!Tem mais alguma dica, tow perdidào, já tentei vários modos! Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Agosto 9, 2003 $strsql = "SELECT cadap, cadpass, cadnom FROM cadastros WHERE cadap = '$user' AND cadpass = password('$pass') "; Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 9, 2003 $strsql = "SELECT cadap, cadpass, cadnom FROM cadastros WHERE cadap = '$user' AND cadpass = password('$pass') "; Ok, vou tentar e posto o resul... :) Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 9, 2003 $strsql = "SELECT cadap, cadpass, cadnom FROM cadastros WHERE cadap = '$user' AND cadpass = password('$pass') "; Zé brigadão pela ajuda, mas não dá certo não adianta!!! Dá user ou senha inválidos... se eu tirar a funcão password e digitar qualquer user e a senha não criptografada pela função user ele acha dando Login Efetuado com Sucesso, agora com a função password ele não ache nem as criptografadas e nem as não criptografadas. Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 9, 2003 Ae zé o que eu pude constatar é que ele não está criptografando a senha para comparação, fiz o seguinte, coloquei assim na strSQL:PASSWORD($pass)O resultado foi este:Unknown column 'abc' in 'where clause'Pela falta das ' aspas simples ele acha que é uma coluna que estou indicando, mas como você pode ver ele não acha a coluna abc, e isto está errado né.. por que se ele estive criptografado ele deveria procurar o nome da coluna criptografado, não seria isto? Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 10, 2003 AI ZÉ DESCOBRIIIIIIIIIIIIIIIIIIII, uiiiiiiiiiiiiiipiiiiiii, rsrsr cara sou persistente nas coisas fiquei fuçando fuçando e descobri o que era, eu havia setado o campo senha para 10 caracteres e testando a criptografia vi que o código criptografado era muito maior, quer dizer a comparação não batia, foi só deixar o campo da senha como texto que ele gerou o código criptografado correto e funfou!!!! Valeu!Aproveitando que estamos falando disso, qual você acha melhor a função passoword(), md5(), encrypt() ??? Qual delas é mais segura?nas minhas buscas também descobri a função md5() mas essa é do php! Então qual acha melhor usar para senhas?Valeu pela ajuda cara!!!! Brigadão mesmo. Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Agosto 10, 2003 Técnicamente eu não sei dizer qual é a mais segura.Mas particulamente eu prefiro o uso da md5() do PHP. Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 10, 2003 Técnicamente eu não sei dizer qual é a mais segura.Mas particulamente eu prefiro o uso da md5() do PHP. Zeh o que eu notei entre o password() e o md5() do php é que o md5() gera um código duas vezes maior que o password() vou analizar bem por que quanto mais cadastros essa diferença no mysql vai se tornar enorme né... vou ver se acho algo que fale sobre isso... as vantagens de cada um ;) Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Agosto 10, 2003 Dando uma olhada no Manual do MySQL, vi que também há uma função md5() no MySQL. Você pode usá-la...Faz tanta diferença assim não, no começo é normal achar que alguns bytes vão fazer uma diferença enorme... A não ser que o seu banco vá ter mais de 10 milhões de usuários. ;] Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 10, 2003 Dando uma olhada no Manual do MySQL, vi que também há uma função md5() no MySQL. Você pode usá-la...Faz tanta diferença assim não, no começo é normal achar que alguns bytes vão fazer uma diferença enorme... A não ser que o seu banco vá ter mais de 10 milhões de usuários. ;] heheheh,,, Cara eu sei que o password é tipo só de ida, criptografo não tem como voltar, (descriptografar), agora o com o md5 é possível? Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Agosto 10, 2003 Não. Mas os hash's que não possuem reversão são bem mais seguros. Compartilhar este post Link para o post Compartilhar em outros sites
mjs 0 Denunciar post Postado Agosto 10, 2003 Não. Mas os hash's que não possuem reversão são bem mais seguros. Também acho por isso que perguntei ;) Compartilhar este post Link para o post Compartilhar em outros sites