Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;
}
}
?>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.
>
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;
}
}
?>@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:
O erro está nesse trecho abaixo.
Original: