/**
 * Fonction permettant de gérer la réponse au formulaire de cotation d'activité. Si il a mis une note, il recalcule la note
 * présente en base de données. Sinon il redirige vers la page de catégories.
 */
function gererFormulaire()
{
    $uam = new User_ActivityManager(connexionDb());
    $tab = $uam->getActIdByUserId($_SESSION['User']);
    $am = new ActivityManager(connexionDb());
    if (isset($tab[0]) && $tab[0]['id_activity'] != null && comparerHeure($tab[0]['date'], 2)) {
        $act = $am->getActivityById($tab[0]['id_activity']);
        if (isset($_POST['Accepter'])) {
            if (isset($_POST['cote']) && $_POST['cote'] != NULL) {
                $cote = $_POST['cote'];
                $note = $act->getNote();
                $votants = $act->getVotants();
                $note = ($note * $votants + $cote) / ($votants + 1);
                $votants = $votants + 1;
                $am->updateCote($act->getId(), $note, $votants);
                $uam->deleteFromTable($_SESSION['User']);
                header("Location:choisirCategorie.page.php");
            } else {
                echo "<br><br><div align='center'><div class='alert alert-danger'  role='alert' style='width:50%'>Vous n'avez pas noté l'activité !</div></div>";
            }
        } else {
            if (isset($_POST['Refuser'])) {
                $uam->deleteFromTable($_SESSION['User']);
                header("Location:choisirCategorie.page.php");
            } else {
                if (isset($_POST['Report'])) {
                    $uam->reportNote($_SESSION['User']->getId());
                    header("Location:choisirCategorie.page.php");
                }
            }
        }
    } else {
        header("Location:../");
    }
}
/**
 * Fonction faisant devenir premium le membre connecté.
 */
function Premium()
{
    $udm = new User_DroitManager(connexionDb());
    $udm->modifDroit($_SESSION['User']->getId(), 3);
    $um = new UserManager(connexionDb());
    $user = $um->getUserById($_SESSION['User']->getId());
    $_SESSION['User'] = $user;
}
/**
 *Fonction permettant d'aller rechercher en BDD tous les membres contenant le string contenu dans le formulaire de
 * recherche de nom.
 * @return array : la liste des membres trouvés.
 */
function rechercheMembre()
{
    if (isPostFormulaire()) {
        $name = $_POST['userName'];
    } else {
        $name = "";
    }
    $um = new UserManager(connexionDb());
    $tab = $um->searchAllUserByName($name);
    return $tab;
}
/**
 * Fonction servant à vérifier l'existence d'un membre à l'aide de l'ID contenu dans l'url.
 * @return bool : true si il existe, false si il n'existe pas.
 */
function membreExistant()
{
    $id = $_GET['membre'];
    $um = new UserManager(connexionDb());
    $user = $um->getUserById($id);
    if ($user->getUserName() == NULL) {
        return false;
    } else {
        return true;
    }
}
/**
 * Fonction permettant de voir si la demande d'ami existe déjà en base de données.
 * @return bool : true si elle existe, false si elle n'existe pas.
 */
function verifDejaExistant()
{
    $id = $_GET['membre'];
    $idUser = $_SESSION['User']->getId();
    $am = new AmisManager(connexionDb());
    $testExistence1 = $am->getAmisById1AndId2($idUser, $id);
    $testExistence2 = $am->getAmisById1AndId2($id, $idUser);
    if ($testExistence1->getDate() != NULL || $testExistence2->getDate() != NULL) {
        return true;
    } else {
        return false;
    }
}
 function getUserDroit(User $user)
 {
     $dm = new DroitManager(connexionDb());
     $query = $this->db->prepare("SELECT * FROM user_droit WHERE id_User = :idUser");
     $query->execute(array(":idUser" => $user->getId()));
     $tabDroit = $query->fetchAll(PDO::FETCH_ASSOC);
     $tab = array();
     foreach ($tabDroit as $elem) {
         $droitUser = $dm->getDroitById($elem['id_Droits']);
         $tab[] = $droitUser;
     }
     return $tab;
 }
/**
 * Fonction permettant d'ajouter une activité en base de données grâce aux données d'un formulaire.
 * @return mixed : soit un tableau contenant tous les messages d'erreurs relatif à l'ajout d'activité, soit un tableau
 * contenant un message de succès de l'ajout de l'activité.
 */
function ajouterActivite()
{
    $cat = $_POST['categorie'];
    $act = $_POST['activite'];
    $desc = $_POST['description'];
    $cm = new CategorieManager(connexionDb());
    $am = new ActivityManager(connexionDb());
    $categorie = $cm->getCategorieByLibelle($cat);
    $activityVerif = $am->getActivityByLibelle($act);
    if (strtolower($activityVerif->getLibelle()) == strtolower($act)) {
        $tabRetour['Error'] = "Cette activité existe déjà, ajoutez-en une autre !";
    } else {
        if (strlen($act) >= 5 && strlen($act) <= 100) {
            if (champsTexteValable($desc)) {
                $desc = nl2br($desc);
                $activityToAdd = new Activity(array("Libelle" => $act, "description" => $desc));
                $am->addActivity($activityToAdd);
                $activityToRecup = $am->getActivityByLibelle($act);
                include "../Manager/Categorie_ActivityManager.manager.php";
                $typePhoto = $_FILES['image']['type'];
                if (!strstr($typePhoto, 'jpg') && !strstr($typePhoto, 'jpeg')) {
                    $tabRetour['Error'] = "Votre image n'est pas .jpg ou .jpeg !";
                } else {
                    if ($_FILES['ImageNews']['size'] >= 2097152) {
                        $tabRetour['Error'] = "Votre image est trop lourde !";
                    } else {
                        if ($_FILES['image']['tmp_name'] != null) {
                            uploadImage('../Images/activite', $activityToRecup->getId());
                            $cam = new Categorie_ActivityManager(connexionDb());
                            $um = new UserManager(connexionDb());
                            $um->updateUserLastIdea($_SESSION['User']);
                            $cam->addToTable($activityToRecup, $categorie);
                            $tabRetour['Ok'] = "Votre activité a bien été ajoutée au contenu du site, merci de votre participation !";
                        } else {
                            $tabRetour['Error'] = "Pas d'image !";
                        }
                    }
                }
            } else {
                $tabRetour['Error'] = "Votre description contient des caractères indésirables !";
            }
        } else {
            $tabRetour['Error'] = "Votre titre d'activité n'a pas une taille correcte !";
        }
    }
    return $tabRetour;
}
/**
 * Fonction affichant les différentes catégories présentes en BDD ainsi que leur image respective.
 */
function afficherCategorie()
{
    $cm = new CategorieManager(connexionDb());
    $i = 0;
    $tab = $cm->getAllCategorie();
    foreach ($tab as $elem) {
        $i++;
        $cat = $elem->getLibelle();
        if ($i % 2 != 0) {
            echo "<article id='cat' class='col-sm-4' style='text-align: right'>";
        } else {
            echo "<article id='cat' class='col-sm-4' style='text-align: left'>";
        }
        echo "<a href='proposerActivite.page.php?categorie={$cat}' title='{$cat}'><img height='150px' width='150px' src='../Images/categories/{$cat}.jpg' alt='{$cat}'/></a>";
        echo "</article>";
    }
}
/**
 * Fonction servant à activer un nouvel utilisateur à l'aide de son code d'activation fourni dans l'url.
 * Si le code n'existe pas, il envoie un message d'erreur, sinon il active le membre et le redirige vers la page de connexion.
 */
