2015-10-22 12:06:49 +00:00
< ? php
class DataBase {
/* ATTRIBUTS */
private $host ;
private $dbname ;
private $username ;
private $password ;
2015-10-22 16:55:26 +00:00
private $pdo ;
2015-10-22 12:06:49 +00:00
public function __construct ( $host , $dbname , $username , $password ){
2015-10-22 16:55:26 +00:00
$this -> host = $host ;
$this -> dbname = $dbname ;
$this -> username = $username ;
$this -> password = $password ;
// password: Qt358nUdyeTxLDM8
$this -> pdo = new PDO ( 'mysql:host=' . $host . ';dbname=' . $dbname , $username , $password );
2015-10-22 12:06:49 +00:00
}
2015-10-22 16:55:26 +00:00
/*********************************************/
/*** création d'un utilisateur dans la bdd ***/
/*********************************************/
2015-10-22 19:19:52 +00:00
public function creerUtilisateur ( $username , $prenom , $nom , $email , $password , $droits ){
$getLastId = $this -> pdo -> query ( 'SELECT max(`id_utilisateur`) as `id` FROM `utilisateurs`' );
$lastId = ( int ) $getLastId -> fetch ()[ 'id' ];
2015-10-22 16:55:26 +00:00
// on applique une normalisation
$prenom = ucwords ( strtolower ( $prenom ) ); // majuscule à chaque mot sinon minuscule
$nom = strtoupper ( $nom ); // nom en majuscules
$email = strtolower ( $email ); // email en minuscules
$password = sha1 ( $password ); // on hash le password
$req = $this -> pdo -> prepare ( " INSERT INTO `utilisateurs`(`id_utilisateur`, `pseudo`, `prenom`, `nom`, `email`, `password`, `droits`) VALUES(default, :pseudo, :prenom, :nom, :email, :password, :droits) " );
$req -> execute ( array (
':pseudo' => mysql_escape_string ( $username ),
':prenom' => mysql_escape_string ( $prenom ),
':nom' => mysql_escape_string ( $nom ),
':email' => mysql_escape_string ( $email ),
':password' => mysql_escape_string ( $password ),
':droits' => mysql_escape_string ( $droits )
));
2015-10-22 19:19:52 +00:00
$added = ( int ) $this -> pdo -> lastInsertId ();
2015-10-22 16:55:26 +00:00
2015-10-22 19:19:52 +00:00
if ( $added > $lastId ) // si on a bien ajouté un entrée
2015-10-22 16:55:26 +00:00
return 'success' ;
else
return 'error' ;
}
/****************************************/
/*** création d'un groupe dans la bdd ***/
/****************************************/
2015-10-22 19:19:52 +00:00
public function creerGroupe ( $nom ){
$getLastId = $this -> pdo -> query ( 'SELECT max(`id_groupe`) as `id` FROM `groupes`' );
$lastId = ( int ) $getLastId -> fetch ()[ 'id' ];
// on applique une normalisation
$nom = strtoupper ( $nom ); // nom en majuscules
$req = $this -> pdo -> prepare ( " INSERT INTO `groupes`(`id_groupe`, `nom`) VALUES(default, :nom) " );
$req -> execute ( array (
':nom' => mysql_escape_string ( $nom )
));
// echo var_dump( $this->pdo->errorInfo() ).'<br>';
$added = ( int ) $this -> pdo -> lastInsertId ();
var_dump ( $this -> pdo -> lastInsertId ());
if ( $added > $lastId ) // si on a bien ajouté un entrée
return 'success' ;
else
return 'error' ;
}
/******************************************************/
/*** ajout d'un utilisateur à un groupe dans la bdd ***/
/******************************************************/
public function ajouterUtilisateurGroupe ( $utilisateur , $groupe ){
// on cherche un utilisateur avec ce pseudo
$getUtilisateurUID = $this -> pdo -> prepare ( " SELECT `id_utilisateur` FROM `utilisateurs` WHERE `pseudo` = :username " );
$getUtilisateurUID -> execute ( array (
':username' => $utilisateur
));
// si on trouve, on le définit, sinon on retourne "unknown_user"
if ( $utilisateurUID = $getUtilisateurUID -> fetch ()[ 'id_utilisateur' ] )
$utilisateurUID = ( int ) $utilisateurUID ;
else
return 'unknown_user' ;
2015-10-22 16:55:26 +00:00
2015-10-22 19:19:52 +00:00
// on cherche un groupe avec ce nom
$getGroupeUID = $this -> pdo -> prepare ( " SELECT `id_groupe` FROM `groupes` WHERE `nom` = :nom " );
$getGroupeUID -> execute ( array (
':nom' => $groupe
));
// si on trouve, on le définit, sinon on retourne "unknown_group"
if ( $groupeUID = $getGroupeUID -> fetch ()[ 'id_groupe' ] )
$groupeUID = ( int ) $groupeUID ;
else
return 'unknown_group' ;
// si on a l'UID utilisateur & l'UID groupe => on créé l'association
$asso = $this -> pdo -> prepare ( " INSERT INTO `association_utilisateur_groupe`(`id_utilisateur`, `id_groupe`) VALUES( (SELECT `id_utilisateur` FROM `utilisateurs` WHERE `id_utilisateur` = :utilisateur), (SELECT `id_groupe` FROM `groupes` WHERE `id_groupe` = :groupe) ) " );
$asso -> execute ( array (
':utilisateur' => $utilisateurUID ,
':groupe' => $groupeUID
));
return 'success' ;
}
/******************************************************/
/*** retourne la liste des utilisateurs d'un groupe ***/
/******************************************************/
public function listeUtilisateurGroupe ( $groupe ){
// on cherche un groupe avec ce nom
$getGroupeUID = $this -> pdo -> prepare ( " SELECT `id_groupe` FROM `groupes` WHERE `nom` = :nom " );
$getGroupeUID -> execute ( array (
':nom' => $groupe
));
// si on trouve pas le groupe, on retourne "unknown_group"
if ( ! ( $groupeUID = $getGroupeUID -> fetch ()[ 'id_groupe' ]) )
return 'unknown_group' ;
// si le groupe existe => on créé récupère ses utilisateurs
$asso = $this -> pdo -> prepare ( " SELECT `u`.`pseudo`, `u`.`prenom`, `u`.`nom`, `u`.`email`, `u`.`droits` " .
" FROM `utilisateurs` as `u`, `groupes` as `g`, `association_utilisateur_groupe` as `asso` " .
" WHERE `u`.`id_utilisateur` = `asso`.`id_utilisateur` " .
" AND `g`.`id_groupe` = `asso`.`id_groupe` " .
" AND `g`.`nom` = :groupe " .
" ORDER BY `u`.`pseudo` " );
$asso -> execute ( array (
':groupe' => $groupe
));
$userlist = $asso -> fetchAll ();
if ( count ( $userlist ) == 0 ) // si résultat vide
return 'empty' ;
else
return $userlist ; // sinon on retourne le tableau
}
2015-10-22 16:55:26 +00:00
2015-10-22 12:06:49 +00:00
}
2015-10-22 16:55:26 +00:00
$db = new DataBase ( " localhost " , " sid " , " php " , " Qt358nUdyeTxLDM8 " );
2015-10-22 12:06:49 +00:00
?>