Bonjour,
J'utilise pour la première fois PDO.
J'ai compris que les requêtes préparées sécurisées des injections SQL.
j'utilise le code suivant pour modifier un mot de passe d'un utilisateur:
J'ai 2 questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 try{ $DB = new PDO('pgsql:host=localhost;dbname=local', 'postgresSQL', 'password'); //afficher les erreurs car PDO n'affiche pas les erreurs par défaut $DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ echo 'La base de données n\'est pas disponible pour le moment.<br/>'; } $sql='update administration set mdp=:mdp where login=:login'; $req=$DB->prepare($sql); $req->execute(array( 'login' => $_SESSION['login'], 'mdp' => $_POST['nouveau_mdp'] )); $retour=$req->fetch(PDO::FETCH_ASSOC); echo('Modification du mot de passe effectuée<br/>');
1 Le code est-il sécurisé (passer des _SESSION ou $_POST en variable à la reqête préparée ne pose pas problème)?
2 Si je mets via un formulaire le mot de passe : "l'arc" je m'attendais à voir dans la base "l\'arc" et que le ' soit échappé par PDO. Or dans la base je vois "l'arc". Est-ce normal ?
Merci
Partager