function activationNewUser()
{
    $code = $_GET['code'];
    $am = new ActivationManager(connexionDb());
    $ac = $am->getActivationByCode($code);
    $noCode = false;
    if ($ac->getCode() == NULL) {
        $noCode = true;
    }
    if ($noCode) {
        echo "Votre code est incorrect, utilisez celui du mail prévu à cet effet !";
    } else {
        $am->deleteActivation($ac);
        echo "Vous êtes dorénavant activé, vous pouvez vous connecter normalement !";
        echo "<meta http-equiv='refresh' content='2; URL=connexion.page.php'>";
    }
}
/**
 * Fonction servant à afficher toutes les activités signalées pour les modérateurs et administrateur.
 * Elle fournit un lien qui permet d'être redirigé vers l'activité en question.
 */
function afficherActivite()
{
    ?>
    <div class="Membres">
    <div class="table-responsive">
        <table class="table table-striped">
            <caption> <h2> Activités </h2></caption>
            <tr>
                <th> Nom de l'activité</th>
                <th> Nom de la catégorie</th>
                <th> Action </th>
            </tr>
            <?php 
    $am = new ActivityManager(connexionDb());
    $cam = new Categorie_ActivityManager(connexionDb());
    $cm = new CategorieManager(connexionDb());
    $tab = $am->getAllActivity();
    $existe = false;
    foreach ($tab as $elem) {
        $id = $elem->getId();
        $catId = $cam->getCatIdByActId($elem);
        if (isset($catId[0])) {
            $cat = $cm->getCategorieById($catId[0]['id_categorie']);
        }
        if ($elem->getSignalee() == 1) {
            echo "<tr> <td>" . $elem->getLibelle() . " </td><td>" . $cat->getLibelle() . "</td><td><a href='proposerActivite.page.php?categorie=" . $cat->getLibelle() . "&activite={$id}'> Gérer le signalement </a></td></tr>";
            $existe = true;
        }
    }
    if (!$existe) {
        echo "<tr> <td> Aucune activité signalée !</td></tr>";
    }
    ?>
        </table>
    </div>
    </div>
    <?php 
}
/**
 * Fonction permettant de créer un groupe.
 */
function creerGroupe()
{
    if (isset($_POST['formulaireCreation'])) {
        $desc = $_POST['description'];
        if (champsTexteValable($desc)) {
            $groupe = new Groupe(array("id_leader" => $_SESSION['User']->getId(), "description" => $_POST['description'], "id_activity" => $_POST['idAct']));
            $gm = new GroupeManager(connexionDb());
            $gim = new Groupe_InvitationManager(connexionDb());
            $gim->deleteInvitByUserId($_SESSION['User']);
            $ugm = new User_GroupeManager(connexionDb());
            $gm->addGroupe($groupe);
            $groupeLead = $gm->getGroupeByLeader($_SESSION['User']);
            $ugm->addToUserGroupe($_SESSION['User'], $groupeLead);
            echo "<h1 align='center'><div class='alert alert-success' role='alert'> Le groupe a bien été créé !  </div></h1>";
            echo "<meta http-equiv='refresh' content='2; URL=groupe.page.php?to=voirGroupe'>";
        } else {
            echo "<h1 align='center'><div class='alert alert-danger' role='alert'> Votre description contient des caractères indésirables !  </div></h1>";
        }
    }
}
/**
 * Fonction modifiant le grade d'un utilisateur en base de données.
 */
function modifGrade()
{
    $id = $_POST['idUserGrade'];
    $idGrade = $_POST['grade'];
    require "../Manager/User_DroitManager.manager.php";
    $udm = new User_DroitManager(connexionDb());
    $udm->modifDroit($id, $idGrade);
}
<form method="post" enctype="multipart/form-data" action="ajouterActivite.page.php">

    <div class="form-group col-sm-12">
        <label class="control-label col-sm-2" for="categorie">Catégorie:</label>
        <div class="col-sm-10">
            <span class="col-sm-8" style="text-align: right">Dans quelle catégorie voulez vous ajouter l'activité ?</span>
            <select class="col-sm-2 form-control" name="categorie" id="categorie" style="text-align: center">
           <?php 
