Ir para conteúdo

POWERED BY:

Arquivado

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

Matheus Pieterzack

sistema de login PHP

Recommended Posts

Pessoal o erro é o seguinte, eu estou criando um sistema de login onde a pessoa primeiro se registra e depois faz o login, mas infelizmente ao tentar logar sempre da a alerta de que usuario e senhas estao incorretos... Pois no banco de dados está tudo OK, foi registrado o usuario, mas quando ele tenta Logar nao abre nada, apenas a mensagem de que o usuario e senha estao incorretos...

 

>>>Segue o código<<<

 

<?php

 

if(isset($_POST['button'])) {

$email = mysqli_real_escape_string($mysqli, $_POST ['email']);

$senha = mysqli_real_escape_string($mysqli, md5($_POST ['senha']));

 

if($email == "" || $senha = "") {

echo "<script> alert('Preencha todos os campos!'); </script>";

return true;

}

$select = $mysqli->query("SELECT * FROM usuarios WHERE email='$email' AND senha='$senha'");

$row = $select->num_rows;

$get = $select->fetch_array();

$nome = $get['nome'];

if($row > 0) {

echo "<script> alert('Bem Vindo $nome!'); location.href='http://localhost/cursophp/panel/aula11-index.php' </script>";

} else {

echo "<script> alert('Usuário ou senha incorretos!'); </script>";

}

}

 

?>

 

OBS: quando não é preenchido os campos a alert ('Preencha todos os campos!'); aparece certo, mas quando eu logo com os dados CORRETOS que foram salvos no banco de dados nao da certo e sempre da a mensagem ('Usuário ou senha incorretos!');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja como os dados estão no banco

Dê var_dump em $email e em $senha. Veja se estão exatamente iguais aos dados no banco.

 

Também dê var_dump em $get e em $row, para ver o que está sendo retornado

 

Com certeza há algum dado diferente. Caso contrário, o SELECT retornaria algo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um erro semelhante ocorreu comigo, e o problema era o seguinte: eu, assim como você, também estava usando a criptografia md5 e no campo password do banco de dados a length estava em 30. Fiz o seguinte: coloquei o php para mostrar uma variável criptografada em md5 e percebi que ela tinha 32 caracteres, ou seja, a length precisa ser 32. Pode ser que este seja o seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Debuga as variávels $email, $senha e $row, verifique o valor de $row, compare os valores de $senha e $email com os valores que estão no banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera faz pouco tempo que estou vendo PHP, portanto há códigos que são novos pra mim Oo... Joao Henrique, onde eu colocaria este length?

Banco de Dados > Usuarios > Estrutura > Senha [editar]. Logo abaixo do type deve haver "Length/Values". Aí você edita para um número maior ou igual a 32.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas para um teste, grave um "usuario e senha" com tamanhos bem pequenos, e veja se continua o erro.

 

Se logar, o sugerido acima pode ser vdd.

 

Se ainda der a msg, pode ser outro problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exporta a tabela e cola o schema dela aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Joao Henrique eu contei aqui e está igual a 32...

 

Wilnet cadastrei usuario e senha pequenos mas ainda na hora de logar ele manda a mensagem ('Usuário ou senha incorretos!'); ...

 

 

 

---Segue abaixo o BD---

 

<?xml version="1.0" encoding="utf-8"?>
<!--
- phpMyAdmin XML Dump
- version 4.2.7.1
-
- Host: 127.0.0.1
- Tempo de geração: 09/01/2015 às 13:58
- Versão do servidor: 5.6.20
- Versão do PHP: 5.5.15
-->
<pma_xml_export version="1.0" xmlns:pma="http://www.phpmyadmin.net/some_doc_url/">
<!--
- Structure schemas
-->
<pma:structure_schemas>
<pma:database name="cursophp" collation="latin1_swedish_ci" charset="latin1">
<pma:table name="usuarios">
CREATE TABLE `usuarios` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(50) NOT NULL,
`email` text NOT NULL,
`senha` varchar(32) NOT NULL,
`permissao` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
</pma:table>
</pma:database>
</pma:structure_schemas>
<!--
- Banco de dados: 'cursophp'
-->
<database name="cursophp">
<!-- Tabela usuarios -->
<table name="usuarios">
<column name="id">7</column>
<column name="nome">mat</column>
<column name="email">mat</column>
<column name="senha">c4ca4238a0b923820dcc509a6f75849b</column>
<column name="permissao">0</column>
</table>
</database>
</pma_xml_export>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, coloca um

var_dump($_POST);
e poste aqui o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, coloca um

var_dump($_POST);
e poste aqui o resultado

 

Então onde coloco este var_dump($_POST); ??

Comecei a dar uma estudada em php a algumas semanas atrás, aprendi operadores, funçoes e etc... e comecei a ver uns videos no youtube de como fazer sistema de registro, sistema de login, cadastro de produtos ... essas coisas... no video o cara faz a mesma coisa e deu certo no dele... eu olhei tudo novamente pra ver se é algum erro de digitação mas creio q nao Oo embaçado kkkkk

---REGISTRO DO USUARIO---

 

