/** * Usine à Commentaire. Crée un Commentaire selon l'ID passé en paramètre * @param int $id : l'ID du commentaire à créer * @param Gestionnaire $gestionnaire : le gestionnaire courant * @return Commentaire : le commentaire voulu / null s'il n'existe pas */ public static function createFromID($id, $gestionnaire, $film) { $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL SELECT * FROM commentaire WHERE id = :id SQL ); $stmt->execute(array("id" => $id)); $stmt->setFetchMode(PDO::FETCH_CLASS, 'Commentaire'); if (($object = $stmt->fetch()) !== false) { $object->membre = $gestionnaire->getMembre($object->id_membre); $object->film = $film; // Test si le membre connecté a lu ce comm if (isset($_SESSION["membre"]) && $_SESSION["membre"] instanceof Membre) { $stmt2 = $pdo->prepare(<<<SQL SELECT id_comm FROM lecture_comm WHERE id_comm = :id_comm AND id_membre = :id_membre SQL ); $stmt2->execute(array("id_comm" => $object->id, "id_membre" => $_SESSION["membre"]->getID())); if (($foo = $stmt2->fetch()) !== false) { $object->lu = true; } else { $object->lu = false; } } return $object; } }
/** * Accesseur à l'unique instance du Singleton * @return Gestionnaire : singleton */ public static function getInstance() { if (is_null(self::$instance)) { self::$instance = new Gestionnaire(); } return self::$instance; }
/** * Méthode statique. Crée une Entreprise dans la BD * @param String $login : le login de connexion * @param String $email : l'email de l'entreprise * @param String $nom : le nom de l'entreprise * @param String $code : le code de l'entreprise * @param String $ville : la ville de l'entreprise * @param String $codepostal : le CP de l'entreprise * @param String $numrue : le numéro de la rue de l'entreprise * @param String $nomrue : le nom de la rue de l'entreprise * @param String $complAdr : un éventuel complément d'adresse * @param String $siteWeb : le site web de l'entreprise * @param String $description : description de l'entreprise * @return void */ public static function nvEntreprise($login, $email, $nom, $code, $ville, $codepostal, $numrue, $nomrue, $complAdr, $siteWeb, $description) { $mdp = Gestionnaire::getInstance()->randomString(10); // Insertion dans la classe "Entreprise" $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL INSERT INTO ENTREPRISE(login, sha1mdp, email, nomEnt, codeEnt, villeEnt, CPEnt, numRueEnt, rueEnt, complAdrEnt, siteWebEnt, description) VALUES(:login, :sha1mdp, :email, :nom, :code, :ville, :CP, :numRue, :nomRue, :complAdr, :siteWeb, :description) SQL ); $stmt->execute(array("login" => $login, "sha1mdp" => sha1($mdp), "email" => $email, "nom" => $nom, "code" => $code, "ville" => $ville, "CP" => $codepostal, "numRue" => $numrue, "nomRue" => $nomrue, "complAdr" => $complAdr, "siteWeb" => $siteWeb, "description" => $description)); //mail($email, "Inscription terminée", "Votre inscription à l'outil de gestion des stages a bien été prise en compte. Voici votre mot de passe : $mdp."); echo "Mot de passe généré : {$mdp} <br>"; }
public function listeCandidatures() { $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL SELECT * FROM CANDIDATURE WHERE idEtu = :id SQL ); $res = array(); $i = 0; $stmt->execute(array(':id' => $this->idEtu)); $stmt->setFetchMode(PDO::FETCH_ASSOC); while (($obj = $stmt->fetch()) !== false) { $res["o" . $i] = Gestionnaire::getInstance()->offre($obj["idOffre"]); $res["l" . $i] = $obj["lettreMotiv"]; $i++; } return $res; }
<?php require_once "../inc/config.inc.php"; session_start(); $token = Gestionnaire::getInstance()->randomString(40); $_SESSION["token"] = $token; $p = new Page("Gestion des stages :: Offre"); $p->appendCssUrl("../inc/style/offre.css"); $p->appendToHead("<script>var token = \"{$token}\";</script>"); if (isset($_GET["id"])) { $p->setTitle("Gestion des stages :: Offre n°" . $_GET["id"]); $offre = Gestionnaire::getInstance()->offre($_GET["id"]); if ($offre == null) { header("Location: index.php"); } if (isset($_SESSION["membre"]) && $_SESSION["membre"] instanceof Etudiant && $_SESSION["membre"]->aCandidateOffre(Gestionnaire::getInstance()->offre($_GET["id"]))) { $s = $_SESSION["membre"]->getStatus($_GET["id"])[2]; $p->appendContent("<header><h1>Vous avez déjà postulé à l'offre n°{$_GET["id"]}. <br> Statut : <i>\" {$s} \"</i></h1></header>"); $p->appendToHead("<style>.cliqPostul{display:none;}</style>"); } else { if (isset($_SESSION["membre"]) && ($_SESSION["membre"] instanceof Entreprise || $_SESSION["membre"] instanceof Enseignant)) { $p->appendToHead("<style>.cliqPostul{display:none;}</style>"); $p->appendContent("<header><h1>Offre n°{$_GET["id"]}</h1></header>"); } else { $p->appendContent("<header><h1>Offre n°{$_GET["id"]}</h1></header>"); } } $p->appendContent(<<<HTML {$offre->getDescription()} HTML );
<?php require_once "autoload.inc.php"; session_start(); $g = new Gestionnaire(); if ($_GET["msgBjr"] == "rien") { echo $g->divTop(); } else { echo $g->divTop($_GET["msgBjr"]); }
<?php require_once 'autoload.inc.php'; session_start(); if (isset($_GET["seeall"]) && isset($_SESSION["membre"]) && $_SESSION["membre"] instanceof Membre) { $_SESSION["membre"]->lireTousCommentaires(); } if (isset($_GET["voir"]) && is_numeric($_GET["voir"]) && isset($_SESSION["membre"]) && $_SESSION["membre"] instanceof Membre) { $_SESSION["membre"]->lireCommentaire($_GET["voir"]); } $g = new Gestionnaire(); $act = $g->listeActivite(); echo <<<HTML <!doctype html> <html> <head> <meta charset="utf-8"> <link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'> <link href='style.css' rel='stylesheet' type='text/css'> <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <title>Activité</title> <style> body { margin: 0; padding: 0; } .fa-check { color: green; } .fa-check.pasLu {
/** * Méthode statique. Crée un enseignant dans la BD * @param String $login : le login de connexion * @param String $nom : le nom de l'enseignant * @param String $prenom : le prénom de l'enseignant * @param char $sexe : le sexe de l'enseignant (H/F) * @param String $email : l'email de l'enseignant * @param String $ville : la ville de l'enseignant * @param String $CP : le code postal de l'enseignant * @param String $numRue : le numéro de la rue de l'enseignant * @param String $nomRue : le nom de la rue * @param String $complAdr : un éventuel complément d'adresse * @param String $domaine : le domaine de prédilection de l'enseignant * @return void */ public static function nvEnseignant($login, $nom, $prenom, $sexe, $email, $ville, $CP, $numRue, $nomRue, $complAdr, $domaine) { $mdp = Gestionnaire::getInstance()->randomString(10); // Insertion dans la table "Personne" $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL INSERT INTO PERSONNE(login, sha1mdp, nom, prenom, sexe, email, ville, CP, numRue, rue, complAdr) VALUES(:login, :sha1mdp, :nom, :prenom, :sexe, :email, :ville, :CP, :numRue, :nomRue, :complAdr) SQL ); $stmt->execute(array("login" => $login, "sha1mdp" => sha1($mdp), "nom" => $nom, "prenom" => $prenom, "sexe" => $sexe, "email" => $email, "ville" => $ville, "CP" => $CP, "numRue" => $numRue, "nomRue" => $nomRue, "complAdr" => $complAdr)); // Insertion dans la table "Enseignant" $idCree = $pdo->lastInsertId(); $stmt2 = $pdo->prepare(<<<SQL INSERT INTO ENSEIGNANT(idEns, domainPredom) VALUES(:idEns, :domaine) SQL ); $stmt2->execute(array("idEns" => $idCree, "domaine" => $domaine)); //mail($email, "Inscription terminée", "Votre inscription à l'outil de gestion des stages a bien été prise en compte. Voici votre mot de passe : $mdp."); echo "Mot de passe généré : {$mdp} <br>"; }
<?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) {
<?php require_once "../inc/config.inc.php"; session_start(); if (isset($_SESSION["membre"]) && $_SESSION["membre"] instanceof Entreprise) { $idOffre = (int) $_GET["idO"]; $idEtudiant = (int) $_GET["idE"]; $idEntreprise = $_SESSION["membre"]->getID(); if (in_array(OffreStage::createFromID($idOffre), $_SESSION["membre"]->getOffresProposees())) { $message = "Candidature acceptée. Vous pouvez voir l'état d'avancement du stage dans votre récapitulatif <a href='listeStagesEntreprise.php'>\"Mes stages\"</a><br>\n <a href=\"listeCandidatures.php?id={$idOffre}\">Retour</a>"; $g = Gestionnaire::getInstance(); $g->creeStage($idEtudiant, $idOffre); // MAJ de l'objet en session : $_SESSION["membre"] = Entreprise::createFromID($_SESSION["membre"]->getID()); } else { $message = "Vous ne pouvez pas accepter cette offre. <a href=\"index.php\">Retour</a>"; } $p = new Page("Gestion des stages :: Valider une candidature"); $p->appendCssUrl("../inc/style/stylePageAjout.css"); $p->appendContent(<<<HTML <header> <h1>Valider une candidature</h1> </header> <p class="mesage">{$message}</p> HTML ); echo $p->toHTML(); } else { header("Location: ../index.php"); }
<?php require "gestionnaire.php"; $path = end(explode('\\', getcwd())); $manager = new Gestionnaire($path); echo $manager->getAnswer() . "\n"; /* print "<pre>"; print_r($_SERVER); print "</pre>";*/
/** * Teste une connexion sur ce Membre. * Teste si la chaine SHA1 (paramètre), générée à l'aide du token (paramètre) correspond à ce Membre * @param String $chaine : la chaine SHA1 à tester * @param String $token : le token ayant servi à générer la chaine * @return boolean */ public function testConnexion($chaine, $token) { $pdo = myPDO::getInstance(); $stmt = $pdo->prepare(<<<SQL SELECT nom, mdpSHA1 FROM membre WHERE id = :id SQL ); $stmt->execute(array("id" => $this->id)); $data = $stmt->fetch(); $nom = Gestionnaire::suppr_accents($data["nom"]); $chaineBD = sha1(sha1($nom) . $data["mdpSHA1"] . $token); return $chaine == $chaineBD; }
<?php require_once "../inc/config.inc.php"; session_start(); $p = new Page("Gestion des stages :: Postuler"); $p->appendCssUrl("../inc/style/postuler.css"); $g = Gestionnaire::getInstance(); if (isset($_GET["id"])) { if (!isset($_SESSION["membre"]) || !$_SESSION["membre"] instanceof Enseignant && !$_SESSION["membre"] instanceof Etudiant && !$_SESSION["membre"] instanceof Entreprise) { header("Location: /prjs3/offres/offre.php?id=" . $_GET["id"]); } else { if ($_SESSION["membre"] instanceof Etudiant) { if ($_SESSION["membre"]->aCandidateOffre($g->offre($_GET["id"]))) { header("Location: /prjs3/offres/offre.php?id=" . $_GET["id"]); } else { $offre = Gestionnaire::getInstance()->offre($_GET["id"]); $p->appendContent(<<<HTML <div id="offre"> <h2>Postuler à l'offre n°{$offre->getId()}</h2> {$offre->getDescription()} <p style="margin-top:15px; font-style:italic; font-size:0.9em;" id="comm"> Veuillez remplir le formulaire ci-dessous pour postuler : (<a href="/prjs3/settings/">Ajouter votre CV auparavant</a> SINON CE NE SERA PAS POSSIBLE DE SOUMETTRE LA CANDIDATURE) </p> <br> <form method="POST" action="postuler2.php"> <p>Il est fortement recommandé de saisir un message à joindre au CV <br>(exemple : lettre de motivation // 1200 caractères max.)</p> <br> <textarea name="motiv" maxlength="1200" id="description">Madame, Monsieur,
<?php require_once "../inc/config.inc.php"; session_start(); $token = Gestionnaire::getInstance()->randomString(40); $_SESSION["token"] = $token; $p = new Page("Gestion des stages :: Offres"); $p->appendToHead("<script>var token = \"{$token}\";</script>"); $p->appendJsUrl("../inc/script/scriptOffres.js"); $p->appendCssUrl("../inc/style/styleOffres.css"); $p->appendCssUrl("../inc/style/stylePageOffres.css"); $offres = Gestionnaire::getInstance()->offres(); if (isset($_SESSION["membre"]) && !$_SESSION["membre"] instanceof Etudiant) { $p->appendToHead("<style>.cliqPostul{display:none;}</style>"); } else { if (isset($_SESSION["membre"]) && $_SESSION["membre"] instanceof Etudiant && $_SESSION["membre"]->getStage() != null) { $p->appendToHead("<style>.cliqPostul{display:none;}</style>"); } } $p->appendContent(<<<HTML <header> <h1>Liste des offres de stages</h1> <p>Cliquez sur une offre pour afficher les détails et postuler.</p> </header> {$offres} HTML ); echo $p->toHTML();
<?php require_once "inc/config.inc.php"; session_start(); $token = Gestionnaire::getInstance()->randomString(40); $_SESSION["token"] = $token; $p = new Page("Gestion des stages :: Inscription"); $p->appendCssUrl("inc/style/style.css"); $p->appendCssUrl("inc/style/styleCo.css"); $p->appendCssUrl("inc/style/styleInscr.css"); $p->appendJsUrl("inc/script/script.js"); $p->appendJsUrl("inc/script/sha1.js"); $p->appendJsUrl("inc/script/connexion.js"); $p->appendJsUrl("inc/script/scriptInscr.js"); $p->appendToHead("<script>var token = \"{$token}\";</script>"); $p->appendContent(<<<HTML <div id="inscr"> <ul> <li><a href="#ENS">ENSEIGNANT</a></li> <li><a href="#ETU">ETUDIANT</a></li> <li><a href="#ENT">ENTREPRISE</a></li> </ul> <form name="formulaireInscriptionEnseignant" method="POST" action="inscription2.php" style="display:none;"> <fieldset> <legend>Identifiants</legend> <input type="hidden" name="typeInscription" value="enseignant"> <label for="loginEns">Login</label><br><input type="text" name="login" id="loginEns" pattern="[A-Za-z0-9]+" required><br> <label for="emailEns">E-mail</label><br><input type="email" name="email" id="emailEns" pattern="^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}\$" required><br> <label for="domaine">Domaine de prédilection</label>
header("Location: etudiant/"); } else { if ($_SESSION["membre"] instanceof Entreprise) { header("Location: entreprise/"); } } } } $token = Gestionnaire::getInstance()->randomString(40); $_SESSION["token"] = $token; $p = new Page("Gestion des stages :: Accueil"); $p->appendCssUrl("inc/style/styleIndex.css"); $p->appendCssUrl("inc/style/styleOffres.css"); $p->appendJsUrl("inc/script/scriptOffres.js"); $p->appendToHead("<script>var token = \"{$token}\";</script>"); $offres = Gestionnaire::getInstance()->dernieresOffres(3); $p->appendContent(<<<HTML <div id="content"> <section id="prstSite"> <!-- Brève introduction pour sensibiliser les entreprises--> <div> <header> <h2>Proposer une offre de stage n'a jamais été aussi simple</h2> <p>Rentrez facilement en contact avec des étudiants motivés</p> </header> <form action=""> <input type="submit" value="Ajouter une offre de stage" onclick="connexion();return false;"> </form> </div> </section> <article id="prstEtudiants"> <!-- Un avant goût d'un article mettant en valeur les étudiants--> <div>
/** * Retourne la moyenne du film * @param Gestionnaire $gestionnaire : le gestionnaire courant * @return float : la moyenne du film */ public function getAverage($gestionnaire) { $total = 0; $nbNotes = 0; for ($i = 1; $i <= $gestionnaire->nombreMembres(); $i++) { $note = $this->listeNotes[$i]; if (!is_null($note)) { $total += $note; $nbNotes++; } } if ($nbNotes > 0) { return number_format($total / $nbNotes, 2, ".", ""); // formate la note sur 2 décimales, et avec des . à la place des virgules // on garde les 0 après la virgule, pour montrer que c'est une moyenne } else { return "0.00"; } }
<?php require_once 'autoload.inc.php'; session_start(); header('Content-Type: application/javascript'); $g = new Gestionnaire(); $nbMembres = $g->nombreMembres(); $nbTotalFilms = Gestionnaire::nbTotalFilms(); $token = Gestionnaire::randomString(40); $_SESSION["token"] = $token; if (isset($_SESSION["membre"])) { $idMembreConnecte = $_SESSION["membre"]->getID(); } else { $idMembreConnecte = -1; } echo "var nbMembres = {$nbMembres};\n"; echo "var nbTotalFilms = {$nbTotalFilms};\n"; echo "var token = \"{$token}\";\n"; echo "var idMembreConnecte = {$idMembreConnecte};\n"; include 'script.js';
<?php require_once "autoload.inc.php"; session_start(); $g = new Gestionnaire(); $chaine = htmlspecialchars($_GET["t"]); $membre = $g->createMembreFromAuth($chaine); if ($membre instanceof Membre) { $success = true; $_SESSION["membre"] = $membre; $id = $membre->getID(); } else { $success = false; $id = -1; } $reponse = array("success" => $success, "id" => $id); echo json_encode($reponse);
<?php require_once 'autoload.inc.php'; session_start(); $film = $_GET["film"]; $membre = $_GET["membre"]; if ($membre == $_SESSION["membre"]->getID()) { $gest = new Gestionnaire(); $film = $gest->getFilm($film); if ($film->supprimeNote($membre)) { // on supprime la note // mais on ajoute le message que si elle a été vraiment supprimée // (si ce n'est pas le cas, c'est qu'elle n'existait pas) $ancienneNote = $film->getNote($membre); $classNote = Film::getClass($ancienneNote) . "_comm"; $message = "J'ai supprimé ma note ! Elle était de <span class=\"{$classNote}\">{$ancienneNote}</span>"; $film->ajoutCommentaire($membre, $message); } }
<?php require_once 'autoload.inc.php'; session_start(); $g = new Gestionnaire(); $listeFilms = $g->listeFilms(); $filtresNotesIndivs = $g->filtresNotesIndivs(); $filtreNbNotes = $g->filtreNbNotes(); $filtresGenres = $g->filtresGenres(); $formulaireConnexion = $g->formulaireConnexion(); $divTop = $g->divTop(); $act = $g->listeActivite(); $popups = $g->popups(); $html = <<<HTML <!doctype html> <html> <head> <meta charset="utf-8"> <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> <script src="sha1.js"></script> <script src="script.php"></script> <link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'> <link href='style.css' rel='stylesheet' type='text/css'> <title>Liste des films</title> </head> <body> <div id="div_connexion"> {$formulaireConnexion} </div> <div id="top"> {$divTop}