/** * Vérifie un email * @return object 2 attributs, bool success et array string msg */ private function check() { $std = (object) array('success' => false, 'msg' => array()); if (!$_SESSION['user']) { if (($res = Membre::checkPseudo($this->pseudo)) !== true) { $std->msg[] = $res; } if (($res = Membre::checkEmail($this->email)) !== true) { $std->msg[] = $res; } $captcha = new Captcha(); if (($res = $captcha->check($this->captcha)) !== true) { $std->msg[] = $res; } } if (($res = $this->checkSujet($this->sujet)) !== true) { $std->msg[] = $res; } if (($res = $this->checkMessage($this->message)) !== true) { $std->msg[] = $res; } if (empty($std->msg)) { $std->success = true; } return $std; }
function __construct() { if (!isset(self::$database)) { //Connection à la BDD si pas déjà connecté self::$database = BaseDeDonnees::getInstance(); } }
<h2>Test unitaire - ajout utilisateur</h2> <div id="contenu"> <?php $membre = new Membre(); $droits = 0; if (isset($_POST['boutonAjoutUtilisateur'])) { $membre->AjouterUtilisateur($_POST['nomUsager'], $_POST['motPasse'], $_POST['prenom'], $_POST['nom'], $_POST['courriel'], $_POST['descriptionProfil'], $droits); } else { echo "Remplissez tous les champs"; } ?> <form method="post" name="formTestAjoutUtilisateur" enctype="multipart/form-data"> <input type='text' name='nomUsager' value="" placeholder="Choisissez un nom usager"/> <input type='text' name='motPasse' value="" placeholder="Choisissez un mot de passe"/> <input type='text' name='prenom' value="" placeholder="Votre prénom (obligatoire)"/> <input type='text' name='nom' value="" placeholder="Nom de Famille (obligatoire)"/> <input type='text' name='courriel' value="" placeholder="Courriel Electronique (obligatoire)"/> <textarea name='descriptionProfil' placeholder="Description (obligatoire)"></textarea> <h3 class="televersionTexteGestion">Téléversez votre photo profil</h3> <input type="file" name="photoProfil" id="photoProfil" class="fileToUploadGestion"> <span id="erreurPhotoVide" class="erreur"></span><br> <span id="erreurPhotoSize" class="erreur"></span><br> <span id="erreurPhotoType" class="erreur"></span><br> <input class="boutonMoyenne" type='submit' name='boutonAjoutUtilisateur' value='Ajouter'> </form> <span class="erreur"></span>
/** * Constructeur du gestionnaire. * Affecte tous les films de la BD dans le tableau listeFilms * Affecte tous les membres de la BD dans le tableau listeMembres * @param array $tabFiltre : un tableau contenant tous les filtres à appliquer sur le gestionnaire */ public function __construct($tabFiltre = null) { $pdo = myPDO::getInstance(); // Membres $stmt = $pdo->prepare(<<<SQL SELECT id FROM membre ORDER BY id SQL ); $stmt->execute(); while ($lignes = $stmt->fetch()) { $this->listeMembres[] = Membre::createFromID($lignes["id"]); } // Filtres if ($tabFiltre != null) { $this->creeFiltres($tabFiltre); } else { $this->listeFiltres = null; } // Films $stmt = $pdo->prepare(<<<SQL SELECT id FROM film ORDER BY titre SQL ); $stmt->execute(); while ($object = $stmt->fetch()) { $film = Film::createFromID($object["id"], $this); if ($this->listeFiltres != null) { // on a des filtre $respecteFiltre = true; // On les teste tous, un par un. Si un filtre n'est pas respecté, la variable respecteFiltre passe à false et on arrete la boucle for ($i = 0; $i < count($this->listeFiltres) && $respecteFiltre; $i++) { $respecteFiltre = $this->listeFiltres[$i]->accept($film, $this); } if ($respecteFiltre) { // tous les filtres sont respectées $this->listeFilms[] = $film; } } else { // pas de filtre : on accepte tous les films $this->listeFilms[] = $film; } } // Tri des films par moyenne $gest = $this; uasort($this->listeFilms, function ($f1, $f2) use($gest) { $notesMin = $gest->nbNotesMini(); if ($f1->getNbNotes() < $notesMin && $f2->getNbNotes() < $notesMin) { // les deux n'ont pas assez de notes, on compare les moyennes $m1 = $f1->getAverage($gest); $m2 = $f2->getAverage($gest); if ($m2 > $m1) { return 1; } else { if ($m1 > $m2) { return -1; } else { // Egalité des moyennes, comparaison des titres return $f1->getTitre() > $f2->getTitre(); } } } else { if ($f1->getNbNotes() < $notesMin) { return 1; } else { if ($f2->getNbNotes() < $notesMin) { return -1; } else { // les deux ont assez de notes, on compare les moyennes $m1 = $f1->getAverage($gest); $m2 = $f2->getAverage($gest); if ($m2 > $m1) { return 1; } else { if ($m1 > $m2) { return -1; } else { // Egalité des moyennes, comparaison des titres return $f1->getTitre() > $f2->getTitre(); } } } } } }); }
/** * Vérifie la demande de réinitialisation du mot de passe * @param array $param Les attributs de la demande de réinitialisation du mot de passe * @return object 2 attributs, bool success et array string msg */ private function checkResetPassword(&$param) { $std = (object) array('success' => false, 'msg' => array()); $captcha = new Captcha(); if (($res = $captcha->check($param['g-recaptcha-response'])) === true) { if (($res = Membre::checkPass($param['passwordNew'], $param['passwordNewConfirm'])) !== true) { $std->msg[] = $res; } } else { $std->msg[] = $res; } if (empty($std->msg)) { $std->success = true; } return $std; }
<?php include_once 'Admin.class.php'; $membre = new Membre(31); // Contient un pseudo, une adresse e-mail... $maitreDesLieux = new Admin(2); // Contient les mêmes données qu'un membre + la couleur $membre->setPseudo('Arckintox'); // OK $maitreDesLieux->setPseudo('M@teo21'); // OK //$membre->setCouleur('Rouge'); // Impossible (un membre n'a pas de couleur) $maitreDesLieux->setCouleur('Rouge'); // OK
/** * Ajoute un commentaire sur ce film * @param int $membre : l'ID du membre qui ajoute ce Commentaire * @param String $contenu : le contenu du Commentaire * @param boolean $spoiler : ce commentaire est-il un spoiler * @return void */ public function ajoutCommentaire($membre, $contenu, $spoiler = false) { $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL INSERT INTO commentaire (id_film, id_membre, commentaire, spoiler, date_publication) VALUES (:idfilm, :idmembre, :commentaire, :spoiler, now()) SQL ); $stmt->execute(array("idfilm" => $this->id, "idmembre" => $membre, "commentaire" => $contenu, "spoiler" => $spoiler)); $idComm = $pdo->lastInsertId(); $membre_obj = Membre::createFromID($membre); $membre_obj->lireCommentaire($idComm); }
<?php $donnees = $president->getMembre($_GET['id']); $membre = new Membre($donnees); $licence = $president->getMembreLicence($membre->getId()); ?> <div class="membre-container"> <div class="membre-avatar"><span class="glyphicon glyphicon-user"></span></div> <div class="membre-etat-civil"> <p><span class="membre-label">Nom :</span> <?php echo $membre->getNom(); ?> <span class="membre-label">Prénom :</span> <?php echo $membre->getPrenom(); ?> <span class="membre-label">Age :</span> <?php echo $membre->getAge(); ?> </p> </div> </div>
public function statistiques($action, $id, $vars) { switch ($action) { /**** GET ****/ case 'get': $vars['titrePage'] = 'Statistiques'; // <h1> de la page $vars['visites'] = Visite::getStat(); $vars['membres'] = Membre::getStat(); $vars['technotes'] = Technote::getStat(); $vars['commentaires'] = Commentaire::getStat(); $vars['questions'] = Question::getStat(); $vars['reponses'] = Reponse::getStat(); $vars['motsCles'] = MotCle::getStat(); $this->vue->display('admin/statistiques.twig', $vars); exit; default: $this->vue->display('404.twig', $vars); exit; } }
<?php include_once '../../modele/tp_mvc/Membre.class.php'; include_once '../../dao/tp_mvc/MembreDao.class.php'; // Vérification de la validité des informations if ($_POST['motdepasse'] == $_POST['confirmation']) { $membreDao = new MembreDao(); if ($membreDao->getMembreByPseudo($_POST['pseudo']) == null) { // Hachage du mot de passe $pass = sha1($_POST['motdepasse']); $membre = new Membre(); $membre->setPseudo($_POST['pseudo']); $membre->setEmail($_POST['email']); $membre->setPass($pass); //la date est automatiquement renseignée dans la dao! $membreDao->insert($membre); } else { echo "Ce pseudo existe déjà, merci de recommencer"; } //Ici on pourrait aussi vérifier la validite de l'adresse email par une un regexp } else { echo "Les mots de passe sont différents, merci de recommencer votre saisie"; } // On affiche la page (vue) //include_once('vue/blog/index.php');
<?php include_once 'Membre.class.php'; $membre = new Membre(); $membre->setPseudo('M@teo21'); echo $membre->getPseudo() . ', je vais te bannir !'; $membre->bannir(); //pour construire un objet // $membre = new Membre(32); // Le membre n° 32 est chargé ! //pour détruire un objet //unset($membre);
public function getTarif(Membre $membre) { $bdd = $this->getBdd(); $req = $bdd->prepare('SELECT tarif FROM licence WHERE id = :id'); $req->bindValue('id', $membre->getLicenceId(), PDO::PARAM_INT); $req->execute(); $donnees = $req->fetch(); $tarif = $donnees['tarif']; $req->closeCursor(); return $tarif; }
public function connexion($action, $id, $vars) { switch ($action) { case 'get': // Si un formulaire a été envoyé if (!empty($_POST)) { // On essaye de se connecter $res = Membre::connexion($_POST); if ($res->success) { $res->redirect = "/membre"; } echo json_encode($res); exit; } $this->vue->display('403.twig', $vars); exit; default: $this->vue->display('404.twig', $vars); exit; } }
function sauvegarder(Membre $membre) { $dbh = $this->_db; $sql = "INSERT INTO Membre (nom, prenom, mdp, email) VALUES (:nom, :prenom, :mdp, :email);"; $sth = $dbh->prepare($sql); $sth->bindParam(":nom", $membre->nom(), PDO::PARAM_STR); $sth->bindParam(":prenom", $membre->prenom(), PDO::PARAM_STR); $sth->bindParam(":mdp", $membre->mdp(), PDO::PARAM_STR); $sth->bindParam(":email", $membre->email(), PDO::PARAM_STR); if ($sth->execute() == 0) { print $dbh->errorInfo(); // affiche message d'érreur de la bdd } else { $noMem = $dbh->lastInsertId(); $membre->setNoMem($noMem); } }
<?php include "../modeles/membre.php"; include "../modeles/bd.php"; if (isset($_POST['pseudo']) && isset($_POST['mdp'])) { $pseudo = $_POST['pseudo']; $mdp = $_POST['mdp']; $bd = new bd(); $requete_co = mysqli_query($bd->getco(), "select * from membre where pseudo = '{$pseudo}' and mdpasse = '{$mdp}';"); if (mysqli_num_rows($requete_co) == 1) { $membre = new Membre($bd, $pseudo, $mdp); $membre->connexion(); header("location: ../vue/espace_membre.php"); } $bd->disconnect(); } header("location: ../vue/formulaire_inscription.php");
<?php session_cache_expire(30); session_start(); include 'functions.php'; include '../classes/membre.php'; if (isset($_REQUEST['fonction']) && $_REQUEST['fonction'] != '') { $_REQUEST['fonction']($_REQUEST); } if (isset($_POST['identifiant']) && $_POST['identifiant'] != "" && isset($_POST['mdp']) && $_POST['mdp'] != "") { $salarie = new Membre($_POST['identifiant'], $_POST['mdp']); if ($salarie->getNom() == null) { echo 'Erreur : les informations saisies sont incorrectes ( login : '******'identifiant'] . ' )' . $_POST['mdp']; // header('Location: ../index.php?Erreur=1'); } else { header('Location: ../admin.php'); } } else { echo 'Erreur : les informations saisies sont incorrectes!'; }
<?php require_once 'autoload.inc.php'; session_start(); if (isset($_GET["id"])) { $idMembre = htmlspecialchars($_GET["id"]); } else { $idMembre = 1; } $g = new Gestionnaire(); $m = Membre::createFromID($idMembre); // Moyenne des notes $mo = Film::formateNote($m->moyenneMembre()); $contenu = <<<HTML <h1>{$m->toHTML()}</h1> <p>Moyenne des notes données : {$mo}<br> Nombre de notes données : {$m->nbNotes()}<br> Nombre de comms postés : {$m->nbComms()}</p> <div class="container"> HTML; // Genres préférés (top 10) $nbMini = Gestionnaire::nbMiniMoyenneGenre; $contenu .= <<<HTML <div> <p class="titre">Genres préférés (mini {$nbMini} notes)</p> <ul> HTML; $tableauGenres = $g->listeStatsGenres($m); uasort($tableauGenres, function ($a, $b) {
<p>(l'inscription est un poil longue, pas de panique!)</p> </form> </body> </html> HTML; } else { require_once "myPDO.include.php"; require_once "autoload.inc.php"; $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL INSERT INTO membre(nom, mdpSHA1) VALUES(:nom, :pass) SQL ); $stmt->execute(array("nom" => $_POST["nom"], "pass" => sha1($_POST["pass"]))); $membre = Membre::createFromID($pdo->lastInsertId()); $membre->lireTousCommentaires(); $html = <<<HTML <!doctype html> <html> <head> <meta charset="utf-8"> <title>Inscription</title> </head> <body> Inscription finie poto! <a href="index.php">Retour</a> </body> </html> HTML; } echo $html;