problem avec mysql_real_escape_string

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problem avec mysql_real_escape_string

par marcello2 » 20 juin 2008, 10:54

C'est fait

par Truc » 20 juin 2008, 09:52

Modération :
marcello2, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par marcello2 » 19 juin 2008, 19:16

Merci katagoto :)

par katagoto » 19 juin 2008, 18:42

uniquement pour celles dont tu va te servir pour tes requêtes, pour les autres, un html specialchars() suffira 8-)

par marcello2 » 19 juin 2008, 17:32

Pigé.
Faut-il utiliser mysql_real_escape_string sur toutes mes variables string ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par katagoto » 19 juin 2008, 15:46

Il faut que ta connexion soit ouverte avant d'utiliser ces fonctions, c'est là qu'il y a un problème...

par marcello2 » 19 juin 2008, 14:47

Message reçu truc.
C'est beaucoup plus lisible effectivement.

par Truc » 19 juin 2008, 14:31

Modération :
marcello2, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

par marcello2 » 19 juin 2008, 14:21

Oui. voila mon script complet habituel.

<?php
//appel des header pour bloquer le cache
require_once('blocageCache.php'); 
//active les sessions
session_start(); 
//récupération des variables envoyées par Flash
if(isset($_POST['login'])) $login= utf8_decode($_POST['login']); else $login="inconnu";
if(isset($_POST['secret'])) $secret= utf8_decode($_POST['secret']); else $secret="inconnu";
$login=addslashes($login);
$secret=addslashes($secret);



//--------------FONCTIONS 
function envoi($var, $val){
echo "&".$var."=".utf8_encode($val);
}
//--------CONNEXION ET SELECT BASE ------------
require_once('Connections/connexionLogin.php'); 
mysql_select_db("maBase");

//---------RECUP DES INFOS (depuis la table )
$query_rs = "SELECT * FROM utilisateurs WHERE login='$login' ";
$rs = mysql_query($query_rs, $connexionLogin) or die(mysql_error());
$row_rs = mysql_fetch_assoc($rs);
$total_rs=mysql_num_rows($rs);
//---------TEST DE D'EXISTENCE ET DE CONCORDANCE LOGIN/PWD
if(($secret == $row_rs['secret'])&&($total_rs!=0)){
//test si le controle du mot de passe est ok
$_SESSION['login']=$login;
//mémorise le login de l'utilisateur en session
envoi("retour","ok");
$idUtilisateur = $row_rs['idUtilisateur'];
$_SESSION['idUtilisateur']=$idUtilisateur;
envoi("idUtilisateur",$idUtilisateur);
$produit=$row_rs['produit'];
envoi("produit",$produit);
//envoie la confirmation de l'authentification à l'application Flash 
}
else
{
envoi("retour","pb");
//dans le cas contraire, un message d'erreur est renvoyé à l'application Flash
}

?>

J'ai simplement voulu remplacer
$login=addslashes($login);
$secret=addslashes($secret);

par

$login=mysql_real_escape_string($login);
$secret=mysql_real_escape_string($secret)  
pour me protéger d'une injection sql.
Mais je n'arrive plus à me connecter.

par katagoto » 19 juin 2008, 13:25

T'es-tu connexté à MySQL au début du script ???

problem avec mysql_real_escape_string

par marcello2 » 19 juin 2008, 12:37

J'ai ajouté mysql_real_escape_string et mon script d'authentification ne marche plus

if(isset($_POST['login'])) $login= utf8_decode($_POST['login']); else $login="inconnu";
if(isset($_POST['secret'])) $secret= utf8_decode($_POST['secret']); else $secret="inconnu";
$login=mysql_real_escape_string($login);
$secret=mysql_real_escape_string($secret)


Merci de votre aide.