Problème mysql_real_escape_string php
Résolu
dallap
-
dallap -
dallap -
Bonjour,
Sur mon site, l'utilisateur est invité a choisir un password lors de l'inscription puis d'aller à l'étape suivante. Il n'y a pas de requete à ce moment la mais j'aimerais sécuriser le mot de pass et le mettre dans une variable session pour la prochaine étape.
Voici mon code:
malheuresement je n'ai pas encore de connexion mysql ouverte et j'ai le message suivant:
que dois-je faire? Ouvrir la connexion mysql même si je n'insère aucune données (ce sera juste pour sécuriser le mot de passe) ou avez vous une autre solution?
merci! :)
Sur mon site, l'utilisateur est invité a choisir un password lors de l'inscription puis d'aller à l'étape suivante. Il n'y a pas de requete à ce moment la mais j'aimerais sécuriser le mot de pass et le mettre dans une variable session pour la prochaine étape.
Voici mon code:
if( isset($_POST['password'])) $_SESSION['password'] = mysql_real_escape_string(stripslashes(md5($_POST['password'])));
malheuresement je n'ai pas encore de connexion mysql ouverte et j'ai le message suivant:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /homez.221.... on line 51
que dois-je faire? Ouvrir la connexion mysql même si je n'insère aucune données (ce sera juste pour sécuriser le mot de passe) ou avez vous une autre solution?
merci! :)
A voir également:
- Problème mysql_real_escape_string php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
3 réponses
salut,
oui cette fonction ne marche qu'avec la connexion mysql ouverte. Et déjà ta question (ton code) n'a pas de sens car la fonction mysql_real_escape_string sert à éviter d'exécuter un code sql présent dans une variable qui peut figurer dans une requête sql. Il y a donc forcement connexion à la base de donnée pour lancer la requête. Je crois que tu n'as pas bien compris ce qu'est l'injection sql.
structure: langage php > langage sql
donc le probleme est du au fait que php exécute un code sql, on peut donc
modifier le code sql par les variables php (injection).
Les fonctions php ne présentent pas de problème du à l'introduction du code dans une variable (si l'on ne fait pas appel à "eval()" qui exécute le code )
d'où ton mysql_real_escape_string ne sert à rien s'il n'y a pas de requête sql
@+
oui cette fonction ne marche qu'avec la connexion mysql ouverte. Et déjà ta question (ton code) n'a pas de sens car la fonction mysql_real_escape_string sert à éviter d'exécuter un code sql présent dans une variable qui peut figurer dans une requête sql. Il y a donc forcement connexion à la base de donnée pour lancer la requête. Je crois que tu n'as pas bien compris ce qu'est l'injection sql.
structure: langage php > langage sql
donc le probleme est du au fait que php exécute un code sql, on peut donc
modifier le code sql par les variables php (injection).
Les fonctions php ne présentent pas de problème du à l'introduction du code dans une variable (si l'on ne fait pas appel à "eval()" qui exécute le code )
d'où ton mysql_real_escape_string ne sert à rien s'il n'y a pas de requête sql
@+
Si je comprends bien la formule, ce n'est pas le mot de passe qui est stocké dans la variable de session, mais son empreinte MD5.
Le fonction md5 renvoie une chaîne de caractères tous compris dans [0-9 a-z A-Z + /]; par conséquent, ni mysql_real_escape_string, ni stripslashes ne devraient être nécessaires. Tu devrais pouvoir directement écrire sans risque:
Le fonction md5 renvoie une chaîne de caractères tous compris dans [0-9 a-z A-Z + /]; par conséquent, ni mysql_real_escape_string, ni stripslashes ne devraient être nécessaires. Tu devrais pouvoir directement écrire sans risque:
$_SESSION['password'] = md5($_POST['password']);