Jump to content

Desenvolvimento da pap


Santos54
Go to solution Solved by washalbano,

Recommended Posts

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

  • Solution

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

  • Vote 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.