Ir para conteúdo

Recommended Posts

Instalei um sistema de login e cadastro em uma hospedagem, ajustei o banco de dados e conectei com o sistema, inclusive criei um usuário para testar o login. No entanto quando vou logar ele apresenta esses erros:

 

Warning: mysqli_query() expects at least 2 parameters, 1 given in /srv/disk5/2615118/www/ge2018.atspace.eu/classes/Login.class.php on line 4

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /srv/disk5/2615118/www/ge2018.atspace.eu/classes/Login.class.php on line 5

O código referente ao erro segue abaixo:

 

<?php
	class Login{
		public function logar($email, $senha){
			$buscar=mysqli_query("SELECT * FROM usuarios WHERE email='$email' AND senha='$senha' LIMIT 1");
			if(mysql_num_rows($buscar) == 1){
				$dados=mysql_fetch_array($buscar);
				if($dados["status"] == 1){
					$_SESSION["email"]=$dados["email"];
					$_SESSION["senha"]=$dados["senha"];
					$_SESSION["nivel"]=$dados["nivel"];
					setcookie("logado",1);
					$log=1;
				}else{
					$flash="Aguarde a nossa aprovação!";
				}
			}
				if(isset($log)){
					$flash="Você foi logado com sucesso";
				}else{
					if(empty($flash)){
					$flash="Ops! Digite seu e-mail e sua senha corretamente!";
					}
				}
				echo $flash;
		}
	
	}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está nesse trecho abaixo.

Original:

$buscar=mysqli_query("SELECT * FROM usuarios WHERE email='$email' AND senha='$senha' LIMIT 1");

O que você deve fazer:

$buscar=mysqli_query($conexao_aqui,"SELECT * FROM usuarios WHERE email='$email' AND senha='$senha' LIMIT 1");

Perceba a variável $conexao_aqui, ali você deve passar a sua conexão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que já foi demonstrado acima, você está confundindo as coisas.  MySQLi e funções mysql_*

 

São bibliotecas diferentes e não conversam entre si.

Compartilhar este post


Link para o post
Compartilhar em outros sites
20 horas atrás, BrunoBit disse:

O erro está nesse trecho abaixo.

Original:


$buscar=mysqli_query("SELECT * FROM usuarios WHERE email='$email' AND senha='$senha' LIMIT 1");

O que você deve fazer:


$buscar=mysqli_query($conexao_aqui,"SELECT * FROM usuarios WHERE email='$email' AND senha='$senha' LIMIT 1");

Perceba a variável $conexao_aqui, ali você deve passar a sua conexão.

 

Fiz as alterações cotinua apresentados esses erros:

 

Warning: mysql_num_rows() expects parameter 1 to be resource, object given in /srv/disk4/2609189/www/grupodeestudos.atwebpages.com/classes/Login.class.php on line 12
Ops! Digite seu e-mail e sua senha corretamente!

 

Código alterado:

<?php
$con=mysqli_connect("xxxx","xxxx","xxxxx","xxxxxx") or die(mysqli_connect_error());
// verifica conexão
if (mysqli_connect_errno())
  {
  echo "Falha ao conectar com MySQL: " . mysqli_connect_error();
  }
	class Login{
		public function logar($email, $senha){
			global $con;
			$buscar = mysqli_query($con,"SELECT * FROM usuarios WHERE email='$email' AND senha='$senha' LIMIT 1");
			if(mysql_num_rows($buscar) == 1){
				$dados=mysql_fetch_array($buscar);
				if($dados["status"] == 1){
					$_SESSION["email"]=$dados["email"];
					$_SESSION["senha"]=$dados["senha"];
					$_SESSION["nivel"]=$dados["nivel"];
					setcookie("logado",1);
					$log=1;
				}else{
					$flash="Aguarde a nossa aprovação!";
				}
			}
				if(isset($log)){
					$flash="Você foi logado com sucesso";
				}else{
					if(empty($flash)){
					$flash="Ops! Digite seu e-mail e sua senha corretamente!";
					}
				}
				echo $flash;
		}
	
	}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Killerex Cisar agora o seu erro é referente ao que o Gabriel Heming te orientou, você está misturando mysql com mysqli.

você vai precisar trocar o "mysql_num_rows" e "mysql_fetch_array" por mysqli.

 

Segue alguns exemplos:

mysqli_fetch_array:

https://www.w3schools.com/php/func_mysqli_fetch_array.asp

mysqli_num_rows:

