Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com um problema de rowCount bom vou explicar da melhor forma possível meu erro e irei mostrar abaixo, eu fiz a conexão externa por config.php com class e na hora deu puxar na index.php da erro de rowCount e se não declaro ela na index ele não procede.
Código do config.php
<?php
class Conexao{
private $db;
public function __construct(){
try{
$this->db = new PDO("mysql:dbname=parceiros;host=localhost", "root", "root");
}catch(PDOException $e){
echo "FALHA: ".$e->getMessage();
}
}
public function verificar($email, $senha){
$sql = ("SELECT * FROM usuarios WHERE email = ':email' AND senha = ':senha' ");
$sql = $this->db->prepare($sql);
$sql->bindValue(':email', $email);
$sql->bindValue(':senha', $senha);
$sql->execute();
$array = array();
if($sql->rowCount() > 0){
$array = $sql->fetch();
$_SESSION['id'] = $array['id'];
}
return $array;
}
}
Código do index.php
<?php
require "asset/config/config.php";
if(isset($_POST['mail']) && empty($_POST['mail']) == false){
$email = addslashes($_POST['mail']);
$senha = md5(addslashes($_POST['pass']));
$dsn = new Conexao();
$sql = $dsn->verificar($email, $senha);
if($dsn->rowCount() > 0){
$_SESSION['id'] = $array['id'];
header("Location: painel/index.php");
}
}
?>>
6 horas atrás, BrunoBit disse:
config.php : Troque:
':email' AND senha = ':senha'
config.php: por (removi as aspas):
:email AND senha = :senha
index.php: Troque:
if($dsn->rowCount() > 0){
index.php: por:
if(!empty($sql)){
Nessa forma atual que você construiu o código não é possível usar rowCount() usando o método verificar(), pq rowCount() não existe, ele retorna como método indefinido. Nesse contexto, você tem que verificar se o retorno de verificar() é vazio, usando empty(), pra saber se retornou algum resultado ou se não retornou nada, pq você deu essa responsabilidade pra variável chamada $array dar o retorno da busca lá no método verificar().
Ele não conecta agora só retorna pro login denovo
@Lucas Antonio tem que ver se a senha que você ta inserindo é a mesma que está no banco, pq testei seu código com essas 2 modificações e passou a funcionar normalmente.
>
3 horas atrás, BrunoBit disse:
@Lucas Antonio tem que ver se a senha que você ta inserindo é a mesma que está no banco, pq testei seu código com essas 2 modificações e passou a funcionar normalmente.
me envia o código deixa eu ver como você fez hmm...
class Conexao{
private $db;
public function __construct(){
try{
$this->db = new PDO("mysql:dbname=parceiros;host=localhost", "root", "root");
}catch(PDOException $e){
echo "FALHA: ".$e->getMessage();
}
}
public function verificar($email, $senha){
$sql = ("SELECT * FROM usuarios WHERE email = :email AND senha = :senha ");
$sql = $this->db->prepare($sql);
$sql->bindValue(':email', $email);
$sql->bindValue(':senha', $senha);
$sql->execute();
$array = array();
if($sql->rowCount() > 0){
$array = $sql->fetch();
$_SESSION['id'] = $array['id'];
}
return $array;
}
}
require "asset/config/config.php";
if(isset($_POST['mail']) && empty($_POST['mail']) == false){
$email = addslashes($_POST['mail']);
$senha = md5(addslashes($_POST['pass']));
$dsn = new Conexao();
$sql = $dsn->verificar($email, $senha);
if(!empty($sql)){
$_SESSION['id'] = $array['id'];
header("Location: painel/index.php");
}
}ata e foi?
sim, provavelmente sua senha/email não está batendo com a senha que está no seu banco.
>
7 minutos atrás, BrunoBit disse:
sim, provavelmente sua senha/email não está batendo com a senha que está no seu banco.
mesmo colocando certo não vai '-'
config.php : Troque:
':email' AND senha = ':senha'
config.php: por (removi as aspas):
:email AND senha = :senha
index.php: Troque:
if($dsn->rowCount() > 0){
index.php: por:
if(!empty($sql)){
Nessa forma atual que você construiu o código não é possível usar rowCount() usando o método verificar(), pq rowCount() não existe, ele retorna como método indefinido. Nesse contexto, você tem que verificar se o retorno de verificar() é vazio, usando empty(), pra saber se retornou algum resultado ou se não retornou nada, pq você deu essa responsabilidade pra variável chamada $array dar o retorno da busca lá no método verificar().