Пример #1
0
    /**
     * 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;
        }
    }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
    /**
     * 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>";
    }
Пример #4
0
    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;
    }
Пример #5
0
<?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
);
Пример #6
0
<?php

require_once "autoload.inc.php";
session_start();
$g = new Gestionnaire();
if ($_GET["msgBjr"] == "rien") {
    echo $g->divTop();
} else {
    echo $g->divTop($_GET["msgBjr"]);
}
Пример #7
0
<?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 {
Пример #8
0
    /**
     * 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>";
    }
Пример #9
0
<?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) {
Пример #10
0
<?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");
}
Пример #11
0
<?php

require "gestionnaire.php";
$path = end(explode('\\', getcwd()));
$manager = new Gestionnaire($path);
echo $manager->getAnswer() . "\n";
/*
	print "<pre>";
	print_r($_SERVER);
	print "</pre>";*/
Пример #12
0
    /**
     * 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;
    }
Пример #13
0
<?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,
Пример #14
0
<?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();
Пример #15
0
<?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>
Пример #16
0
            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 &eacute;t&eacute; aussi simple</h2>
        <p>Rentrez facilement en contact avec des &eacute;tudiants motiv&eacute;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>
Пример #17
0
 /**
  * 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";
     }
 }
Пример #18
0
<?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';
Пример #19
0
<?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);
Пример #20
0
<?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);
    }
}
Пример #21
0
<?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}