<commit_before><?php
	namespace core\auth;

	use core\App;
	use core\Configuration;
	use core\functions\DateHeure;
	use core\HTML\flashmessage\FlashMessage;

	class Connexion {

		public function __construct() {
			if (session_id() == null) {
				session_start();
			}
		}


		/**
		 * Fonction de connexions a un espace membre ou prive avec un login / mdp
		 * @param string $pseudo pseudo que l'utilisateur utilise pour se connecter
		 * @param string $mdp mot de passe que l'utilisateur utilise
		 * @param string $page_retour_err page de retour en cas d'err de mdp ou pseudo
		 * @param string $page_retour page de retour quand connexion ok
		 */
		public static function setLogin($pseudo, $mdp, $page_retour_err, $page_retour) {
			$dbc = App::getDb();

			//recup des donnees
			$pseudo = $dbc->quote(htmlspecialchars($pseudo));
			$mdp_noncrypt = $mdp;
			$mdp = md5(htmlspecialchars($mdp));

			$query = $dbc->query("select * from identite where pseudo=$pseudo");

			//aficher query tant que qqch dans $ligne
			if (count($query) > 0) {
				foreach ($query as $obj) {
					$id = $obj->ID_identite;
					$pseudo = $obj->pseudo;
					$valide = $obj->valide;
					$archiver = $obj->archiver;
				}
			}


			//verif si num enr = 0
			if (!isset($id)) {
				FlashMessage::setFlash("Vos identifiants de connexions sont incorrects");
				header("location:$page_retour_err");
			}
			else {
				$config = new Configuration();

				//cela veut dire que l'utilisateur doit obligatoirement etre valider pour avoir acces au site
				if (($config->getValiderInscription() == 1) && ((isset($valide)) && ($valide != 1))) {
					FlashMessage::setFlash("Votre compta n'a encore pas été validé par un administrateur, vous ne pouvez donc pas accéder à ce site, veuillez réesseyer ultérieurement");
					header("location:$page_retour_err");
				}

				//si le compte est archiver (bloqué) l'utilisateur ne peut pas se connecter au site
				if ((isset($archiver)) && ($archiver == 1)) {
					FlashMessage::setFlash("Votre compte a été bloqué par un administrateur, vous ne pouvez donc pas vous connecter à ce site, veuillez réesseyer ultérieurement");
					header("location:$page_retour_err");
				}
				
				$query2 = $dbc->query("select mdp from identite where ID_identite='$id'");
				foreach ($query2 as $obj2) {
					$mdpbdd = Encrypt::setDecryptMdp($obj2->mdp, $id);
				}
				

				//si les mdp sont egaux on redirige ver esace membre sinon ver login avec un mess d'erreur
				if (((isset($valide)) && ($valide != 1)) && ((isset($archiver)) && ($archiver == 1)) && ($mdp == $mdpbdd)) {
					$_SESSION['login'] = $pseudo;
					$_SESSION["idlogin".CLEF_SITE] = $id;

					//on test quand le user s'est connecté pour la derniere fois, si la date est supérrieur de trois jour, on refait un mdp
					$date_array = DateHeure::dateBddToArray(self::getlastConnexion($obj->ID_identite));
					$last_change_mdp = mktime(0, 0, 0, $date_array[1], $date_array[2], $date_array[0]);
					$today = mktime(0, 0, 0, date("m"), date("d"), date("Y"));

					if (($today - $last_change_mdp) > 259200) {
						self::setUpdatelastConnexion($id);

						$membre = new Membre($id);
						$membre->setMdp($mdpbdd, $mdp_noncrypt, $mdp_noncrypt);

						if (isset($_POST['remember'])) {
							setcookie("auth".CLEF_SITE, $id."-----".sha1($pseudo.$membre->getMdp()), time() + 3600 * 24 * 3, "/", "", false, true);
						}
					}
					else {
						if (isset($_POST['remember'])) {<commit_msg>update setLogin in Connexion class<commit_after><?php
	namespace core\auth;

	use core\App;
	use core\Configuration;
	use core\functions\DateHeure;
	use core\HTML\flashmessage\FlashMessage;

	class Connexion {

		public function __construct() {
			if (session_id() == null) {
				session_start();
			}
		}


		/**
		 * Fonction de connexions a un espace membre ou prive avec un login / mdp
		 * @param string $pseudo pseudo que l'utilisateur utilise pour se connecter
		 * @param string $mdp mot de passe que l'utilisateur utilise
		 * @param string $page_retour_err page de retour en cas d'err de mdp ou pseudo
		 * @param string $page_retour page de retour quand connexion ok
		 */
		public static function setLogin($pseudo, $mdp, $page_retour_err, $page_retour) {
			$dbc = App::getDb();

			//recup des donnees
			$pseudo = $dbc->quote(htmlspecialchars($pseudo));
			$mdp_noncrypt = $mdp;
			$mdp = md5(htmlspecialchars($mdp));

			$query = $dbc->query("select * from identite where pseudo=$pseudo");

			//aficher query tant que qqch dans $ligne
			if (count($query) > 0) {
				foreach ($query as $obj) {
					$id = $obj->ID_identite;
					$pseudo = $obj->pseudo;
					$valide = $obj->valide;
					$archiver = $obj->archiver;
				}
			}


			//verif si num enr = 0
			if (!isset($id)) {
				FlashMessage::setFlash("Vos identifiants de connexions sont incorrects");
				header("location:$page_retour_err");
			}
			else {
				$config = new Configuration();

				//cela veut dire que l'utilisateur doit obligatoirement etre valider pour avoir acces au site
				if (($config->getValiderInscription() == 1) && ((isset($valide)) && ($valide != 1))) {
					FlashMessage::setFlash("Votre compta n'a encore pas été validé par un administrateur, vous ne pouvez donc pas accéder à ce site, veuillez réesseyer ultérieurement");
					header("location:$page_retour_err");
				}

				//si le compte est archiver (bloqué) l'utilisateur ne peut pas se connecter au site
				if ((isset($archiver)) && ($archiver == 1)) {
					FlashMessage::setFlash("Votre compte a été bloqué par un administrateur, vous ne pouvez donc pas vous connecter à ce site, veuillez réesseyer ultérieurement");
					header("location:$page_retour_err");
				}
				
				$query2 = $dbc->query("select mdp from identite where ID_identite='$id'");
				foreach ($query2 as $obj2) {
					$mdpbdd = Encrypt::setDecryptMdp($obj2->mdp, $id);
				}
				

				//si les mdp sont egaux on redirige ver esace membre sinon ver login avec un mess d'erreur
				if ($mdp == $mdpbdd) {
					$_SESSION['login'] = $pseudo;
					$_SESSION["idlogin".CLEF_SITE] = $id;

					//on test quand le user s'est connecté pour la derniere fois, si la date est supérrieur de trois jour, on refait un mdp
					$date_array = DateHeure::dateBddToArray(self::getlastConnexion($obj->ID_identite));
					$last_change_mdp = mktime(0, 0, 0, $date_array[1], $date_array[2], $date_array[0]);
					$today = mktime(0, 0, 0, date("m"), date("d"), date("Y"));

					if (($today - $last_change_mdp) > 259200) {
						self::setUpdatelastConnexion($id);

						$membre = new Membre($id);
						$membre->setMdp($mdpbdd, $mdp_noncrypt, $mdp_noncrypt);

						if (isset($_POST['remember'])) {
							setcookie("auth".CLEF_SITE, $id."-----".sha1($pseudo.$membre->getMdp()), time() + 3600 * 24 * 3, "/", "", false, true);
						}
					}
					else {
						if (isset($_POST['remember'])) {
{'fraction_non_alphanumeric': 0.1462133372245732, 'fraction_numerical': 0.009922661608054866, 'mean_word_length': 3.5481088254810884, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 31, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6019763', 'n_tokens_mistral': 2868, 'n_tokens_neox': 2361, 'n_words': 654}