$cm = new CategorieManager(connexionDb());
$tab = $cm->getAllCategorie();
foreach ($tab as $elem) {
    $cat = $elem->getLibelle();
    echo "<option value='{$cat}'>{$cat}</option>";
}
?>
            </select>
        </div>
    </div>
    <div class="form-group col-sm-12">
        <label class="control-label col-sm-2" for="activite">Activité : <br> (5 à 100 caractères)</label>
        <div class="col-sm-10">
           <input type="text" class="form-control" id="activite" name="activite" placeholder="Votre activité" required>
        </div>
    </div>

    <div class="form-group col-sm-12">
        <label class="control-label col-sm-2" for="description">Description:</label>
        <div class="col-sm-10">
            <textarea class="form-control" rows="5" id="description" name="description" placeholder="Description de votre activité" required></textarea>
        </div>
/**
 * Fonction effectuant le changement d'activité de l'utilisateur à l'aide de l'id de l'activité passé en url.
 */
function modifActivite()
{
    $act = $_GET['id'];
    $uam = new User_ActivityManager(connexionDb());
    $uam->deleteFromTable($_SESSION['User']);
    $activity = new Activity(array("id" => $act));
    $uam->addToTable($activity, $_SESSION['User']);
    leaveGroupe();
    header('Location: ../');
}
/**
 * Fonction ajoutant en BDD le nouveau membre inscrit et lui envoyant un message contenant son code d'activation
 * d'inscription.
 */
function addDB()
{
    $userToAdd = new User(array("UserName" => $_POST['userName'], "email" => $_POST['email'], "Mdp" => $_POST['mdp']));
    $code_aleatoire = genererCode();
    $adresseAdmin = "*****@*****.**";
    $to = $userToAdd->getEmail();
    $sujet = "Confirmation de l'inscription";
    $entete = "From:" . $adresseAdmin . "\r\n";
    $entete .= "Content-Type: text/html; charset=utf-8\r\n";
    $message = "Nous confirmons que vous êtes officiellement inscrit sur le site EveryDayIdea <br>\n\t\t\t\t\t\t\t\t\tVotre login est : " . $userToAdd->getUserName() . " <br>\n\t\t\t\t\t\t\t\t\tVotre email est : " . $userToAdd->getEmail() . " <br>\n\t\t\t\t\t\t\t\t\tVotre lien d'activation est : <a href='http://www.everydayidea.be/Page/activationInscription.page.php?code=" . $code_aleatoire . "'>Cliquez ici !</a>";
    mail($to, $sujet, $message, $entete);
    /** @var $um : un nouvel user qui va être ajouté à la BDD
        J'ajoute le nouvel user à la BDD*/
    $um = new UserManager(connexionDb());
    $um->addUser($userToAdd);
    /**
     * Ici j'ai besoin de savoir quel est le user id du nouveau membre ajouté pour pouvoir le mettre dans l'ajout du code d'activation de cet user
     * Donc je vais le rechercher en base de donnée où il vient d'être ajouté
     */
    $user = $um->getUserByUserName($userToAdd->getUserName());
    $userid = $user->getId();
    $um->setUserDroit($user, 4);
    /**
     * J'ajoute le nouveau code d'activation à la BDD
     */
    $am = new ActivationManager(connexionDb());
    $activation = new Activation(array("code" => $code_aleatoire, "id_user" => $userid, "libelle" => "Inscription"));
    $am->addActivation($activation);
}
/**
 * Fonction vérifiant l'identité du membre et le connectant si il possède la bonne identité.
 * @return array : tableau de message d'erreur dans le cas où ses informations sont fausses, si il est banni ou encore
 * si il ne s'est pas activé.
 */
