Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
quem sabe fazer retornar numero de linhas achadas no BD pelo select
Tipo Num_rows ?
$busca = $dsn->prepare("SELECT id, email, senha FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
$busca->execute();
$row = $busca->fetchAll();
count($row);
$valor = var_dump($row);
Alguem consegui fazer um if de conparação de dados para se verdadeiro liberar acesso a uma HEADER?
Ai pessoal nao to conseguindo fazer que nem
Num_effect_row
, e erá 0 ou 1 por favor ajude :upset: :upset:
$busca = $dsn->prepare("SELECT id, email, senha FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
$busca->execute();
$row = $busca->fetch(PDO::FETCH_NUM);
foreach($row as $key=>$val)
{
echo $key.' - '.$val.'<br>';
}
<?php
include "conectar_bd.php";
$verifica_acao = $_POST["acao"];
$user = $_POST['email'];
$senha = $_POST['senha'];
//OK Funcionando
if (empty($user))
{
echo('nome nao e valido');
exit();
}
elseif (empty($senha))
{
echo ('senha nao e valido');
exit();
}
else
{
echo 'O codigo esta certo nome e senha foram preenchidos';
}
if(!filter_var($user, FILTER_VALIDATE_EMAIL)){
echo 'Campo Invalido:</b> E-mail escrito de forma errada por fovor corrija</font></center>';
}
$busca = $dsn->prepare("SELECT * FROM cadastro WHERE login = ? AND senha =?");
[b]$busca->bind_param(1, $_POST['email'], PDO::PARAM_STR);[/b]
$busca->bind_param(2, $_POST['senha'], PDO::PARAM_STR);
// Executando statement
$busca->execute();
// Se a linha existe: indicar que esta logado e encaminhar para outro lugar
$res = $busca->fetchAll(PDO::FETCH_ASSOC);
if (count($res) > 0)
{
$_SESSION['email'] = $$res['email'];
$_SESSION['senha'] = $$res['senha'];
echo 'DENTRO DO SITE';
}
else
{
echo '<p class="erro">Login/Senha inválidos</p>';
}
?>
a linha em negrito esta dando erro:
Fatal error: Call to undefined method PDOStatement::bind_param() in C:\xampp\htdocs\www\autenticando.php on line 47
ai pessoal quem ja passo por essa me diga o que esta avendo assim que essa etapa estiver pronta eu coloco o codigo para ajudar o pessaol.
OBS estou querendo fazer um sistema de login e senha a forma anterior que esta no primeiro post esta fora não deu para fazer funcionar esse aqui agora e mais promisor espero ajuda obrigado
$busca = $dsn->prepare("SELECT COUNT(*) AS total FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
$row = $busca->execute()->fetchRow();
echo $row['total'];>
$total = $busca->rowCount();
Amigo essa parte funciona mas o proprio PHP diz que nao devemos usar para SELECT por que ele em sua função tem a devoluçao de alteração do DELETE, UPDATE, INSERT.
Por isso nao demos usar.
mas ficaria feliz se fosse assim tao facil.
Agora eu estou lidando com o codigo que eu postei a cima da uma olhada ele é exatamente, o que eu queria.
Erro dele é:
erro fatal : "PDOException" excepção Uncaught com SQLSTATE mensagem '[42000]: Erro de sintaxe ou violação de acesso: 1064 Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde ao seu servidor MySQL versão para o direito sintaxe para usar perto de 'Senha =' aaa'' at line 1 "em C: \ xampp \ htdocs \ www \ autenticando.php: Stack trace 49: # 0 C: \ xampp \ htdocs \ www \ autenticando.php (49) : PDOStatement-> execute () # 1 {main} jogado em C: \ xampp \ htdocs \ www autenticando.php \ na linha 49
//O CODIGO ERRADO É ESSE:
$busca = $dsn->prepare("SELECT * FROM cadastro WHERE user='{$_POST['email']}' AND senha senha='{$_POST['senha']}'");
$busca->execute();
>
$busca = $dsn->prepare("SELECT COUNT(*) AS total FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
$row = $busca->execute()->fetchRow();
echo $row['total'];
Bom dia quando eu vi o seu cod eu fiquei feliz nossa que maravilha colocar um count dentro do SQL nem imagina isso tambem estou começando ainda, tem muitas coisa que pode e eu nao sei e tem muitas que não posso tambem.
Bem o seu deu Erro:
Fatal error: Call to a member function fetchRow() on a non-object in C:\xampp\htdocs\www\autenticando.php on line 48
Minha ideia é que esse comando nao trabalhe com PDO o que voce me diz ?
Obrigado amigo
$total = $busca->rowCount();//funciona
$busca->bind_param() // tem certeza que isso ta certo ?
$busca = $dsn->prepare("SELECT COUNT(*) AS total FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
$row = $busca->execute()->fetch();
echo $row['total']; //funciona
tem o count() do php tmb. e so conta uma array tem misterio nisso não...
Gente esse papo de:
$row = $busca->execute()->fetchRow();
$row = $busca->execute()->rowCount();
eu to achando que deveria funcionar gostaria de saber se voces usam eles ou ja usaram?
Por que eu to tentando e nao esta dando certo.
Eu andei lendo que tem servidores que nao da suporte e sertas classes quem tiver experiencia com isso por favor me responda:
eu uso o XAMPP ultima verção 5 e gostaria de saber se esse tem problemas com PDO?
Sim funciona mas aparente mente essa forma de colocar
$row = $busca->execute()->fetch();
nao esta deixando passar veja o erro:
erro fatal : Chamada a um membro função fetch () em um objeto não em C: \ xampp \ htdocs \ www \ autenticando.php na linha 48
Isso e para ser assim mesmo dois (->execute()->fetch();) se puder me matar uma curiosidade para que serve ->>
Amigo essa parte funciona mas o proprio PHP diz que nao devemos usar para SELECT por que ele em sua função tem a devoluçao de alteração do DELETE, UPDATE, INSERT.
Por isso nao demos usar.
mas ficaria feliz se fosse assim tao facil.
Muito boa a sua observação, pena que ela não condiz com o que o manual fala... mas enfim, a outra solução com o COUNT vai resolver.
Ai gente nesse codigo aqui:
$busca = $dsn->prepare("SELECT COUNT(*) AS total FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
$row = $busca->execute();
$row = $busca->fetch();
echo $row['total'].'<p>'; //funciona
teve novidade apareceu isso aqui:
array (2) {["total"] => string (1) "1" [0] => string (1) "1"}
quero so fazer uma pergunta como e que eu faço uma if (Condiçao) para liberar ou barrar esse tipo de dados?
>
Muito boa a sua observação, pena que ela não condiz com o que o manual fala... mas enfim, a outra solução com o COUNT vai resolver.
Por favor diga por que isso nao condiz com a realidade?
Pois isso que escrevi veio do MANUAL tambem amigo.
Por favor diga o que voce sabe.
obrigado
O codigo
$busca = $dsn->prepare("SELECT COUNT(*) AS total FROM cadastro WHERE email='{$_POST['email']}' AND senha='{$_POST['senha']}'");
$row = $busca->execute();
$row = $busca->rowCount();
echo $row;
ta f***, se eu colocar usuario e senha que existem no BD o rowCount retorna 1
se eu colocar usuario correto e senha erra o rowCount retorna 1
se eu colocar usuario e senha errados o rowCount retorna 1
acredito que ele esta contando se existe um array e nao procurando ver se os dados no $_POST condiz com o que esta no campos do BD.
O que voces me dizem disso?
Alguem ja fez sistema de autenticação usando PDO?
Eu acha que mudar para PDO nao ia me dar tanta dor de cabeça assim gente. :wacko: :wacko: :wacko:
como muitos disseram: $db->rouCount();
esta na documentacao
http://br.php.net/manual/pt_BR/pdostatement.rowcount.php
uma dica, sev ai usar so e somente so o mysql, usao mysqli, pdo eu aconselho quando você trabalha com multiplos bancos de dados diferentes...o mysqli eh mais simples de usar, qq host tem...
>
como muitos disseram: $db->rouCount();
esta na documentacao
http://br.php.net/manual/pt_BR/pdostatement.rowcount.php
uma dica, sev ai usar so e somente so o mysql, usao mysqli, pdo eu aconselho quando você trabalha com multiplos bancos de dados diferentes...o mysqli eh mais simples de usar, qq host tem...
Tudo bem pelo o que voces fala a vida é bela mas vejá o que esta acontesendo comigo:
Esta e a linha que esta dando erro:
$lista = $busca->rouCount();
Este é o Erro
Fatal error: Call to undefined method PDOStatement::rouCount() in C:\xampp\htdocs\www\autenticando.php on line 48
>
Tudo bem pelo o que voces fala a vida é bela mas vejá o que esta acontesendo comigo:
Esta e a linha que esta dando erro:
$lista = $busca->rouCount();
Este é o Erro
Fatal error: Call to undefined method PDOStatement::rouCount() in C:\xampp\htdocs\www\autenticando.php on line 48
por isso q eu passei o link da documentacao, você so copiou e colou o codigo...eu escrevi errado e você copiou...leia a documentacao, ela eh sua melhor amiga...
de fato rouCount nao existe, existe rowCount...
>
por isso q eu passei o link da documentacao, você so copiou e colou o codigo...eu escrevi errado e você copiou...leia a documentacao, ela eh sua melhor amiga...
de fato rouCount nao existe, existe rowCount...
OK Agora esta funcionando mas quando eu coloco usuario e senha correto nao esta entrando o que voce tem a dizer IGOR DA UMA MAO
$busca = $dsn->prepare("SELECT * FROM cadastro WHERE user='{$_POST['email']}' AND senha senha='{$_POST['senha']}'");
$busca->execute();
$lista = $busca->rowCount();
var_dump($lista);
if($lista == 1){
echo 'Ta dentro';
exit();
}
else{
Echo 'Nao entro';
exit();
}
Achei a falha esta nesse trecho
WHERE user='{$_POST['email']}' AND senha senha='{$_POST['senha']}'
Eu digo isso por que eu retirei ele e a contagem deu certo quer dizer a indicação q voces me deram esta correta obrigado a todos, mas me falta intendimento do que esta avendo quem ja passo por isso e pode me dar o entendimento do que esta avendo ?
ele esta correto, você fez um debug na tela e jogou no phpmyadmin?
WHERE user='" . $_POST['email']. "' AND senha senha='" . $_POST['senha']} . "'";>
WHERE user='" . $_POST['email']. "' AND senha senha='" . $_POST['senha']} . "'";
o seu codigo funciona era exatamente o mesmo que meu grande amigo igor.php me encino quando eu estava começando.
ele esta pegando os post email e senha normalmente mas nao esta verificando no BD nao sei bem dai pra frente nao autoriza.
O var_dump do select esta mostrando que esta pegando.
a
$lista = $busca->rowCount();
nao esta pegando nada esta zero.
Amigos sera que agora voces estao intendendo o que eu estou passando?
eu ja tava acostumado a trabalhar com select insert delete update tudo agora que eu mudei para pdo esta fazendo isso tudo eu ja li varias vezes cada classes de cada comando estou com intendimento mas pelo geito tem algo que nao esta funcionando (CLARO)!
Olha eu estou usando o XAMPP 5 sera que meu servidor nao aceita PDO ou sertos comandos?
ja olhei o php.ini e ta tudo bem segundo meus estudos que estao postados tambem.
por favor alguem me ajude e me de o intendimento, se voces nao quizerem me dar o codigo tudo bem mas me ajudem a inteder o que esta errado nao tenho mais o que fazer continuo estudando mas estou presisando de voces mesmo.
Desculpa ser chato a todos voces mas preciso de voces. :cry: :cry: :cry: :cry: :cry:
Agora sim esta dando 1 e 0 mas por que nao esta pegando a SESSION?
Alguem pode dar uma ideia do por que ?
tenho que ter para liberar a outra pagina se nao ela volta pro index.php
<?php
$dsn = new PDO("mysql:host=localhost;dbname=user", 'root', '');
if($dsn){
echo 'ok';
}else{
echo '!';
}
$verifica_acao = $_POST["acao"];
$user = $_POST['email'];
$senha = $_POST['senha'];
//OK Funcionando
if (empty($user))
{
echo('nome nao e valido');
exit();
}
elseif (empty($senha))
{
echo ('senha nao e valido');
exit();
}
else
{
echo ' <font size=6 face=arial color=red>Email e Senha OK</font><p>';
}
if(!filter_var($user, FILTER_VALIDATE_EMAIL)){
echo '<pre>
Campo Invalido:</b> E-mail escrito de forma errada por fovor corrija</font></center>';
}
// Preparando statement
$stmt = $dsn->prepare("SELECT * FROM cadastro WHERE email = ? AND senha = ?");
$stmt->bindParam(1, $_POST['email'], PDO::PARAM_STR);
$stmt->bindParam(2, $_POST['senha'], PDO::PARAM_STR);
var_dump($stmt);// Obter linha consultada
$obj = $stmt->rowCount();
// Se a linha existe: indicar que esta logado e encaminhar para outro lugar
if ($obj) {
$_SESSION['email'] = $_POST['email'];
$_SESSION['senha'] = $_POST['senha'];
echo 'Dentro do Site';echo '<p class="erro">Login/Senha inválidos</p>';
}
exit();
var_dump($obj['email']);
?>Pelo código acima, faltou iniciar a sessão.
>
Pelo código acima, faltou iniciar a sessão.
estou vendo que nesse ramos nos necessitamos dos amigos e estou vendo que tenho muitos aqui
mais uma vez fico grato pela a ajuda de cada voces esta lendo isso IGOR LUIZ FElip os trez tem me ajudado muito digo sobre eles por que tenho contato msn e email que sempre que necessito eles estao la para ajudar e a todos voces do forum o SERRA, Henrique Barcelos.
bem todos que participaram desse parte, e quero dizer que as 4:54 da manha eu terminel e vou fazer um video para que tenha mais material para quem esta começando como eu.
e quero falar que o que eu estou contruindo com a ajuda de voces eu vou dar de graça para a internet sei que vai levar 3 anos para terminar mas sera de todos vamos mostrar que podemos.
Mais uma vez obrigado e aqui esta o codigo funcionando claro que sei que tem que inclementar coisas mas esta rodando legal:
<?php
$dsn = new PDO("mysql:host=localhost;dbname=user", 'root', '');
if($dsn){
echo 'ok';
}else{
echo 'Erro de Conexao tente novamente!';
}
$verifica_acao = $_POST["acao"];
$user = $_POST['email'];
$senha = $_POST['senha'];
if (empty($user)){
echo('Email não é valido');
exit();
}
elseif (empty($senha)){
echo ('senha nao é valido');
exit();
}else{
echo ' <font size=6 face=arial color=red>Email e Senha OK</font><p>';
}
if(!filter_var($user, FILTER_VALIDATE_EMAIL)){
echo '<pre>
Campo Invalido:</b> E-mail escrito de forma errada por fovor corrija</font></center>';
}
// Preparando statement
$stmt = $dsn->prepare("SELECT email, senha FROM cadastro WHERE email = ? AND senha = ?");
$stmt->bindParam(1, $_POST['email'], PDO::PARAM_STR);
$stmt->bindParam(2, $_POST['senha'], PDO::PARAM_STR);
$stmt->execute();
$obj = $stmt->rowCount();
if ($obj) {
session_start();
$_SESSION['email'] = $_POST['email'];
$_SESSION['senha'] = $_POST['senha'];
header('location:defalt.php'); echo '<p class="erro">Login/Senha inválidos</p>';
}
exit();
?>
/applications/core/interface/imageproxy/imageproxy.php?img=http://www.brasilescola.com/upload/conteudo/images/obrigada(o)eu-obrigada(o)voce.jpg&key=f6f0696210c7f52e3141325615d9ca999a56e492b8859569a349c862a8c0286e" alt="obrigada(o)eu-obrigada(o)voce.jpg" />
$total = $busca->rowCount();