Ir para conteúdo

POWERED BY:

Arquivado

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

Neto Schneider

Erro com o " mysqli_num_rows "

Recommended Posts

Boa noite galera, estou com um problema no meu sistema de login.

Estou recebendo o mesmo erro o tempo todo, e não sei como resolver o mesmo.

Estou repassando os códigos fonte do sistema, me ajudem, estou começando programação em PHP agora e estou tropeçando o tempo todo!

 

--

-- INDEX.PHP

--

<html>
<head>
<meta charset="utf-8">
<title>Home</title>
</head>

<body>
<form id="login" method="post" action="logar.php">
<ul>
<li>
<label for="txuser">Login</label>
<input type="text" id="txuser" name="txuser" />
</li>
<li>
<label for="txsenha">Senha</label>
<input type="password" id="txsenha" name="txsenha" />
</li>
<li>
<input type="submit" id="entrar" value="Acessar" />
</li>
</ul>
</form>
</body>
</html>

--

-- LOGAR.PHP

--

<?PHP
session_start();

$usuario = isset($_POST['txuser']);
$senha = isset($_POST['txsenha']);

$conexao = new mysqli('localhost', 'root', '123456', 'sislog') or die(mysqli_error());

$SQL = "SELECT * FROM usuarios WHERE user = '$usuario' AND pass = '$senha' ORDER BY id DESC";
$resultar = mysqli_query($conexao, $SQL);
$verificar = mysqli_num_rows($resultar) or die(mysqli_error());

if ($verificar > 0)
    {
        $_SESSION['usuario'] = $usuario;
        $_SESSION['senha'] = $senha;
    header('location: entrar.php');
} else {
        unset ($_SESSION['usuario']);
        unset ($_SESSION['senha']);
     header('location: index.php');
}
?>

--

-- BANCO DE DADOS

--

--
-- Database: `sislog`
--
CREATE DATABASE IF NOT EXISTS `sislog` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `sislog`;

-- --------------------------------------------------------

--
-- Estrutura da tabela `usuarios`
--

DROP TABLE IF EXISTS `usuarios`;
CREATE TABLE `usuarios` (
`id` int(11) DEFAULT NULL,
`user` varchar(64) NOT NULL,
`pass` varchar(64) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Extraindo dados da tabela `usuarios`
--

INSERT INTO `usuarios` (`id`, `user`, `pass`) VALUES
(1, 'admin', 'admin');

Bom, o erro que estou recebendo é o seguinte:

Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\logar.php on line 11

 

Agradeço muito a atenção de todos, espero poder crescer bastante com esse fórum.

Muito obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um detalhe, se algum erro ocorrer na execução da query, a recuperação desse erro tem que ser feita na linha de cima, e não onde você está fazendo. Além disso, o exemplo do Caio Baracat está errado, a variável enviada como parâmetro para a função mysqli_error() é a variável que contém a conexão ativa, e não o resource da consulta, ok?

 

O código ficaria assim:

 

$SQL = "SELECT * FROM usuarios WHERE user = '$usuario' AND pass = '$senha' ORDER BY id DESC";
$resultar = mysqli_query($conexao, $SQL) or die(mysqli_error($conexao));
$verificar = mysqli_num_rows($resultar);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, obrigado pelas respostas.

O erro desapareceu, mas mesmo assim eu não estou conseguindo logar, ele me retorna para a página de erro, no caso a index, mesmo com os dados de usuário e senha colocados de forma correta...

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

session_start();

 

if(!isset($_SESSION["usuario"])) {

header("location: index.php");

} else {

$usuario = $_SESSION["usuario"];

}

echo"Você está logado como: $usuario";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sessão está sendo criada mesmo? Já vi acontecer casos onde a session não estava sendo criada por conta de permissão no diretório... Tem que "debugar" melhor isso... Habilite a exibição de erros no PHP, às vezes estamos olhando para uma coisa mas o problema é outro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Paulo de Tarso, obrigado pela correção.

Eu não havia prestado atenção na variável que eu inseri na função, corrigirei a minha resposta.

E quanto ao resource que mencionei, é o tipo da variável de conexão, mesmo, basta usar o var_dump(). Pelo menos era assim quando tinha mysql_connect(), então creio que seja o mesmo com mysqli(). Mas isso não importa.

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.