Update d'une BDD (MySQL)
Résolu/Fermé
Mouch89
Messages postés
109
Date d'inscription
mercredi 6 janvier 2010
Statut
Membre
Dernière intervention
11 avril 2013
-
Modifié par Mouch89 le 2/08/2011 à 09:45
Mouch89 Messages postés 109 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 avril 2013 - 2 août 2011 à 11:17
Mouch89 Messages postés 109 Date d'inscription mercredi 6 janvier 2010 Statut Membre Dernière intervention 11 avril 2013 - 2 août 2011 à 11:17
A voir également:
- Update d'une BDD (MySQL)
- Windows update bloqué - Guide
- Asus live update - Télécharger - Utilitaires
- Mysql community server - Télécharger - Bases de données
- Windows update 0x80070643 - Accueil - Windows
- Winget update - Guide
4 réponses
dariumis
Messages postés
571
Date d'inscription
mardi 16 mars 2010
Statut
Membre
Dernière intervention
18 avril 2018
63
Modifié par dariumis le 2/08/2011 à 10:22
Modifié par dariumis le 2/08/2011 à 10:22
salut, tu peux mettre tous le code du fichier, notamment quant tu déclare PDO, et puis tu ouvre bien ta session dans ce fichier???
Mouch89
Messages postés
109
Date d'inscription
mercredi 6 janvier 2010
Statut
Membre
Dernière intervention
11 avril 2013
7
Modifié par Mouch89 le 2/08/2011 à 10:34
Modifié par Mouch89 le 2/08/2011 à 10:34
C'est encore du local :)
Mais oui, je peux vous en mettre un peu plus !
(c'est assez illisible, désolé :p)
Ca suffit ? J'ai encore du HTML, quelques formulaires, etc en dessous mais je pense pas que ça vous intéresse :)
Mais oui, je peux vous en mettre un peu plus !
(c'est assez illisible, désolé :p)
<?php session_start(); $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=xxxxx', 'root', '', $pdo_options); function hacher($pass) { $prefixe = 'xxxxxxxxxxxxxxxxxxxxxx'; $suffixe = 'xxxxxxxxxxxxxxxxxxxxxx'; //on hache (avec un mix md5, sha1) après avoir salé. impossible maintenant de retrouver les mots de passe d'origine (sans avoir le code source en tout cas) $pass = md5(sha1($prefixe).$pass.sha1($suffixe)); return $pass; } if (isset($_POST['paypal']) && isset($_POST['verifpaypal'])) { if (($_POST['paypal'] == '') || ($_POST['verifpaypal'] == '')) $erreur = 'Le changement d\'adresse a échoué. Au moins un des champs est vide.'; else { if($_POST['paypal'] != $_POST['verifpaypal']) $erreur = 'Le changement d\'adresse a échoué. Les adresses mail ne sont pas identiques.'; else { if(!(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['paypal']))) $erreur = 'Le changement d\'adresse a échoué. Votre adresse mail n\'est pas valide.'; else { try { $req = $bdd->prepare('UPDATE membres SET mail_paypal = ? WHERE pseudo = ?'); $req->execute(array($_POST['paypal'], $_SESSION['pseudo'])); $req->closeCursor(); $reussite = 'La chagement d\'adresse sera effectif dès que vous cliquerez sur le lien de validation que vous avez allez recevoir par mail dans quelques instants.'; } catch(Exception $e) { // En cas d'erreur précédemment, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } } } } } else if (isset($_POST['mdp']) && isset($_POST['nouvmdp']) && isset($_POST['verifnouvmdp'])) { if (($_POST['mdp'] == '') || ($_POST['nouvmdp'] == '') || ($_POST['verifnouvmdp'] == '')) $erreur = 'Le changement de mot de passe a échoué. Au moins un des champs est vide.'; else { if($_POST['nouvmdp'] != $_POST['verifnouvmdp']) $erreur = 'Le changement de mot de passe a échoué. Le nouveau mot de passe et sa vérification ne sont pas identiques.'; else { try { $req = $bdd->prepare('SELECT pass FROM membres WHERE pseudo= ?'); $req->execute(array($_SESSION['pseudo'])); $donnees = $req->fetch(); $req->closeCursor(); } catch(Exception $e) { // En cas d'erreur précédemment, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } if (strlen($_POST['mdp']) < 6) $erreur = 'Le changement de mot de passe a échoué. Votre nouveau mot de passe est trop court. Comptez un minimum de 6 caractères'; else{ if($donnees['pass'] != hacher($_POST['mdp'])) $erreur = 'Le changement de mot de passe a échoué. Le mot de passe actuel rentré est incorrect.'; else { try { $req = $bdd->prepare('UPDATE membres SET pass = ? WHERE pseudo = ?'); $req->execute(array(hacher($_POST['mdp']), $_SESSION['pseudo'])); $req->closeCursor(); $reussite = 'Le chagement de mot de passe a eu lieu. Vous pouvez dès maintenant utiliser votre nouveau mot de passe.'; } catch(Exception $e) { // En cas d'erreur précédemment, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } } } } } } ?>
Ca suffit ? J'ai encore du HTML, quelques formulaires, etc en dessous mais je pense pas que ça vous intéresse :)
Mouch89
Messages postés
109
Date d'inscription
mercredi 6 janvier 2010
Statut
Membre
Dernière intervention
11 avril 2013
7
2 août 2011 à 11:06
2 août 2011 à 11:06
Après avoir mis des echo un peu partout, je crois que le pb vient de ma fonction hacher...
Visiblement, tout les retours de cette fonction donnent la même chaine de 32 caractères... étrange ?
Visiblement, tout les retours de cette fonction donnent la même chaine de 32 caractères... étrange ?
Mouch89
Messages postés
109
Date d'inscription
mercredi 6 janvier 2010
Statut
Membre
Dernière intervention
11 avril 2013
7
2 août 2011 à 11:17
2 août 2011 à 11:17
A y'est, j'ai trouvé le problème :)
Je demandais de changer le pass avec la valeur de $_POST['mdp'], sauf que cette dernière, c'est justement le mot de passe actuel (une vérification dans le formulaire de changement).
En fait, fallait prendre $_POST['nouvmdp'] ! Erreur d'inattention !
Je demandais de changer le pass avec la valeur de $_POST['mdp'], sauf que cette dernière, c'est justement le mot de passe actuel (une vérification dans le formulaire de changement).
En fait, fallait prendre $_POST['nouvmdp'] ! Erreur d'inattention !