-<?php # coding:utf-8
-/**
- * Traite les données envoyées par le client.
- */
-include_once("class_participant.php");
-
-// un message peut être produit par le controlleur
-$message_utilisateur = NULL;
+<?php # coding: utf-8
/**
- * Traiter les données de l'inscription (trim par exemple).
- */
-function traiter_donnees_inscription()
+ * Controller traite les données envoyées par le client.
+ */
+class Controller
{
- $_POST['pseudo'] = trim($_POST['pseudo']);
-}
+ private $participant;
+ public $message_utilisateur = NULL;
-function login_deja_pris()
-{
- global $le_participant;
- global $message_utilisateur;
- if ($le_participant->valide && strtolower($le_participant->info->pseudo) === strtolower($_POST['pseudo'])) // le pseudo n'a pas changé
- return FALSE;
-
- $loginDejaPris = mysql_fetch_array(mysql_query("SELECT count(*) FROM participants WHERE pseudo = '".addslashes($_POST['pseudo'])."'"));
- if ($loginDejaPris[0] > 0)
+ function Controller($participant)
{
- $message_utilisateur = "Le pseudo '".$_POST["pseudo"]."' est déjà pris";
- return TRUE;
- }
- return FALSE;
-}
+ $this->participant = $participant;
+
+ # inscription d'un nouveau participant
+ if (isset($_POST['inscription']) && !Participant::nombre_participant_max_atteint())
+ {
+ if ($config->get("inscription_terminees"))
+ return;
-/**
- * Renvoie TRUE si les données d'une inscription sont valides (POST).
- */
-function donnees_inscription_valides()
-{
- return
- $_POST['pseudo'] != "" &&
- $_POST['pass1'] != "" &&
- $_POST['pass1'] == $_POST['pass2'] &&
- strlen($_POST['pass1']) >= 3 &&
- $_POST['nom'] != "" &&
- $_POST['prenom'] != "" &&
- $_POST['e_mail'] != "";
-}
+ traiter_donnees_inscription();
+ if (!login_deja_pris() && # vérification des données
+ donnees_inscription_valides() &&
+ $_POST['accord'] == "on"
+ )
+ {
+ mysql_query("BEGIN TRANSACTION");
+ mysql_query("
+ INSERT INTO participants
+ (pseudo, password, clan_nom, clan_tag, nom, prenom, age, e_mail, remarques)
+ VALUES (
+ '".addslashes($_POST['pseudo'])."',
+ '".addslashes($_POST['pass1'])."',
+ '".addslashes($_POST['clan_nom'])."',
+ '".addslashes($_POST['clan_tag'])."',
+ '".addslashes($_POST['nom'])."',
+ '".addslashes($_POST['prenom'])."',
+ '".addslashes($_POST['age'])."',
+ '".addslashes($_POST['e_mail'])."',
+ '".addslashes($_POST['remarques'])."'
+ )"
+ );
+ $id = mysql_insert_id();
+ set_periodes($id);
+ mysql_query("COMMIT");
+
+ $this->participant = new participant($_POST['pseudo'], $_POST['pass1']);
+ setcookie("COOKIE_INFO_PATICIPANT", $this->participant->info->id, time() + 31104000);
+ $page = "bienvenue";
+ }
+ }
+ # un participant modifie ses infos
+ else if(isset($_POST['modification_participant']) && $this->participant->valide)
+ {
+ if ($config->get("inscription_terminees"))
+ return;
-/**
- * Met à jour les periodes du participant dont l'id est donnée
- * en fonction de $_POST["periodes"]
- * Attention, cette fonction doit être appelée dans une transaction.
- */
-function set_periodes($id)
-{
- $periodes = $_POST['periodes'];
- if (!$periodes)
- $periodes = array();
+ traiter_donnees_inscription();
+ if (!login_deja_pris() && donnees_inscription_valides())
+ {
+ mysql_query("BEGIN TRANSACTION");
+ mysql_query("UPDATE participants SET pseudo = '".addslashes($_POST['pseudo'])."' WHERE id = " . $this->participant->info->id);
+ mysql_query("UPDATE participants SET password = '".addslashes($_POST['pass1'])."' WHERE id = " . $this->participant->info->id);
+ mysql_query("UPDATE participants SET clan_nom = '".addslashes($_POST['clan_nom'])."' WHERE id = " . $this->participant->info->id);
+ mysql_query("UPDATE participants SET clan_tag = '".addslashes($_POST['clan_tag'])."' WHERE id = " . $this->participant->info->id);
+ mysql_query("UPDATE participants SET nom = '".addslashes($_POST['nom'])."' WHERE id = " . $this->participant->info->id);
+ mysql_query("UPDATE participants SET prenom = '".addslashes($_POST['prenom'])."' WHERE id = " . $this->participant->info->id);
+ mysql_query("UPDATE participants SET age = '".addslashes($_POST['age'])."' WHERE id = " . $this->participant->info->id);
+ mysql_query("UPDATE participants SET e_mail = '".addslashes($_POST['e_mail'])."' WHERE id = " . $this->participant->info->id);
+ mysql_query("UPDATE participants SET remarques = '".addslashes($_POST['remarques'])."' WHERE id = " . $this->participant->info->id);
+ set_periodes($this->participant->info->id);
+ mysql_query("COMMIT");
+ //header("Location: /inscrits.html");
+ $this->message_utilisateur = "Les modifications ont été enregistrées";
+ $page = "inscrits"; // TODO : moche car la page ne va plus correspondre à l'url
+ }
+ }
+ # vote pour des jeux (autorisé même lorsque les inscriptions sont terminées)
+ else if (isset($_POST['set_jeux_joues']) && $this->participant->valide)
+ {
+ $votes = $_POST['votes'];
+ if (!$votes)
+ $votes = array();
+
+ mysql_query("BEGIN TRANSACTION");
+
+ # l'utilisateur peut proposer le nom d'un jeu qui ne se trouve pas dans la liste
+ $jeu = trim($_POST['jeu']);
+ if ($jeu !== '')
+ {
+ mysql_query("INSERT INTO jeux (nom) VALUES ('".addslashes($jeu)."')");
+ $id = mysql_insert_id();
+ if ($id != 0) # si le jeu se trouve déjà dans la liste alors $id == 0
+ array_unshift($votes, $id);
+ }
+
+ # suppression des anciens votes (remplacement par les nouveaux)
+ mysql_query("DELETE FROM jeux_choisis WHERE participant_id = " . $this->participant->info->id);
+
+ # traite les trois premiers votes
+ for ($i = 0; $i < count($votes) && $i < $config->get('nb_votes_jeux'); $i++)
+ {
+ mysql_query("INSERT INTO jeux_choisis (participant_id, jeu_id) VALUES (".$this->participant->info->id.", ".(int)$votes[$i].")");
+ }
+
+ mysql_query("COMMIT");
+ }
+ }
- mysql_query("DELETE FROM participations WHERE participant_id = " . (int)$id);
- for ($i = 0; $i < count($periodes); $i++)
+ /**
+ * Traiter les données de l'inscription (trim par exemple).
+ */
+ private function traiter_donnees_inscription()
{
- mysql_query("
- INSERT INTO participations (participant_id, periode_id)
- VALUES (".$id.", ".(int)$periodes[$i].")
- ");
+ $_POST['pseudo'] = trim($_POST['pseudo']);
}
-}
-
-# inscription d'un nouveau participant
-if (isset($_POST['inscription']) && !Participant::nombre_participant_max_atteint())
-{
- if ($config->get("inscription_terminees"))
- return;
- traiter_donnees_inscription();
- if (!login_deja_pris() && # vérification des données
- donnees_inscription_valides() &&
- $_POST['accord'] == "on"
- )
+ private function login_deja_pris()
{
- mysql_query("BEGIN TRANSACTION");
- mysql_query("
- INSERT INTO participants
- (pseudo, password, clan_nom, clan_tag, nom, prenom, age, e_mail, remarques)
- VALUES (
- '".addslashes($_POST['pseudo'])."',
- '".addslashes($_POST['pass1'])."',
- '".addslashes($_POST['clan_nom'])."',
- '".addslashes($_POST['clan_tag'])."',
- '".addslashes($_POST['nom'])."',
- '".addslashes($_POST['prenom'])."',
- '".addslashes($_POST['age'])."',
- '".addslashes($_POST['e_mail'])."',
- '".addslashes($_POST['remarques'])."'
- )"
- );
- $id = mysql_insert_id();
- set_periodes($id);
- mysql_query("COMMIT");
-
- $le_participant = new participant($_POST['pseudo'], $_POST['pass1']);
- setcookie("COOKIE_INFO_PATICIPANT", $le_participant->info->id, time() + 31104000);
- $page = "bienvenue";
+ if ($this->participant->valide && strtolower($this->participant->info->pseudo) === strtolower($_POST['pseudo'])) // le pseudo n'a pas changé
+ return FALSE;
+
+ $loginDejaPris = mysql_fetch_array(mysql_query("SELECT count(*) FROM participants WHERE pseudo = '".addslashes($_POST['pseudo'])."'"));
+ if ($loginDejaPris[0] > 0)
+ {
+ $this->message_utilisateur = "Le pseudo '".$_POST["pseudo"]."' est déjà pris";
+ return TRUE;
+ }
+ return FALSE;
}
-}
-# un participant modifie ses infos
-else if(isset($_POST['modification_participant']) && $le_participant->valide)
-{
- if ($config->get("inscription_terminees"))
- return;
- traiter_donnees_inscription();
- if (!login_deja_pris() && donnees_inscription_valides())
- {
- mysql_query("BEGIN TRANSACTION");
- mysql_query("UPDATE participants SET pseudo = '".addslashes($_POST['pseudo'])."' WHERE id = " . $le_participant->info->id);
- mysql_query("UPDATE participants SET password = '".addslashes($_POST['pass1'])."' WHERE id = " . $le_participant->info->id);
- mysql_query("UPDATE participants SET clan_nom = '".addslashes($_POST['clan_nom'])."' WHERE id = " . $le_participant->info->id);
- mysql_query("UPDATE participants SET clan_tag = '".addslashes($_POST['clan_tag'])."' WHERE id = " . $le_participant->info->id);
- mysql_query("UPDATE participants SET nom = '".addslashes($_POST['nom'])."' WHERE id = " . $le_participant->info->id);
- mysql_query("UPDATE participants SET prenom = '".addslashes($_POST['prenom'])."' WHERE id = " . $le_participant->info->id);
- mysql_query("UPDATE participants SET age = '".addslashes($_POST['age'])."' WHERE id = " . $le_participant->info->id);
- mysql_query("UPDATE participants SET e_mail = '".addslashes($_POST['e_mail'])."' WHERE id = " . $le_participant->info->id);
- mysql_query("UPDATE participants SET remarques = '".addslashes($_POST['remarques'])."' WHERE id = " . $le_participant->info->id);
- set_periodes($le_participant->info->id);
- mysql_query("COMMIT");
- //header("Location: /inscrits.html");
- $message_utilisateur = "Les modifications ont été enregistrées";
- $page = "inscrits"; // TODO : moche car la page ne va plus correspondre à l'url
- }
-}
-# vote pour des jeux (autorisé même lorsque les inscriptions sont terminées)
-else if (isset($_POST['set_jeux_joues']) && $le_participant->valide)
-{
- $votes = $_POST['votes'];
- if (!$votes)
- $votes = array();
-
- mysql_query("BEGIN TRANSACTION");
-
- # l'utilisateur peut proposer le nom d'un jeu qui ne se trouve pas dans la liste
- $jeu = trim($_POST['jeu']);
- if ($jeu !== '')
+ /**
+ * Renvoie TRUE si les données d'une inscription sont valides (POST).
+ */
+ private function donnees_inscription_valides()
{
- mysql_query("INSERT INTO jeux (nom) VALUES ('".addslashes($jeu)."')");
- $id = mysql_insert_id();
- if ($id != 0) # si le jeu se trouve déjà dans la liste alors $id == 0
- array_unshift($votes, $id);
+ return
+ $_POST['pseudo'] != "" &&
+ $_POST['pass1'] != "" &&
+ $_POST['pass1'] == $_POST['pass2'] &&
+ strlen($_POST['pass1']) >= 3 &&
+ $_POST['nom'] != "" &&
+ $_POST['prenom'] != "" &&
+ $_POST['e_mail'] != "";
}
-
- # suppression des anciens votes (remplacement par les nouveaux)
- mysql_query("DELETE FROM jeux_choisis WHERE participant_id = " . $le_participant->info->id);
- # traite les trois premiers votes
- for ($i = 0; $i < count($votes) && $i < $config->get('nb_votes_jeux'); $i++)
+ /**
+ * Met à jour les periodes du participant dont l'id est donnée
+ * en fonction de $_POST["periodes"]
+ * Attention, cette fonction doit être appelée dans une transaction.
+ */
+ private function set_periodes($id)
{
- mysql_query("INSERT INTO jeux_choisis (participant_id, jeu_id) VALUES (".$le_participant->info->id.", ".(int)$votes[$i].")");
+ $periodes = $_POST['periodes'];
+ if (!$periodes)
+ $periodes = array();
+
+ mysql_query("DELETE FROM participations WHERE participant_id = " . (int)$id);
+ for ($i = 0; $i < count($periodes); $i++)
+ {
+ mysql_query("
+ INSERT INTO participations (participant_id, periode_id)
+ VALUES (".$id.", ".(int)$periodes[$i].")
+ ");
+ }
}
-
- mysql_query("COMMIT");
}
+
?>