1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
<?php
/**
*
* Auteur : *** ***
* Aka : G4llic4
* Courriel : g4llic4@gmail.com
*
* Fichier : compte.php
*
* Classe : compte
* Objectif : gérer la creation et l'authentification d'un compte vers
* une base de données.
*
*/
class compte {
private $nom_utilisateur;
private $mot_de_passe;
private $compte_bdd_connexion;
public function __construct() {
$informations_bdd = $this->recupererInformationsBDD();
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
try {
$this->compte_bdd_connexion = new PDO(
$informations_bdd['type']
.':host='.$informations_bdd['hote']
.';dbname='.$informations_bdd['nom'],
$informations_bdd['identifiant'], $informations_bdd['mot_de_passe'],
$pdo_options
);
}
catch (Exception $e) {
die('Erreur : ' . $e->getMessage());
}
}
/**
* Recupere les informations de connexion � la base de données depuis un fichier source.
* Fichier source : ./informations-bdd
*/
private function recupererInformationsBDD() {
$informations_bdd =
//Combine deux tableaux (indices+valeurs)
array_combine
(
/*Tableau des cles/indices*/
array('type', 'hote', 'nom', 'identifiant', 'mot_de_passe'),
/*Tableau des valeurs*/
//Filtre du tableau via la fonction utilisateur TriTab
array_filter
(
//Applique la fonction trim au tableau renvoyé par le file
array_map
(
'trim',
file('../modules/informations-bdd')
),
array($this,$TriTab)
)
);
return $informations_bdd;
}
public function TriTab($str){
return strpos($str, '#') !== 0 AND strlen($str) > 0;
}
public function creer($login, $mdp) {
$this->nom_utilisateur = $login;
$this->mot_de_passe = $mdp;
$requete_preparee = $this->preparerRequeteInsertion();
$this->executerRequeteInsertion($requete_preparee);
}
private function preparerRequeteInsertion() {
$requete_preparee = $this->compte_bdd_connexion->prepare('
INSERT INTO user (user_name, user_password)
VALUES (:pseudo, :mdp)
');
return $requete_preparee;
}
private function executerRequeteInsertion($requete_preparee) {
$requete_preparee->execute(array(
'pseudo' => $this->nom_utilisateur,
'mdp' => $this->mot_de_passe
));
}
}
?> |
Partager