https://www.w3schools.com/php/func_mysqli_num_rows.asp

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 martinazzo
      Olá pessoal,
       
      sou novo por aqui e não sei bem como funciona, mas sei que preciso de uma ajuda kkkkk
      se puderem me dar uma mão ficaria grato;
       
      Estou tendo problemas em como pegar id de uma linha clicada em uma table, que já recebe os dados de um bd. Eu gostaria de poder editar os campos e salvar no banco de dados usando o ID da linha clicada;
       
      Vou colar o código abaixo, não reparem na bagunça kkkkk
       
      conexao.php
      <?php $server = "XXXXX";         Conferido e esta correto; $username = "XXXXX";  Conferido e esta correto; $password = "XXXXX";  Conferido e esta correto; $dbname = "XXXXX";     Conferido e esta correto; $conn = mysqli_connect($server, $username, $password, $dbname); altera.php
      <?php  $link = mysqli_connect("XXXXXX", "XXXXX", "XXXXX", "XXXXXX"); Conferido $sql = "SELECT * FROM interface "; $consulta = mysqli_query($link, $sql); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="refresh" content="30"> <link rel="stylesheet" type="text/css" href="style.css"> <script src="sorttable.js"></script> <title>Dashboard</title> <?php  session_start(); if(!isset($_SESSION['login']) and !isset ($_SESSION['senha'])){     session_destroy();   unset($_SESSION['login']);   unset($_SESSION['senha']);   header('location:index.html');      }    ?> </head> <body> <a href="index.php"><img src="img/ditec_smart_hor_150px.png"></a> <div class="borda_titulo"> <h2><center>DIMILK | Equipamentos</font></h2></center></div><br /><br /> <form name="equipamento" action="salva.php" method=post> <center><table id="minhaTabela" border="3" class="sortable" bgcolor="#1E90FF">   <tr>   <th><center>ID </center></th>   <th><center>MAC</center></th>   <th><center>Habilitado</center></th>   <th><center>Descrição</center></th>   <th><center>Altura Tarro</center></th>   <th><center>Área Tarro</center></th>   <th><center>Alterar</center></th>   </tr>        <?php while($registro = mysqli_fetch_assoc($consulta)){         echo '<tr bgcolor="#ADD8E6" scope="row">';         echo '<td name="id"><center>'.$registro["id"].'</center></td>';         echo '<td name="mac"><center>'.$registro["mac"].'</center></td>';         echo '<td><center><input type="checkbox" name="status" value="$teste"><br></center></td>';         echo '<td id="linha_desc"><textarea name="desc" type=text placeholder="'.$registro["descricao"].'" /></textarea></td>';         echo '<td><input name="altura" type=text style="width: 70px;" placeholder="'.$registro["altura_latao"].' cm" /></td>';         echo '<td><input name="area" type=text style="width: 70px;" placeholder="'.$registro["area_latao"].' cm" /></td>';                  echo '<td><form method="get" action="salva.php"><center><button class="voltar" type="submit">Salvar</button></center></form><br />';         echo '</tr>';         }     echo '</tbody></table></form>';          ?></center><br />              <div>                         <form method="get" action="index.html">                     <center><button class="voltar" type="submit">Voltar</button></center></form>         </div>                                  <br />                 <footer class="borda_texto"><center>                 <img src="img/rodape_logo.png">                     2019 © <b>DITEC - Smart Solutions</b> - Todos os Direitos Reservados.                 <a class="px-4" href="https://www.ditecsc.com.br" target="_blank">Ditec - Smart Solution</a>                 </center></footer> </body> </html> salva.php
       
      <?php include('conexao.php'); include_once('altera.php');   // declaração de variáveis $id = 22; /*$id = $_GET['id']; $status = $_POST['status'];*/ $descricao = $_POST['desc']; $altura = $_POST['altura']; $area = $_POST['area'];   $up = mysqli_query($conn, "UPDATE interface SET descricao='$descricao', altura_latao='$altura', area_latao='$area' WHERE id=$id");    if(mysqli_affected_rows($conn) > 0){   echo '<center><h1><b>Sucesso</b></h1><br /> <h2>Atualizado!</h2></center>';   header("Refresh: 2;url=equipamentos.php"); }else{     echo '<center><h1><b>Erro</b></h1><br /> <h2>Não foi atualizado!</h2></center>';   header("Refresh: 2;url=altera.php"); }   mysqli_close($conn); ?> Do jeito que esta eu consigo alterar o id=22, mas não consegui pegar o id da linha sequente;
       
       
    • Por rogfranz
      Olá pessoal! Então, estou desenvolvendo um projeto que pode tomar grandes proporções, e estou com uma dúvida que está me tirando o sono!

      Digamos que trata-se de um sistema de pedidos só pra usar como exemplo.

      Vários usuários vão poder se cadastrar no sistema e criar seus pedidos.

      Teremos então as tabelas

      usuarios
      pedidos
      pedido_itens
       
       
      minha dúvida está na seguinte questão.
      Uso bancos de dados separados para cada cliente ?  
      ou
      Uma tabela por exemplo dos pedidos vinculo o id do usuário para todos usuários do sistema ?

      POR FAVOR! Me Deem a opinião do que vocês fariam! e Por que!

      Trazendo para a realidade do meu projeto uma estimativa de volume de dados que eu imagino.
      Levando em conta que um usuário pode cadastrar a média de 10 "pedidos" no mês com aproximadamente 500 ítens

      Agradeço muito a contribuição de vocês!
    • Por LuanMartinsTI
      Tenho o seguinte problema, eu preciso dar um select em duas tabelas, ou ter dois selects tanto faz, eu fiz com inner join e com union all mas nao consigo ter o resultado que eu desejo
      O problema é o seguinte> Pra saber quantos usuarios eu tenho em cada grupo eu preciso dar um select na membros grupo com o id do grupo, mas eu preciso mostrar apenas os 5 primeiros grupos com mais gente, eu nao tenho na tabela falando grupo 1 tem 50 membros, eu tenho 50 linhas com grupo 1 e id do usuario, como eu transformo isso no que eu quero? a unica forma q eu pensei é criar um campo novo em grupos e colocar la o resultado de rowCount, mas gostaria de saber se é possivel fazer sem, eu ja consigo mostrar quantos usuarios cada grupo tem, eu nao consigo mostrar é em ordem e nao é so dar o asc o problema é na logica provavelmente, mas se for possivel resolver isso com uma unica query ficarei grato
      tabela 1
      grupos( id nome dono created stat ) tabela 2
      membros_grupo( id grupo_id user_id )  
      PHP
      public function ultimosGrupos($limite){ try { $query = "SELECT * FROM groups ORDER BY id ASC LIMIT :limite"; $this->Select = $this->Conn->prepare($query); $this->Select->bindParam(':limite' , $limite, PDO::PARAM_INT); $this->Select->execute(); if($this->Select->rowCount() > 0){ return $this->Select->fetchAll(PDO::FETCH_ASSOC); }else{ return FALSE; } } catch (PDOException $exc) { exibeMensagens("Erro ao consultar. {$exc->getMessage()}", WS_ERROR); } } public function users_por_grupo($id){ try { $query = "SELECT * FROM group_memberships WHERE group_id = :id"; $this->Select = $this->Conn->prepare($query); $this->Select->bindParam(':id' , $id, PDO::PARAM_INT); $this->Select->execute(); return $this->Select->rowCount(); } catch (PDOException $exc) { exibeMensagens("Erro ao consultar. {$exc->getMessage()}", WS_ERROR); } }  
    • Por marcossantana10
      Olá, minha dúvida é a seguinte:
       
      Eu faço um cadastro de médico e cada médico tem sua lista de especialidades, que é preenchida no ato do cadastro do médico. Até ai tudo bem..
       
      O problema é que na hora de fazer a página de Editar o registro desse médico, eu preciso listar todas as especialidades que eu tenho já cadastradas no sistema para caso o cara deseje inserir uma nova especialidade pra aquele médico. Eu consigo listá-las numa boa dentro do formulário de edição de registro, mas, gostaria de deixar o checkbox marcado com aquelas que ele já atende, conforme exemplo:
       

       
      Porém, esse registro do exemplo acima tem uma lista com duas especialidades (Urologia e Cardiologia), mas o checkbox só tá marcando uma, como se não tivesse percorrendo o vetor que armazena os resultados.
       
      Segue código:

      Consultas a tabela de todas as especialidades e a tabela das especialidades que já estão contidas no cadastro daquele médico
       
      E aqui o HTML/PHP:

    • Por wolf_black
      preciso Escrever um algoritmo que leia três notas, calcule e imprima a média aritmética.
       
      #include <stdio.h>
      #include <stdlib.h>
      main () {
      float n1,n2,n3,media;
      printf(" digite a primeira nota");
      scanf("%f" & n1);
      printf("digite a segunda nota"); 
      scanf("%f" & n2);
      printf("digite a terceira nota");
      scanf("%f" & n3);
      media=n1+n2+n3/5;
      printf("a media foi: %f ",media                
      system("pause");
      return 0;
      }
      progama ficou assim mas esat dando o seguinte erros:

      7    14    C:\Users\User\Documents\atividade 2.cpp    [Error] invalid operands of types 'const char [3]' and 'float' to binary 'operator&'
      9    14    C:\Users\User\Documents\atividade 2.cpp    [Error] invalid operands of types 'const char [3]' and 'float' to binary 'operator&'
      11    14    C:\Users\User\Documents\atividade 2.cpp    [Error] invalid operands of types 'const char [3]' and 'float' to binary 'operator&'
      15    1    C:\Users\User\Documents\atividade 2.cpp    [Error] expected ')' before 'system'
       
      agradeço ajuda desde já. obrigada
       
×

Informação importante

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