Ir para conteúdo

Arquivado

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

Carlos Louvato

[Resolvido] ERRO: mysqli_real_escape_string

Recommended Posts

Olá a todos.

Tentei achar o erro em todo site mais não consegui.

Estou fazendo um acesso ao painel administrativo com senha e usuário.

Tive que mudar minha conexão para mysqli_connect e fui corrigindo os erros do código.

Cheguei no erro mysqli_real_escape_string.

Estudei sobre o manual onde solicita colocar 2 parâmetros, sendo que o primeiro seja a conexão. 

Meu código:

 

<?php require_once('Connections/conecta.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysqli_real_escape_string") ? mysqli_real_escape_string($conecta, $theValue) : mysqli_escape_string($conecta, $theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['usuario'])) {
  $loginUsername=$_POST['usuario'];
  $password=$_POST['senha'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "painel.php";
  $MM_redirectLoginFailed = "index.php";
  $MM_redirecttoReferrer = false;
  mysqli_select_db($database_conecta,$conecta);
  
  $LoginRS__query=sprintf("SELECT usuario, senha FROM usuario WHERE usuario=%s AND senha=%s",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysqli_query($LoginRS__query, $conecta) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
	if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;	      

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
<link href="estilos.css" rel="stylesheet" type="text/css">
<div id="index">
  <div class="retorno">
  <p>Área Exclusisiva para Atletas e Professores<br /><br>
  <a href="#">Retornar ao menu principal</a></p>  
  </div>
  <form name="logar" method="POST" action="<?php echo $loginFormAction; ?>">
    <fieldset>
     <legend>Acesso as Inscrições</legend>
     
       <label>
       <span>Usuário</span>
       <input type="text" name="usuario" />
       </label>

       <label>
       <span>Senha</span>
       <input type="password" name="senha" />
       </label>
       <input type="submit" name="logar" value="Logar" class="btn" />
       </fieldset>
       <div class="link">
       <a href="recuperar.php">Recuperar dados</a> | <a href="cadastra.php">Cadastrar usuário</a>
       </div>
  </form>
</div>

Os erros que seguem:

 

Citar

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/copam957/public_html/copa1/index.php on line 52

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home/copam957/public_html/copa1/index.php on line 10

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home/copam957/public_html/copa1/index.php on line 10

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /home/copam957/public_html/copa1/index.php on line 57

 

O que devo estudar para resolver o problema.?

Agradeço a todos.

Carlos Louvato

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu problema está em criar a conexão. Que provavelmente está no seguinte arquivo 

require_once('Connections/conecta.php');

Outro ponto é que utilizando prepared statements, a função mysqli_real_escape_string se torna obsoleta.

 

Tudo que você precisa saber sobre SQL Injections, você pode localizar no seguinte artigo:

https://phpdelusions.net/sql_injection

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, Gabriel Heming disse:

Seu problema está em criar a conexão. Que provavelmente está no seguinte arquivo 


require_once('Connections/conecta.php');

Outro ponto é que utilizando prepared statements, a função mysqli_real_escape_string se torna obsoleta.

 

Tudo que você precisa saber sobre SQL Injections, você pode localizar no seguinte artigo:

https://phpdelusions.net/sql_injection

 

OLá, Minha Conexão citada acima é o arquivo conecta.

 

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conecta = "localhost";
$database_conecta = "copam9887_copa1";
$username_conecta = "copam9887_root";
$password_conecta = "145689976";
$conecta = mysqli_connect($hostname_conecta, $username_conecta, $password_conecta) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

Grato Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está o seu erro:

Citar

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in /home/copam957/public_html/copa1/index.php on line 52

 

 

Veja qual é o primeiro parâmetro:

mysqli_select_db($database_conecta,$conecta);

Você está mandando o primeiro parâmetro o nome do banco e o segundo o objeto MySQLi, inverta os parâmetros.

Compartilhar este post


Link para o post
Compartilhar em outros sites
36 minutos atrás, Gabriel Heming disse:

Aqui está o seu erro:

 

Veja qual é o primeiro parâmetro:


mysqli_select_db($database_conecta,$conecta);

Você está mandando o primeiro parâmetro o nome do banco e o segundo o objeto MySQLi, inverta os parâmetros.

 

To apanhando aqui! Final de semana fritando o cêrebro tentando descobrir o erro! Fiz a inversão dos 2 parâmetros.

Citar

mysqli_select_db($conecta, $database_conecta);

 

Ele continua pedindo mais um parâmentro na linha 10.

 

Citar

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home/copam957/public_html/copa1/index.php on line 10

Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in /home/copam957/public_html/copa1/index.php on line 10

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /home/copam957/public_html/copa1/index.php on line 57

 

Estou estudando o manual , mais não consigo descobrir o erro.

Grato Pela ajuda. Carlos Louvato

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função mysqli_real_escape_string() não precisa ser usada se você estiver usando prepared statements.

 

Quanto ao mysqli_query, é um erro comum de quem saiu das funções mysql. Esse manual aqui pode te ajudar:

http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/

 

Outro erro que irá acontecer é que você está misturando funções mysql com mysqli, exatamente nesse código aqui: 

$loginFoundUser = mysql_num_rows($LoginRS);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 04/05/2018 at 11:03, Carlos Louvato disse:

Muito Obrigado pela dica. Funcionando Perfeitamente. 

Poderia mostrar como você fez, como ficou o seu código pois estou com o mesmo prolema !

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 19/03/2018 at 10:36, Gabriel Heming disse:

A função mysqli_real_escape_string() não precisa ser usada se você estiver usando prepared statements.

 

Quanto ao mysqli_query, é um erro comum de quem saiu das funções mysql. Esse manual aqui pode te ajudar:

http://rberaldo.com.br/como-atualizar-php-mysql-mysqli/

 

Outro erro que irá acontecer é que você está misturando funções mysql com mysqli, exatamente nesse código aqui: 


$loginFoundUser = mysql_num_rows($LoginRS);

 

Se a Função mysqli_real_escape_string() não precisa ser usada então como ficaria o código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema.
       
      Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável.
       
      O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista.

      O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD.
       
      Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo:
      ALT+A  para agregar a lista
      ALT+S para salvar a lista de itens desejados.

      Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados.

      Grato,

      Cesar
       
       
       
    • Por violin101
      Caros amigos, saudações.

      Por favor, peço desculpa em recorrer a ajuda dos amigos referente uma dúvida.

      Tenho um Sistema que estou escrevendo em PHP + Codeigniter e a minha dúvida em Codeigniter é:
      Obs.: as tabela são em MySql

      => como faço para IMPORTAR o dado de uma Tabela para outra, as tabela são:
      ___________________Tabela de Pedido     =========== para ==========>    Tabela de Entrada de Lançamentos
      itens: codigoProduto | quantidade | valorUnitario  === importar===> itens: codigoProduto | quantidade | valorUnitario
       
      Estou tentando de várias formas, mas não estou conseguindo.

      Por favor, alguém pode me dar uma ajuda, explicação ou orientação.

      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos, saudações.
       
      Estou com uma pequena dúvida que não estou conseguindo resolver.

      Tenho 2 Tabelas, a 1ª.principal e a 2ª.secundária.

      Exemplo:
      Dados da 1ª Tabela - Peças e Equipamentos
      Dados da 2ª Tabela - Veículos.

      Seria isso:
      0010 - Pneu Aro 20
        [x] 001 - Corsa
        [_] 002 - Fusca
        [_] 003 - Palio
      Comentário:________________
       
      0100 - Óleo para Motor
         [x] 002 - Fusca
         [_] 003 - Palio
      Comentário:________________
       
      1030 - Lubrificante
         [_] 001 - Corsa
         [x] 003 - Palio
      Comentário:________________
       
      O meu problema está sendo quando preciso SALVAR/ATERAR o campo COMENTÁRIO, pois trata-se da 1ª.tabela.
       
      Gostaria salvar o COMENTÁRIO sem interferir nas seleção da 2ª. tabela.
       
      Grato,
       
      Cesar
       
       
       
       
       
    • Por Carcleo
      Estou começando no Laravel 11 e me deparei com um problema de belongsTo
       
      public function listOfClass(Request $request, StudentDisciplineClassroom $sdc) : ?string {         $all = $sdc::select('student')->with('studentRelation')->where('classroom',$request->classroom)->distinct('student')->get();     dd($all->toArray());     $students = [];     foreach ($all as $student) {             $students[] =$student;     }       return response()->json($students)->getContent();     } isso

      Em studentRelation temos na tabela StudentDisciplineClassroom com os campos

      id(chave primaria)
      ra (chave estrangera que referencia o campo academic_registration na tabela de students)

      e a tabela student tem os campos

      id (chave primária)
      academic_registration (que vai ser refeenciada na tabela StudentDisciplineClassroom

      Mas na hora de fazer
      $sdc::select('student')->with('studentRelation')->where('classroom',$request->classroom)->distinct('student')->get();
      O studentRelation retorna nulo

      Onde eu posso estar errando?
    • Por joao b silva
      Tenho uma pequena aplicação em php que gera arquivos pdf com a MPDF e envia email com a PHPMAILER. De repente a app parou de enviar os emails  e apresenta a seguinte mensagem de erro:
       
      Error PHPMailer: SMTP Error: Could not authenticate.
       
      Faço uso de um hotmail para a configuração do PHPMAILER.
×

Informação importante

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