Ir para conteúdo
Jefferson andre

Erro no contador de linhas de um login

Recommended Posts

Saudações,

estou com um programa de login apresentando erro e nao estou determinando o motivo, sei que nao consegue determinar a quantidade de linhas da pesquisa.

 

Mensagem de rro:

Fatal error: Uncaught Error: Call to undefined method mysqli_result::fetchColumn() in C:\xampp\htdocs\xcompbrasil\logar.php:39 Stack trace: #0 {main} thrown in C:\xampp\htdocs\xcompbrasil\logar.php on line 39

 

O banco de dados abre normalmente e o erro esta na linha $rowCount = (int) $rs1->fetchColumn();

 

Agradeço a ajuda

<?php 
// session_start inicia a sessão
session_start();

// as variáveis login e senha recebem os dados digitados na página anterior
// rotinas de seguranca contra ataques via input colocados abaixo
$email_login = $_POST['email_login'];
$senha_login = $_POST['senha_login'];
$senha_login = sha1(md5($senha_login));
$email_login = filter_var($email_login, FILTER_SANITIZE_STRIPPED);


/*
$user_input = "<script>alert('Your site sucks!');</script>";
echo "<script>alert('Your site sucks!');</script>";
*/

//$nome     = $MySQL_real_escape_string(strip_tags(trim($email_login)));

if(empty($_POST['email_login']) || empty($_POST['senha_login'])) {
	echo "<script>alert('O email e a senha são obrigatorios!');</script>";
	
	header('Location: login.php');
	exit();
}

include("conexao.php");

//$query = "select cliente from clientes where cliente = '{$cliente}' and senha = md5('{$senha}')";

//$consultar_usuarios = $arquivo->query("SELECT * FROM usuarios_admin WHERE email = '{$email_login}'");
//$sql = "SELECT * FROM usuarios_admin WHERE email = {'$email_login'} AND senha = {'$senha_login'}";
$sql = "SELECT * FROM usuarios_admin WHERE email = '$email_login'";
if ($res = $arquivo->query($sql)) {

	 echo "<script>alert('Filtro: 1');</script>";

$rs1 = $arquivo->query('SELECT FOUND_ROWS()');
$rowCount = (int) $rs1->fetchColumn();

echo $rowCount;

    /* Check the number of rows that match the SELECT statement */
    if ($res->fetchColumn() > 0) {
		$_SESSION['email_login'] = $email_login;
		$_SESSION['senha_login'] = $senha_login;
		header('location:logado.php');

     }  
	 	  else {
		 unset ($_SESSION['email_login']);
		 unset ($_SESSION['senha_login']);

		 $user_input = "<script>alert('Acesso invalido!'+'Digite novamente o seu email e a senha!');</script>";
		 echo "<script>alert('Acesso invalido!');</script>";
		 echo $user_input;

   	}
}
	else {
			 echo "<script>alert('222222');</script>";
}

$sql = null;
$arquivo = null;

?>

Segue a estrutura da tabela usuarios_admin


id    int(11)    NO    PRI    NULL    auto_increment    
ativo    int(1)    NO        NULL        
email    varchar(60)    NO        NULL        
senha    varchar(50)    NO        NULL    

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente isso

Em 11/10/2019 at 18:50, Jefferson andre disse:

$sql = "SELECT * FROM usuarios_admin WHERE email = '$email_login'";

por isso 

$sql= "SELECT SQL_CALC_FOUND_ROWS * FROM usuarios_admin WHERE email = '$email_login'";

 

Exemplo de usar

veja se vai dar certo

assim

 

$query = "SELECT SQL_CALC_FOUND_ROWS * FROM usuarios_admin WHERE email = '$email_login' LIMIT 1";
$result = mysqli_query($link, $query);

$query = "SELECT FOUND_ROWS() AS count";
$result2 = mysqli_query($link, $query);

$row = mysqli_fetch_array($result2);

echo $row['count'];

 

Caso ajudar acesse o LINK AQUI

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 14/10/2019 at 11:27, Jack Oliveira disse:

Tente isso

por isso 

$sql= "SELECT SQL_CALC_FOUND_ROWS * FROM usuarios_admin WHERE email = '$email_login'";

 

Exemplo de usar

veja se vai dar certo

assim

 


