Array
(
)

Biblioteca de Funções -CRUD

PHP
Elieser Júnior
   - 06 nov 2015

Pessoal boa tarde, estou precisando de uma ajuda no PHP com Banco Mysql.
1 - Criei o arquivo crud.php com o conteúdo abaixo.
OBS.: A conexão com banco Mysql está logo acima, funcionando normalmente!

function logar($table, $email, $senha)
{
$senha = md5($senha);
$selectLogin = "SELECT * FROM $table WHERE email = '$email' AND senha = '$senha'";
$retorno = mysql_query($selectLogin);
return mysql_fetch_assoc($retorno);
}

2 - Depois criei a pagina abaixo que chama essa função e faz a comparação para a "function logar". Com banco Postgres funcionou normalmente, porém com Mysql não funciona. Alguém pode ajudar, obrigado.

3 - Arquivo login.php

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Autenticacao</title>
</head>
<body>
<form method="POST">
<table align="center">
<tr>
<td>Email</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>Senha</td>
<td><input type="password" name="senha"></td>
</tr>
<tr>
<td><input type="submit" value="Gravar"></td>
</tr>
</table>
</form>
<?php
require '../carregar.php';
if ($_POST){
if ($dados = logar('usuarios', $_POST['email'], $_POST['senha'])){
echo 'Usuário logado!<br><pre>';
print_r($dados);
}else{
echo '<h1>Usuario ou senha incorretos</h1>';
}
}
?>
</body>
</html>

PRECISO QUE ELE FAÇA A COMPARAÇÃO E MOSTRE O ARRAY!

William (devwilliam)
   - 07 nov 2015

Alguns pontos:

1 - Por gentileza quando for postar trechos de código fonte utilize a tag code, deixa mais legível:
Clique na imagem para abrir em uma nova janela

2 - Executar Instruções SQL com a extensão mysql_, já foram citadas várias vezes aqui e em diversos outros fóruns além da própria documentação do PHP, essa extensão está marcada como "deprecate" então não é aconselhável utilizar em projetos.

3 - Script de login usando concatenação de strings na instrução SQL, uma avenida aberta para SQL Injection, o correto é sempre trabalhar parametrizado.

4 - Você falou que não funciona, mas qual erro é exibido na página?

Marcio Araujo
   - 07 nov 2015

William, posta aquela serie de artigos sobre os pontos que citou(1,2,3,4), assim quem abrir esse post já ficar sabendo o que é para fazer, ter a ideia se o seu projeto está no caminho certo.

William (devwilliam)
   - 07 nov 2015

Imagino que seja as dicas de segurança Márcio, se for segue o link http://www.devwilliam.com.br/php/dicas-de-seguranca-com-php

Em breve vou postar um vídeo com 3 exemplos de invasão, usando SQL Injection para logar, outro para apagar uma tabela pela URL e por último um upload sem validação que lista todos os arquivos o servidor.

Marcio Araujo
   - 07 nov 2015

Exatamente mas inclui o PDO tambem.