function doConnect()
{
    $tabRetour = array();
    $mdp = $_POST['mdp'];
    $userName = $_POST['userName'];
    $manager = new UserManager(connexionDb());
    $tabUser = $manager->getAllUser();
    $userToConnect = new User(array("UserName" => $userName, "Mdp" => $mdp));
    $userFound = $manager->getUserByUserName($userName);
    /**
     * Je vérifie sur le user est dans la base de donnée et existe bel et bien
     */
    $echec = false;
    if ($userFound->getId() != NULL) {
        foreach ($tabUser as $elem) {
            //$mdp == hash("sha256", $elem->getMdp());
            //password_verify($mdp, $elem->getMdp())
            if ($userName == $elem->getUserName() && hash("sha256", $userToConnect->getMdp() . $userFound->getSalt()) == $elem->getMdp()) {
                $echec = false;
                $userToConnect = $elem;
                $id = $elem->getId();
                break;
            } else {
                $echec = true;
            }
        }
    } else {
        $echec = true;
    }
    /**
     * Je vérifie que le user n'a pas besoin de s'activer avant de se connecter, l'user pouvant avoir
     * deux code (inscription et mdp oublié), je vérifie que c'est bien le code d'inscription
     */
    $needActi = false;
    $banni = false;
    if (isset($id)) {
        $acManager = new ActivationManager(connexionDb());
        $act = $acManager->getActivationByLibelleAndId("Inscription", $id);
        if (isset($act) && $act->getCode() != NULL) {
            $needActi = true;
        } else {
            $needActi = false;
        }
    }
    $userToConnect = $manager->getUserById($userToConnect->getId());
    if ($echec == true) {
        $tabRetour['Error'] = "<div class='alert alert-danger' role='alert'>Erreur lors de la connexion, veuillez rééssayer avec le bon login ou mot de passe !</div>";
    } else {
        if ($userToConnect->getDroit()[0]->getId() == 6) {
            $tabRetour['Error'] = "<div class='alert alert-danger' role='alert'>Vous êtes banni, impossible de vous connecter !</div>";
            $banni = true;
        } else {
            if ($needActi == true) {
                $tabRetour['Activation'] = "<div class='alert alert-danger' role='alert'>Vous devez activer votre compte avant la connexion !</div>";
            } else {
                $user = $manager->getUserById($id);
                $manager->updateUserConnect($user);
                //$_SESSION['User'] = $user;
                setSessionUser($user);
                echo "Bienvenue sur EveryDayIdea !";
            }
        }
    }
    $tabRetour['Retour'] = !$echec;
    $tabRetour['Valide'] = !$needActi;
    $tabRetour['Banni'] = !$banni;
    return $tabRetour;
}
/**
 * Created by PhpStorm.
 * User: JulienTour
 * Date: 4/10/2015
 * Time: 21:08
 */
require "../Library/constante.lib.php";
require "../Library/Fonctions/Fonctions.php";
initRequire();
initRequireEntityManager();
initRequirePage("inscription");
require "../Library/Page/activationInscription.lib.php";
$configIni = getConfigFile();
startSession();
connexionDb();
$isConnect = isConnect();
if ($isConnect) {
    header("Location:../");
}
?>

<!doctype html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Activation de votre inscription</title>
    <link rel="icon" type="image/png" href="../Images/favicon.png" />
    <link rel="stylesheet" type="text/css" href="../vendor/twitter/bootstrap/dist/css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="../Style/general.css">
<?php

/**
 * Created by PhpStorm.
 * User: JulienTour
 * Date: 24/11/2015
 * Time: 19:58
 */
$gm = new GroupeManager(connexionDb());
$groupe = $gm->getGroupeByLeader($_SESSION['User']);
echo "<h1> L'ancienne description de votre groupe était : </h1>";
echo "<div class='well well-lg'><h3>" . $groupe->getDescription() . " </h3></div>";
echo "<h1> Entrez votre nouvelle description : </h1>";
?>
<form class='form-horizontal col-sm-12' name='modifier' action='groupe.page.php?to=voirGroupe&action=mod' method='post'>
<div class="form-group col-sm-12">
    <div class="col-sm-10">
        <?php 
echo "<span class='textareaModif'>";
echo "<textarea  class='form-control' rows='5' id='descriptionGroupe' name='descriptionGroupe' required></textarea>";
echo "<span>";
?>
    </div>
</div>
<div class="form-group col-sm-12">
    <div class=" col-sm-12">
        <button type="submit" class="btn btn-default" name="modifierDesc" id="modifierDesc">Modifier</button>
    </div>
</div>
</form>
    <script src="https://code.jquery.com/jquery-2.1.4.min.js" defer></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js" defer></script>
    <script src="dist/js/bootstrap-submenu.min.js" defer></script>

    <link rel="stylesheet" type="text/css" href="../personalisation.css">
</head>
<body>
<section class="container" style="padding-bottom : 55%;">
    <header>
        <?php 
include "../Menu/menuGeneral.lib.php";
?>
    </header>
    <?php 
if (isConnect()) {
    $uam = new User_ActivityManager(connexionDb());
    $tab = $uam->getActIdByUserId($_SESSION['User']);
    if (isset($tab[0]['id_activity']) && comparerHeure($tab[0]['date'], 2)) {
        ?>
            <div class="col-md-2 clearfix" id="sub-menu-left">
                <nav class="sidebar-nav">
                    <ul class="nav sidebar-nav sidebar-collapse">
                        <li <?php 
        if (empty($_GET)) {
            echo 'class="active"';
        }
        ?>
><a href="choisirCategorie.page.php">Choisir une catégorie</a></li>
                        <li><a href="coterActivite.page.php">Coter mon ancienne activité</a></li>
                    </ul>
                </nav>
/**
 * Fonction permettant de vérifier si le formulaire de modification de profil est correct et si il ne contient pas d'erreurs.
 * @param User $user : l'utilisateur qui a fait la demande de changement de profil.
 * @return array : un tableau contenant tous les messages d'erreur liés au formulaire de changement de profil ou un booleen
 * si le formulaire est correct.
 */
function isValidForm(User $user)
{
    $config = getConfigFile()['CONSTANTE'];
    $UserName = $_POST['userName'];
    $Email = $_POST['email'];
    $Mdp = $_POST['Mdp'];
    $MdpBis = $_POST['MdpBis'];
    $tel = $_POST['Tel'];
    $MdpActuel = $_POST['MdpActuel'];
    if ($Mdp == '') {
        $Mdp = NULL;
        $MdpBis = NULL;
    }
    $userTest = new User(array("UserName" => $UserName, "email" => $Email, "Mdp" => $Mdp, "tel" => $tel));
    $tab = array("RETURN" => false, "ERROR" => array());
    $nameValable = false;
    $emailValable = false;
    $mdpValable = false;
    $nameExistant = false;
    $mailExistant = false;
    $goodMdp = false;
    $boolean_name = false;
    $boolean_mdp = false;
    $mdpIdentique = false;
    $noMdp = false;
    $um = new UserManager(connexionDb());
    $nameVerif = $um->getUserByUserName($userTest->getUserName());
    if ($nameVerif->getUserName() != NULL && $user->getUserName() != $UserName) {
        $nameExistant = true;
        $tab['ERROR']['Name'] = "Nom déjà existant ";
    }
    if (champsEmailValable($Email)) {
        $emailValable = true;
    } else {
        $tab['ERROR']['EmailValable'] = "Votre email contient des caractères indésirables";
    }
    if (champsEmailValable($UserName)) {
        $nameValable = true;
    } else {
        $tab['ERROR']['NameValable'] = "Votre nom d'utilisateur contient des caractères indésirables";
    }
    $mailVerif = $um->getUserByEmail($userTest->getEmail());
    if ($mailVerif->getUserName() != NULL && $user->getEmail() != $Email) {
        $mailExistant = true;
        $tab['ERROR']['Email'] = "Email déjà existant";
    }
    if ($user->getMdp() == hash("sha256", $MdpActuel . $user->getSalt())) {
        $goodMdp = true;
    } else {
        $tab['ERROR']['MdpActuel'] = "Mauvais mot de passe actuel ! Annulation de la modification";
    }
    if (isset($UserName) and strlen($UserName) >= $config['size_user_name']) {
        $boolean_name = true;
    } else {
        $tab['ERROR']['UserName'] = "******" . $config['size_user_name'] . ")";
    }
    if (isset($Mdp) and isset($MdpBis) and $Mdp == $MdpBis and $Mdp != NULL) {
        if (strlen($Mdp) >= $config['size_user_mdp']) {
            $boolean_mdp = true;
        } else {
            $tab['ERROR']['Mdp'] = "Mots de passe trop court (min: " . $config['size_user_mdp'] . ")";
        }
        if (champsMdpValable($Mdp)) {
            $mdpValable = true;
        } else {
            $tab['ERROR']['mdpValable'] = "Votre mot de passe contient des caractères indésirables";
        }
    } else {
        $noMdp = true;
    }
    if (isset($Mdp) and isset($MdpBis) and $Mdp != $MdpBis) {
        $tab['ERROR']['Mdp'] = "Le mot de passe et le mot de passe de vérification sont différents";
    } else {
        $mdpIdentique = true;
    }
    $tab['RETURN'] = ($boolean_mdp && $mdpValable || $noMdp and $boolean_name and !$nameExistant and !$mailExistant and $goodMdp && $mdpIdentique && $nameValable && $emailValable);
    if ($tab['RETURN']) {
        if (isset($UserName) and $userTest->getUserName() != $user->getUserName()) {
            $user->setUserName($UserName);
        }
        if (isset($Email) and $userTest->getEmail() != $user->getEmail()) {
            $user->setEmail($Email);
        }
        if (isset($Mdp) and strlen($Mdp) > 4 and hash("sha256", $userTest->getMdp() . $userTest->getSalt()) != $user->getMdp()) {
            $user->setMdp($Mdp);
            $user->setHashMdp();
        }
        if (isset($tel) and $tel != $user->getTel()) {
            $user->setTel($tel);
        }
        $um->updateUserProfil($user);
        $userToReconnect = $um->getUserById($user->getId());
        setSessionUser($userToReconnect);
    }
    return $tab;
}
 * User: Flavian Ovyn
 * Date: 2/10/2015
 * Time: 16:48
 */
require "../Library/constante.lib.php";
require "../Library/Fonctions/Fonctions.php";
initRequire();
initRequirePage("profil");
initRequireEntityManager();
require "../Form/profil.form.php";
startSession();
$isConnect = isConnect();
if (!$isConnect) {
    header("Location:../index.php");
}
$um = new UserManager(connexionDb());
$user = getSessionUser();
$configIni = getConfigFile();
$isValidForm = array();
$errorFormulaire = array();
if (isPostFormulaire()) {
    $isValidForm = isValidForm($user);
    if ($isValidForm['RETURN']) {
        $class = 'success';
        $tab[0] = "Modification réalisée avec succes";
        echo "<meta http-equiv='refresh' content='2; URL=profil.page.php'>";
    } else {
        $class = 'danger';
        $tab = $isValidForm['ERROR'];
    }
}
/**
 * Si le user a rempli le formulaire de changement de mdp, la fonction regarde si le login correspond au user
 * possédant ce code d'activation et si cela est vrai, il change son mdp en bdd et delete son code d'activation en BDD
 */
function changementMdp()
{
    if (isset($_POST['userName']) && isset($_POST['mdp']) && $_POST['mdp'] == $_POST['verifmdp'] && goodCode()) {
        $code = $_GET['code'];
        $mdp = $_POST['mdp'];
        $userName = $_POST['userName'];
        $am = new ActivationManager(connexionDb());
        $ac = $am->getActivationByCodeAndLibelle("Récupération", $code);
        $userId = $ac->getIdUser();
        $um = new UserManager(connexionDb());
        /**
         * Je récupère cet user grâce à l'id du user possédant le code d'acti
         */
        $userRecup = $um->getUserById($userId);
        /**
         * Je récupère l'autre user grâce au login qu'il a encodé dans le formulaire
         */
        $userTest = $um->getUserByUserName($userName);
        /**
         * Je compare les deux users pour voir si ce sont les mêmes
         */
        if ($userTest->getUserName() != $userRecup->getUserName()) {
            echo "<section class='row'>";
            echo "<br><br><br><br><br><br><br><br><br><br><br><br><div class='alert alert-danger' role='alert'>Votre nom d'utilisateur ne correspond pas à l'utilisateur possédant ce code d'activation !</div>";
            echo "</section>";
        } else {
            $userRecup->setMdp($mdp);
            $am->deleteActivation($ac);
            $um->updateUserMdp($userRecup);
            echo "<br><br><br><br><br><br><br><br><br><br><br><br><div class='alert alert-success' role='success'>Votre mot de passe a bien été modifié, vous pouvez vous connecter !</div>";
            echo "<meta http-equiv='refresh' content='2; URL=connexion.page.php'>";
        }
    }
}
예제 #23
0
    <div class="col-lg-12">
        <section class="row">
            <article class="col-lg-12 col-sm-12">
                <?php 
echo "<div class='media'>";
echo "<div class='media-right media-middle' >";
echo "<img class='media-object' src='Images/accueil/ampoule.png' alt='EveryDayIdea' >";
echo "</div>";
echo "<div class='media-body media-right'>";
echo "<h3  class='media-heading'>Activité du jour </h3>";
if (!isConnect()) {
    echo "Pour bénéficier de cette fonctionnalité, vous devez <a href='Page/connexion.page.php'><b>être connecté !</b></a>";
} else {
    $uam = new User_ActivityManager(connexionDb());
    $tab = $uam->getActIdByUserId($_SESSION['User']);
    $am = new ActivityManager(connexionDb());
    if (!isset($tab[0]['id_activity'])) {
        echo "Vous n'avez pas encore choisi d'activité aujourd'hui ! <a href='Page/choisirCategorie.page.php'><b>Choississez-en une</b></a> !";
    } else {
        $act = $am->getActivityById($tab[0]['id_activity']);
        echo "<p><Votre activité choisie du jour est :</p>";
        echo "<div class='activityIndex'>";
        echo "<img class='photoAct' src='Images/activite/" . $tab[0]['id_activity'] . ".jpg' alt='photoActivite' />";
        echo "<p><h3>" . $act->getLibelle() . "</h3></p>";
        echo "<p> Sa description est : <h4>" . $act->getDescription() . "</h4></p>";
        echo "</div>";
        echo "<div id='info'>";
        echo "<p> Il est toujours possible de la changer via <b><a href='Page/choisirCategorie.page.php'>le choix d'activités</a></b> !</p>";
        echo "<p><b> Bon amusement !</b></p>";
        echo "</div>";
    }
예제 #24
0
    //variables contenant les informations de connexion ainsi que la DB
    $serveur = '127.0.0.1';
    $pseudo = 'root';
    $pwd = '';
    $db = 'rpg_donjon';
    static $pdo = null;
    if ($pdo === NULL) {
        // Connexion à la base.
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $pdo_options[PDO::ATTR_PERSISTENT] = true;
        $pdo = new PDO("mysql:host={$serveur};dbname={$db}", $pseudo, $pwd, $pdo_options);
        $pdo->exec("Set Character set UTF8");
    }
    return $pdo;
}
$pdo = connexionDb();
/**
 * Prépare et éxécute une requête
 * @param string $query requête a ééxécuter
 * @param tableau $params  éventuel paramètre pour la requête
 * @return PDOStatement
 */
function PrepareExecute($query, $params = NULL)
{
    global $pdo;
    // Préparation de la requête SQL.
    $st = $pdo->prepare($query);
    // Execution de la requête SQL.
    $st->execute($params);
    return $st;
}