Page 1 sur 1

probleme mysql_real_escape_string

Posté : 17 mai 2007, 14:43
par mat24
Bonjour!
j'essaie de peaufiner un peu la maniere de securiser mes données
et j'essaie sur une fonction simple d'utiliser la desactivation des magic quotes
ainsi que la fonction mysql real escape

jusque la j'ai bien compris l'utilisation
par contre ça ne fonctionne pas du tout !
lorsque j'utilises mysql_real... on dirait qu'aucune variable ne passe, elles sont vides donc rien ne fonctionne
si j'enleve la fonction mysql_real... tout marche et les variables sont bien remplies!!!! :shock:

pourquoi ? j'ai du oublier quelque chose ??
 
fix_magic_quotes();
 $lo = mysql_real_escape_string($_POST['login']);
 $pa = mysql_real_escape_string($_POST['pass']);
  log_cl($lo,$pa);

Posté : 17 mai 2007, 14:54
par jojolapine
Bonjour,
que fait la fonction $log_cl() ?
Ensuite essaye ceci:
fix_magic_quotes();
echo '$_POST[\'login\']='.$_POST['login'].'<br />';
echo '$_POST[\'pass\']='.$_POST['pass'].'<br />';

 $lo = mysql_real_escape_string($_POST['login']);
 $pa = mysql_real_escape_string($_POST['pass']);

echo '$lo='.$lo.'<br />';
echo '$pa='.$pa.'<br />';
  log_cl($lo,$pa);
Et dis nous ce que ça donne...
Pour finir la fonction mysq_real_escape_string() à besoin que le script soit déjà connecté à mysql pour pouvoir fonctionner correctement, car elle échappe le contenu des variables différemment selon la version de mysql, c'est paramètre, etc...

Posté : 17 mai 2007, 15:04
par mat24
Ok j'ai compris....

il faut lancer le mysqlescape aprés connection à la base en fait !!!
comme je le lance avant puisque c'est la fonction log_cl qui gere la connection et tout le reste ça ne fonctionne pas !!

j'ai donc fait :




fix_magic_quotes();
 $lo = $_POST['login'];
 $pa = $_POST['pass'];
 
  log_cl($lo,$pa);

puis dans la fonction log_cl
$conn = mysql_connect($host, $user, $pass) OR DIE ('Erreur :'.mysql_error()); 
					mysql_select_db ($db,$conn) OR DIE ('Erreur :'.mysql_error()); 
					$login=mysql_real_escape_string($login);
					$pass=mysql_real_escape_string($pass);
					$rech= "SELECT login, pass FROM tbl_priv WHERE login='".$login."'";
					$req=  mysql_query($rech) or die('Erreur SQL !<br>'.$rech.'<br>'.mysql_error());
		

j'ai bon :?:


merci jojolapin :lol:

Posté : 17 mai 2007, 15:09
par jojolapine
ben c'est à toi de me dire si c'est bon ... :roll:
ça fonctionne ? bon ben parfait ==> roulez jeunesse!!!

Posté : 17 mai 2007, 15:11
par mat24
Bon ça fonctionne alors ;)
merci encore ... :lol: