Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1474 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  equivalence mysql_escape_string en PDO

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

equivalence mysql_escape_string en PDO

n°2252725
fefers
Posté le 09-03-2015 à 21:50:03  profilanswer
 

Bonjour à tous.    
 
Mes compétences informatique sont presque inexistante en PHP comme quasiment partout ailleurs dans le langage informatique. :(  
 
Je me suis balader de forum en forum pour essayer d'aboutir à Un objectif qui ne marche plus avec Mysql  5.6.17 pou la quel je vous en pris de m'aider.
J'aimerais s'il vous plait, trouver l'eqivalence cet petit bloque de code en PDO.
 
 
        $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $data = mysql_fetch_array($req);
        if ($data[0] == 0) {
       $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'" )';
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
 
Merci beaucoup

mood
Publicité
Posté le 09-03-2015 à 21:50:03  profilanswer
 

n°2252727
masklinn
í dag viðrar vel til loftárása
Posté le 09-03-2015 à 22:23:09  profilanswer
 

L'équivalent c'est de surtout pas faire ton escaping à la main (en notant que t'es censé utiliser mysql_real_escape_string quand tu fais ça).
 
La manière correcte de le faire en PDO c'est

Code :
  1. $query = $conn->prepare("SELECT count(*) FROM member WHERE login=?" );
  2. $query->execute(array($_POST['login']));
  3. $data = $query->fetchAll();


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2252728
scvo0ne
Posté le 09-03-2015 à 22:31:39  profilanswer
 

Ouch
 
Regarde de ce côté : http://php.net/manual/fr/pdo.prepare.php
 
Ca va donner un truc du genre. Pas dit que ca marche j'utilise plus directement pdo depuis longtemps
 

Code :
  1. $bdd = new PDO(blablabla); // connexion
  2. $login = $_POST['login'];
  3. $pass = md5($_POST['pass']);
  4. $req = $bdd->prepare('count(*) FROM membre WHERE login=?');
  5. $req->execute(array($login));
  6. if ( 0 == $req->rowCount() ) { 
  7. $req2 = $bdd->prepare('INSERT INTO membre(login,pass) VALUES(?,?)'); //
  8. $req2->execute(array($login,$pass));
  9. ....
  10. }


 
 
Utiliser du MD5 en 2015 faut oser. password_hash() et bcrypt c'est tout aussi simple à utiliser.
 
edit : grillé


Message édité par scvo0ne le 09-03-2015 à 22:32:28
n°2253391
fefers
Posté le 16-03-2015 à 20:19:36  profilanswer
 

Bonjour à tous
Avant tout je vous pris m'excuse pour mon absence et mes remerciment a tous ceux qui ont participé a ma question. Mais je pense que je vais me remettre à la théorie, parce que je le sentiment que on peut pas comparer avec PDO la ligne complete de la bd et il faut savoir que MD5 va cripter différemment un même mot passe pour deux login différents.
Je reviendrait posté la solution. merci
   
 

n°2253393
scvo0ne
Posté le 16-03-2015 à 20:40:15  profilanswer
 

MD5 n'est plus considéré comme sûr pour les mots de passe. Point barre.
 
Tu peux ajouter le login au mot de passe, le saler, faire ce que tu veux... dis toi qu'une carte graphique actuelle peut tester un voire plusieurs milliards de hashs par seconde. Entre ca, les rainbow tables et les attaques par dictionnaire, soit tu t'estimes expert et tu bricoles une solution "robuste" basée sur MD5, soit tu as l'humilité de lire des docs et d'appliquer les best-practices du moment.
 
 
 
 
 

n°2253395
masklinn
í dag viðrar vel til loftárása
Posté le 16-03-2015 à 20:45:13  profilanswer
 

scvo0ne a écrit :

MD5 n'est plus considéré comme sûr pour les mots de passe.


md5 n'a jamais été considéré comme sûr pour les mots de passe [:aloy] md5crypt a été crée en 1994


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°2253397
fefers
Posté le 16-03-2015 à 20:49:45  profilanswer
 

La plus belle fille ne peut donner plus que ce elle as. Je suis loin d'être un expert, seule utilise ce que j'ai appris, mais en informatique il faut pas dormir, parce que ce de hier est déjà révolu pour une nouveauté.
Merci por tes conseils.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  equivalence mysql_escape_string en PDO

 

Sujets relatifs
Convertir moteur recherche mysql_ en PDOImportation cvs dans mysql
[RESOLU][PHP][MYSQL]requête Mysql (INSERT)[Help] Optimisattion concaténation de string
Mysql exclure double critère[Mysql] Pertinence des résultats avec MATCH / AGAINST
Envoi données vers base mysql[Mysql] DB Mediawiki ne contient plus que hitcounter et searchindex
Aide php mySql 
Plus de sujets relatifs à : equivalence mysql_escape_string en PDO


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR