Ir para conteúdo

POWERED BY:

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 permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

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