Santos54 Posted March 4, 2022 at 11:08 AM Report Share #625509 Posted March 4, 2022 at 11:08 AM Bom dia estou cm estes seguintes erros: Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in D:\xampp\htdocs\site\validalogin.php on line 13 Warning: include(login.html): failed to open stream: No such file or directory in D:\xampp\htdocs\site\validalogin.php on line 22 Warning: include(): Failed opening 'login.html' for inclusion (include_path='\xampp\php\PEAR') in D:\xampp\htdocs\site\validalogin.php on line 22 Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, bool given in D:\xampp\htdocs\site\validalogin.php on line 28 Aqui está o código: <?php $uname=$_POST['username']; $passw=$_POST['pass']; session_start(); $_SESSION['NmUtilizador']=$uname; $conexion=mysqli_connect("localhost","root","","pap"); $consulta="SELECT * FROM login where NmUtilizador='$uname' and Password='$passw'"; $resultado=mysqli_query($conexion,$consulta); $filas=mysqli_num_rows($resultado); if($filas){ header("location:site/indexposlogin.php"); }else{ ?> <?php include("site/login.html"); ?> <h1 class="bad">Erro de Autenticacao</h1> <?php } mysqli_free_result($resultado); mysqli_close($conexion); Link to comment Share on other sites More sharing options...
Solution washalbano Posted March 4, 2022 at 11:38 AM Solution Report Share #625511 Posted March 4, 2022 at 11:38 AM Bom dia! Pode ter acontecido uma falha ao conectar com o database. Segue sugestão: A conexão pode ser mais detalhada e específica assim: arquivo connect.php <?php // variáveis para conexão com banco de dados $host = 'localhost'; $user = 'root'; $password = 'my-secret-pw'; $database = 'pap'; // estabelecer conexão com o mysql $sqli = new mysqli($host, $user, $password); // verificar se houve erro na conexão if ($sqli->connect_error) { // se houve erro, mostra erro na tela die("<p><b>Erro!</b> Falha na conexão:<br>$sqli->connect_error</p>"); } // alterar o tipo de codificação da conexão com o banco de dados, para utf8 if (!$sqli->set_charset('utf8')) { die("<p>O charset não é utf8: $sqli->error</p>"); } // se não abrir o banco de dados para trabalhar if (!$sqli->select_db($database)) { die("<p class='error'><b>Erro!</b> Não foi possível abrir o banco de dados: <b>$database</b><br>$sqli->error</p>"); } Arquivo que usa a conexão para efetuar consultas: <?php // se username e pass foram postados if (isset($_POST['username']) && isset($_POST['pass'])) { // conecta ao database require 'connect.php'; // escapa as string pra evitar scripts maliciosos $uname = $sqli->real_escape_string($_POST['username']); $passw = $sqli->real_escape_string($_POST['pass']); // inicia a sessão session_start(); // guarda o uname na sessão $_SESSION['NmUtilizador'] = $uname; // define a consulta a ser realizada $query = "SELECT * FROM login where NmUtilizador='$uname' and Password='$passw'"; // executa a consulta e guarda o resultado em $result $result = $sqli->query($query); // verifique se houve alguma falha durante a execução da consulta if ($sqli->error) { // exibe mensagem: die('<p class="error">Falha na consulta: ' . $sqli->error . '</p>'); // se não houve falha e há algum resultado } else if ($result->num_rows) { // direciona a outra página header('location:site/indexposlogin.php'); // se não houve nenhuma falha, mas nada foi encontrado } else { // carrega a página de login include('site/login.html'); // com essa mensagem de erro echo '<h1 class="bad">Erro de Autenticacao</h1>'; } } // se username ou pass não foram postados echo '<h1 class="bad">Envie Username and pass</h1>'; // o mysqli $sqli é encerrado automagicamente ao fim da execução de cada request Assim, se alguma falha acontecer, é bem mais provável que vc veja uma mensagem da falha que ocorreu e que te ajude a solucioná-la 1 Report Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now