<?php
require("connection.php");
?>
<html>
<title>Aula 11</title>
<head></head>
<body>
<a href="aula10.php">FAÇA SEU CADASTRO</a>
<br><hr><br>
<form method="POST" action="">
<label>
Email:
</label> <br>
<input engine="text" name="email" placeholder="email@host.com.br" /> <br><br>
<label>
Senha:
</label> <br>
<input type="password" name="senha" placeholder="**********" /> <br><br>
<input type="submit" value="Entrar" name="button" />
</form>
</body>
</html>
<?php
if(isset($_POST['button'])) {
$email = mysqli_real_escape_string($mysqli, $_POST ['email']);
$senha = mysqli_real_escape_string($mysqli, md5($_POST ['senha']));
if($email == "" || $senha = "") {
echo "<script> alert('Preencha todos os campos!'); </script>";
return true;
}
$select = $mysqli->query("SELECT * FROM usuarios WHERE email='$email' AND senha='$senha'");
$row = $select->num_rows;
$get = $select->fetch_array();
$nome = $get['nome'];
if($row > 0) {
echo "<script> alert('Bem Vindo $nome!'); location.href='http://localhost/cursophp/panel/aula11-index.php' </script>";
} else {
echo "<script> alert('Usuário ou senha incorretos!'); </script>";
}
}
?>

---CONEXÃO---

 

<?php
$user = "root";
$serv = "localhost";
$pass = "";
$data = "cursophp";
$mysqli = new mysqli ($serv, $user, $pass, $data);
if($mysqli->connect_error) {
echo "ERRO DE CONEXÃO COM O BANCO DE DADOS";
exit();
}

 

?>

---SISTEMA DE LOGIN---

 

<?php
require("connection.php");
?>
<html>
<title>Aula 10</title>
<head></head>
<body>
<a href="aula11.php">FAÇA SEU LOGIN AQUI</a>
<br><hr><br>
<form method="POST" action="">
<label>
Nome:
</label> <br>
<input engine="text" name="nome" placeholder="Nome Completo" /> <br><br>
<label>
Email:
</label> <br>
<input engine="text" name="email" placeholder="email@host.com.br" /> <br><br>
<label>
Senha:
</label> <br>
<input type="password" name="senha" placeholder="**********" /> <br><br>
<label>
Confirmar senha:
</label> <br>
<input type="password" name="csenha" placeholder="**********" /> <br><br>
<input type="submit" value="Registrar" name="button" />
</form>
</body>
</html>
<?php
if(isset ($_POST["button"])) {
$nome = mysqli_real_escape_string($mysqli, $_POST['nome']);
$email = mysqli_real_escape_string($mysqli, $_POST['email']);
$senha = mysqli_real_escape_string($mysqli, $_POST['senha']);
$csenha = mysqli_real_escape_string($mysqli, $_POST['csenha']);
if($nome == "" || $email == "" || $senha == "" || $csenha == "") {
echo "<script>alert('Preencha todos os campos!')</script>";
return true;
}
if ($senha != $csenha) {
echo "<script>alert('As senhas devem ser iguais!')</script>";
return true;
}
$select = $mysqli->query("SELECT * FROM usuarios WHERE email='$email'");
$row = $select->num_rows;
if($row > 0) {
echo "<script>alert('Já existe um usuário com este email!')</script>";
} else {
$insert = $mysqli->query("INSERT INTO usuarios (nome, email, senha, permissao) VALUE ('$nome', '$email', '".md5($senha)."', '0')");
if($insert) {
echo "<script>alert('Usuário registrado com sucesso!'); location.href='aula10.php' </script>";
} else {
echo $mysqli->error;
}
}
} else {
echo $mysqli->error;
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Registro do usuário. Retire os espaços na 5a e 8a linha

<?php


if(isset($_POST['button'])) {
$email = mysqli_real_escape_string($mysqli, $_POST ['email']); // RETIRE O ESPAÇO ENTRE $_POST e ['email']; faça o mesmo com a senha aqui embaixo; ficará assim: $_POST['email']
$senha = mysqli_real_escape_string($mysqli, md5($_POST ['senha']));




if($email == "" || $senha = "") {
echo "<script> alert('Preencha todos os campos!'); </script>";
return true;
}
$select = $mysqli->query("SELECT * FROM usuarios WHERE email='$email' AND senha='$senha'");
$row = $select->num_rows;
$get = $select->fetch_array();
$nome = $get['nome'];


if($row > 0) {
echo "<script> alert('Bem Vindo $nome!'); location.href='http://localhost/cur...ula11-index.php' </script>";
} else {
echo "<script> alert('Usuário ou senha incorretos!'); </script>";
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

no video o cara faz a mesma coisa e deu certo no dele... eu olhei tudo novamente pra ver se é algum erro de digitação mas creio q nao Oo embaçado kkkkk

 

 

Tem como vc postar o link de onde retirou esses code?

Compartilhar este post


Link para o post
Compartilhar em outros sites

posta o resultado do var_dump

 

<?php
echo '<pre>';
var_dump($_POST);

if(isset($_POST['button'])) {
é apenas um debug, para entendermos como está a tua requisição

Compartilhar este post


Link para o post
Compartilhar em outros sites

---Esses são os vídeos.---

 

 

 

 

 

William Bruno apareceu isto aqui :

 

array(0) {

}

 

e depois que coloquei o usuario e a senha que estão salvos no BD apareceu isto:

 

array(3) {
["email"]=>
string(3) "mat"
["senha"]=>
string(1) "1"
["button"]=>
string(6) "Entrar"
}

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.