$query = "SELECT SQL_CALC_FOUND_ROWS * FROM usuarios_admin WHERE email = '$email_login' LIMIT 1";
$result = mysqli_query($link, $query);

$query = "SELECT FOUND_ROWS() AS count";
$result2 = mysqli_query($link, $query);

$row = mysqli_fetch_array($result2);

echo $row['count'];

 

Caso ajudar acesse o LINK AQUI

Vou tentar suas dicas, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por eduardodsilvaq
      Erro retornado no console do navegador: 400 bad request
      Rastreei o erro ate essa parte no arquivo admin-ajax.php mudando o valor de resposta de 0 para 1:
      if ( is_user_logged_in() ) { // If no action is registered, return a Bad Request response. if ( ! has_action( "wp_ajax_{$action}" ) ) { wp_die( '0', 400 ); } Tentei de tudo, mas infelizmente nao entendi oq realmente significa esse login e como ele funciona.
      Vi algumas pessoas tendo problema com o host, no meu caso estou usando hostinger. (Nao creio que isso e relevante mas ta ai.)
       
      Código utilizado:
       
      Javascript
      function formValidation() { event.preventDefault(); var name = document.forms["contactForm"]["name"].value; var email = document.forms["contactForm"]["email"].value; var subject = document.forms["contactForm"]["subject"].value; var message = document.forms["contactForm"]["message"].value; document.getElementById('status').innerHTML = ''; var errorMessage="<span class='error'>All fields are required.</span>"; var regEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; if (name.trim() == "" ||email.trim() == "" || subject.trim() == "" || message.trim() == "") { document.getElementById('status').innerHTML = errorMessage; return false; } if (!regEx.test(email)) { var errorMessage="<span class='error'>Invalid email.</span>"; document.getElementById('status').innerHTML = errorMessage; return false; } processContactSubmit(); return true; } function processContactSubmit() { var request = new XMLHttpRequest(); request.open("POST", "/wp-admin/admin-ajax.php?action=process_contact_form"); request.onreadystatechange = function() { if(this.readyState === 4 && this.status === 200) { document.getElementById("status").innerHTML = this.responseText; } }; var myForm = document.getElementById("contactForm"); var formData = new FormData(contactForm); request.send(formData); } functions.php
      add_action('wp_ajax_nopriv_process_contact_form', 'process_contact_form'); add_action('wp_ajax_process_contact_form', 'process_contact_form'); //Retirar essa parte para error no console, no contrario ira aparecer no navegador o numero 0. function process_contact_form() { $to = "Recipient Email Address"; $subject = $_POST["subject"]; $headers = "Testing"; $message = $_POST["message"]; $attachments = ""; $sent = wp_mail($to, $subject, $message, $headers, $attachments); if (! $sent) { echo "<span class='error'>Problem in sending mail.</span>"; } else { echo "<span class='success'>Hi, thank you for the message.</span>"; } wp_die(); } Html
      <form name="contactForm" id="contactForm" method="post" onsubmit="return formValidation()" action=""> <p class="comment-form-comment"><textarea id="message" name="message" required="" placeholder="" aria-required="true"></textarea></p> <p class="comment-form-author"><label for="author">Nome: </label> <input id="name" name="name" required="" size="30" type="text" value=" " /></p> <p class="comment-form-author about"><label for="author">Assunto: </label> <input id="subject" name="subject" required="" size="40" type="text" value=" " /></p> <p class="comment-form-email"><label for="email">Email: </label> <input id="email" name="email" required="" size="30" type="text" value="" /></p> <p class="form-submit"><input id="submit" class="submit" name="email_contato" type="submit" value="Enviar" /></p> </form>&nbsp; <h3><div id="status"></div></h3>  
    • Por belann
      Olá!
       
      Eu tentar logar no wordpress que instalei em minha máquina usando localhost e logando com wp-login.php, está dando uma mensagem que o banco de dados não pode ser acessado.
      Estou usando o xampp. O que pode estar errado.
    • Por acdestefani
      Olá pessoal!
      Peguei alguns códigos na internet para para estudar um pouco e aproveitei para desenvolver um sisteminha simples aqui onde eu trabalho. Consegui desenvolvê-lo usando esse arquivo de conexão:
      <?php /************************************************************************************************************* * @author William F. Leite * * Data: 20/06/2014 * * Descrição: Classe elaborada com o objetivo de auxlilar nas operações CRUDs em diversos SGBDS, possui * * funcionalidades para construir instruções de INSERT, UPDATE E DELETE onde as mesmas podem ser executadas * * nos principais SGBDs, exemplo SQL Server, MySQL e Firebird. Instruções SELECT são recebidas integralmente * * via parâmetro. * *************************************************************************************************************/ /* * Constantes de parâmetros para configuração da conexão */ define('SGBD', 'mysql'); define('HOST', 'localhost'); define('DBNAME', 'contratos_rh'); define('CHARSET', 'utf8'); define('USER', 'tonhao'); define('PASSWORD', '100375'); define('SERVER', 'linux'); class conexao { /* * Atributo estático de conexão */ private static $pdo; /* * Escondendo o construtor da classe */ private function __construct() { // } /* * Método privado para verificar se a extensão PDO do banco de dados escolhido * está habilitada */ private static function verificaExtensao() { switch(SGBD): case 'mysql': $extensao = 'pdo_mysql'; break; case 'mssql':{ if(SERVER == 'linux'): $extensao = 'pdo_dblib'; else: $extensao = 'pdo_sqlsrv'; endif; break; } case 'postgre': $extensao = 'pdo_pgsql'; break; endswitch; if(!extension_loaded($extensao)): echo "<h1>Extensão {$extensao} não habilitada!</h1>"; exit(); endif; } /* * Método estático para retornar uma conexão válida * Verifica se já existe uma instância da conexão, caso não, configura uma nova conexão */ public static function getInstance() { self::verificaExtensao(); if (!isset(self::$pdo)) { try { $opcoes = array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'); switch (SGBD) : case 'mysql': self::$pdo = new \PDO("mysql:host=" . HOST . "; dbname=" . DBNAME . ";", USER, PASSWORD, $opcoes); break; case 'mssql':{ if(SERVER == 'linux'): self::$pdo = new \PDO("dblib:host=" . HOST . "; database=" . DBNAME . ";", USER, PASSWORD, $opcoes); else: self::$pdo = new \PDO("sqlsrv:server=" . HOST . "; database=" . DBNAME . ";", USER, PASSWORD, $opcoes); endif; break; } case 'postgre': self::$pdo = new \PDO("pgsql:host=" . HOST . "; dbname=" . DBNAME . ";", USER, PASSWORD, $opcoes); break; endswitch; self::$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { print "Erro: " . $e->getMessage(); } } return self::$pdo; } public static function isConectado(){ if(self::$pdo): return true; else: return false; endif; } } O sistema está funcionando perfeitamente, porém gostaria de incluir a necessidade de fazer login para acessá-lo. Usei o código abaixo, que também consegui na internet:
      <?php session_start(); include('conexao.php'); if(empty($_POST['usuario']) || empty($_POST['senha'])) { header('Location: index.php'); exit(); } $usuario = mysqli_real_escape_string($conexao, $_POST['usuario']); $senha = mysqli_real_escape_string($conexao, $_POST['senha']); $query = "SELECT usuario FROM tab_usuarios WHERE usuario = '{$usuario}' AND senha = md5('{$senha}')"; $result = mysqli_query($conexao, $query); $row = mysqli_num_rows($result); if($row == 1) { $_SESSION['usuario'] = $usuario; header('Location: painel_professor.php'); exit(); } else { $_SESSION['nao_autenticado'] = true; header('Location: index.php'); exit(); } Porém esse login só funciona usando esse arquivo de conexão:
      <?php define('HOST', '127.0.0.1'); define('USUARIO', 'tonhao'); define('SENHA', '100375'); define('DB', 'contratos_rh'); $conexao = mysqli_connect(HOST, USUARIO, SENHA, DB) or die ('Não foi possível conectar'); Como poderia adaptá-lo para que funcione com o primeiro arquivo de conexão? Tentei por vários dias, mas como tenho pouca experiência com programação, não consegui.
      Desde já agradeço a ajuda de todos
       
    • Por Sapinn
      Fala galera!!! Preciso de um contador regressivo que vá de horas minutos e segundos até zero e mesmo que seja atualizada a pagina o contador não é reiniciado. 
    • Por feasso
      É possível criar um sistema de cadastre-se ou logue-se usando LinkedIn ? Não achei nada na web que seja novo... apenas postagem de 2013!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.