Ir para conteúdo

Arquivado

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

marcelo2605

Script de login não reconhece senha

Recommended Posts

Estou usando um script para login de usuários, mas ele não está reconhecendo a senha correta. Mesmo colocando a senha certa, ele diz que está incorreta.

 

connecting.php

 

 
class Connection{
public function dbConnect(){
$username = '***';
$password = '***';
return new PDO('mysql:host=***;dbname=***;charset=utf8', $username, $password);
}
}

 

 

user.php

 

 
include_once('connecting.php');
 
class User{
 
private $db;
 
public function __construct(){
$this->db = new Connection();
$this->db = $this->db->dbConnect();
}
 
public function Login($name, $pass){
if(!empty($name) && !empty($pass)){
$st = $this->db->prepare("SELECT user, password FROM users WHERE name = ? AND password = ?");
$st->bindParam(1, $name);
$st->bindParam(2, $pass);
$st->execute();
 
if($st->rowCount() == 1){
echo "User verified, Access granted";
}else{
echo "Incorrect user";
}
 
}else{
echo "nome ou senha não foram digitados";
}
}
}

 

 

index.php

 

 
include_once('user.php');
 
if(isset($_POST['submit'])){
 
$name = $_POST['name'];
$pass = $_POST['password'];
 
$object = new User();
$object->Login($name, $pass);
}
 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

segundo o manual, rowCount() deve ser usando para saber quantas linhas foram afetadas por insert/update/delete.

http://php.net/manual/pt_BR/pdostatement.rowcount.php

 

oq vc fazer é contar o resultado da consulta:

 

//..
$st->execute();
$usuario = $st->fetch(PDO::FETCH_ASSOC);
$st->closeCursor();
 
if(count($usuario)){
   echo "usuario permitido";
}else{
echo "acesso negado";
}
 
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou utilizando o mesmo script e estou com o mesmo problema, tentarei as dicas passadas e depois volto com o resultado.


conexao_login.php

 

<?php
class Conexao{
public function dbConecta(){
return new PDO("mysql:host=localhost; dbname=login", "root", "");
}
}
?>
Login.class.php
<?php
include_once"conexao_login.php";
class usuario{
private $db;
public function Conlogar(){
$this->db=new Conexao();
$this->db=$this->db->dbConecta();
}
public function Logar($email,$senha){
if(!empty($email) && !empty($senha)){
$st=$this->db->prepare("SELECT * FROM usuarios WHERE email='$email' and senha='$senha'");
$st->bindParam(1,$email);
$st->bindParam(2,$senha);
$st->execute();
if($st->rowCount() == 1){
echo"Login efetuado com sucesso!";
}
else{
echo"Os dados não conferem. Digite novamente!";}
}
else{
echo "Porfavor entre com seu email e senha!";
}
}
}
?>
E não funcionou! :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, podem ser várias coisas.

 

O name do input está igual ?

Adiciona um var_dump($_POST);[/code] em qq lugar para vermos oq tá vindo do formulário

 

 

A senha está criptografada no banco ?

Exporta a tabela com os dados para vermos como está.

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.