Magic quote faire un select mysql qui fonctionne ?

cs_michelmich Messages postés 12 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 16 juillet 2013 - 15 juil. 2013 à 17:52
nicotontige Messages postés 28 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 8 octobre 2013 - 16 juil. 2013 à 12:14
bonjour,
problème tout bête, mais je ne suis pas doué :
dans une table MEMBRE j'ai par exemple pass = a'"é^
évidemment, si je fais select pseudo from MEMBRE where pass = $pass, ça ne marche pas !
comment je fais pour qu'il me trouve bien a'"é^ ? ( sachant que tout doit fonctionner, comme ceux qui vont mettre un pass du genre ""' , bref tout un tas de caractères à la noix.)
merci !

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
15 juil. 2013 à 18:24
Bonjour,

Pourquoi ne pas faire un MD5 du mot de passe, regardes aussi du coté de la fonction http://www.php.net/manual/fr/function.mysql-real-escape-string.php

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
cs_michelmich Messages postés 12 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 16 juillet 2013
16 juil. 2013 à 09:54
merci henry,
j'ai essayé ça, mais ça ne marche pas :


$Pass = mysql_real_escape_string($Pass);
$sql="select PRID from membre where Email = '$Email' and pass = '$Pass'";

si $Pass contient des guillemets par exemple, ça ne marche pas.
Par quoi dois je remplacer cette ligne : ?
$Pass = mysql_real_escape_string($Pass);

merci
0
cs_michelmich Messages postés 12 Date d'inscription jeudi 26 mars 2009 Statut Membre Dernière intervention 16 juillet 2013
16 juil. 2013 à 10:00
j'ai essayé ça aussi, mais ça ne marche pas non plus :
$Pass = addslashes($Pass);
0
nicotontige Messages postés 28 Date d'inscription mardi 25 octobre 2005 Statut Membre Dernière intervention 8 octobre 2013 2
16 juil. 2013 à 12:14
Bonjour,

Tu n'as pas compris NHenry apparement.
Dans tous les cas, il ne faut pas garder les mots de passe en clair dans une base !
le mieux est de transformer le mot de passe en md5 :
md5($pass);

et quand tu vérifies connection de l'utilisateur :
if (md5($pass_donne) == $pass_renregistrer) ? ok : pas_ok;
0
Rejoignez-nous