* Traite les données envoyées par le client.\r
*/\r
include_once("class_participant.php");
+
+// un message peut être produit par le controlleur
+$message_utilisateur = NULL;
+
+/**
+ * Traiter les données de l'inscription (trim par exemple).
+ */
+function traiter_donnees_inscription()
+{
+ $_POST['pseudo'] = trim($_POST['pseudo']);
+}
+
+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)
+ {
+ $message_utilisateur = "Le pseudo '".$_POST["pseudo"]."' est déjà pris";
+ return TRUE;
+ }
+ return FALSE;
+}
\r
/**\r
* Renvoie TRUE si les données d'une inscription sont valides (POST).\r
$_POST['nom'] != "" &&\r
$_POST['prenom'] != "" &&\r
$_POST['e_mail'] != "";\r
+}
+
+/**
+ * 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();
+
+ 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].")
+ ");
+ }
}\r
\r
-# insciption d'un nouveau participant
+# inscription d'un nouveau participant
if (isset($_POST['inscription']) && !Participant::nombre_participant_max_atteint())
-{ \r
- # vérification des données\r
- if (\r
+{
+ traiter_donnees_inscription();
+ if (!login_deja_pris() && # vérification des données\r
donnees_inscription_valides() &&\r
$_POST['accord'] == "on"\r
)\r
'".addslashes($_POST['e_mail'])."',\r
'".addslashes($_POST['remarques'])."'\r
)"\r
- );\r
- mysql_query("COMMIT");\r
- }\r
+ );
+ $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);
+ $le_participant = new participant($_POST['pseudo'], $_POST['pass1']);
+ setcookie("COOKIE_INFO_PATICIPANT", $le_participant->info->id, time() + 31104000);
+ $page = "bienvenue";\r
+ }
}
# un participant modifie ses infos
else if(isset($_POST['modification_participant']) && $le_participant->valide)
-{\r
- if (donnees_inscription_valides())\r
+{
+ traiter_donnees_inscription();
+ if (!login_deja_pris() && donnees_inscription_valides())\r
{\r
mysql_query("BEGIN TRANSACTION");
mysql_query("UPDATE participants SET pseudo = '".addslashes($_POST['pseudo'])."' 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);\r
- mysql_query("COMMIT");\r
+ mysql_query("UPDATE participants SET remarques = '".addslashes($_POST['remarques'])."' WHERE id = " . $le_participant->info->id);
+ set_periodes($le_participant->info->id);\r
+ 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\r
}
}\r
# vote pour des jeux\r