<? error_reporting(E_ALL);
ini_set('display_errors',1);
?>
<html>
<!--    cibl&eacute; par:  rien, page de d&eacute;part

		cible:  	menu.php
 -->

<!-- param&egrave;tre &eacute;mis:        -usager               le nom d'usager
							-password             le mot de passe							
 -->

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Gestion des bases</title>
</head>
<body>

<?php  

//Fichier de code pour les fonctions.
require("outils/mise_en_page.php");
require("outils/session.php");

//Lire les couleurs par d&eacute;faut puisqu'on ne peut pas encore lire les couleurs personnalis&eacute;es.
$specs = pageDefaultSpecs();

$usager = $_POST["usager"];
$password = $_POST["password"];

//Si on a un code d'usager &agrave; traiter...
if (!empty($usager))
{ 
	//Si on a un mot de passe pour l'usager sp&eacute;cifi&eacute;...
	if (!empty($password))
	{
		//Connecter au serveur MySQL
		$link = @mysqli_connect("p:localhost", "scoutsducanada_scoutsmmbase", "26Iordplm","scoutsducanada_scoutsmmbase") 
		or die("ne peut se connecter au serveur");

		//Formuler la requ&ecirc;te
		$sql = "SELECT usager.gestion_bases
                FROM usager 
                WHERE usager.usager = '$usager' 
			   	  AND usager.motdepasse = '$password'
				  and usager.gestion_bases != '0';";

		//Ex&eacute;cuter la requ&ecirc;te et mettre les r&eacute;sultats dans $result
		$result = mysqli_query($link,$sql);

		//Obtenir le nombre d'enregistrement. 0 si invalide, 1 si valide.
		$num = mysqli_num_rows($result);

		//Lib&eacute;rer la m&eacute;moire.
		mysqli_free_result ($result);

		//Si les nom d'usager et mot de passe ont &eacute;t&eacute; valid&eacute;s...
		if ($num != "0") 
		{
			//Cr&eacute;ation du code d'identification de la session.
			srand((double)microtime()*1000000); // seed the ramdom number generator
			$Bsession_id = md5(uniqid(rand())); // construct the sessionid

			//Inscrire le code de session dans la table usager.
			$sql = "update usager 
				set usager.Bidsession='$Bsession_id'
          	    WHERE usager.usager='$usager';";

			//Ex&eacute;cuter la requ&ecirc;te de mise &agrave; jour.
			$result = mysqli_query($link,$sql)
				or die("Ne peut se connecter &agrave; la table !");

			//Rediriger vers la page du menu principal du bottin.
			redirigerMenu();
		
		}
		else
		{
			//Les nom d'usager et mot de passe ne concordent pas, l'acc&egrave;s est donc refus&eacute;.
			afficherErreur();
		}
	} 			
	else
	{
		//L'usager n'a pas sp&eacute;cifi&eacute; de mot de passe.
		afficherInvalide();
	}
}
else
{
	//Afficher l'invite normale pour entrer le nom d'usager et le mot de passe.
	afficherInvite();
}

/***************************************************************************
 * redirigerMenu
 *
 * T�che: Rediriger la page courante vers la page du menu principal.
 *
 **************************************************************************/

function redirigerMenu()
{
	global $Bsession_id;			//Num&eacute;ro de la session, variable globale.

	//FIXME: Utiliser makeLinkButton()

	//Faire une redirection de site en JavaScript.
	print("\n\n<script language='JavaScript'>\n");
	print("document.location = 'menu-base.php?Bsession_id=".$Bsession_id."';\n");
	print("</script>\n\n");
}

/***************************************************************************
 * afficherErreur
 *
 * T�che: Mise en page lorsque l'utilisateur se voit refus&eacute; l'acc&egrave;s
 *        au site &agrave; cause d'un nom d'usager et/ou d'un mot de passe
 *        invalide.
 *
 **************************************************************************/

function afficherErreur()
{
	global $specs;			//Attributs des couleurs, variable globale.

	//Afficher le titre de la page.
	afficherTitrePrincipal();

	//Afficher le message d'erreur.
	pageUserError("Vous devez sp&eacute;cifier un nom d'usager et un mot de passe valides !", $specs);

	//Afficher le formulaire d'entr&eacute;e du nom d'usager et du mot de passe.
	afficherLogin();
}

/***************************************************************************
 * afficherInvalide
 *
 * T�che: Mise en page lorsque l'utilisateur a omis d'inscrire
 *        son mot de passe.
 *
 **************************************************************************/

function afficherInvalide()
{
	global $specs;		//Attributs des couleurs, variable globale.

	//Afficher le titre de la page.
	afficherTitrePrincipal();

	//Afficher le message d'erreur.
	pageUserError("Vous avez oubli&eacute; de sp&eacute;cifier votre mot de passe ! ", $specs);

	//Afficher le formulaire d'entr&eacute;e du nom d'usager et du mot de passe.
	afficherLogin();
}

/***************************************************************************
 * afficherInvite
 *
 * T�che: Mise en page principale demandant &agrave; l'utilisateur d'entrer
 *        son nom d'usager et son mot de passe afin d'avoir acc&egrave;s au
 *        menu principal du site.
 *
 **************************************************************************/

function afficherInvite()
{
	global $specs;		//Attributs des couleurs, variable globale.

	//Afficher le titre de la page.
	afficherTitrePrincipal();

	//Afficher l'invite d'entr&eacute;e du nom d'utilisateur et du mot de passe.
	pageTitreSection("Veuillez entrer votre nom d'usager et votre mot de passe", $specs);
	print("<p>");

	//Afficher le formulaire d'entr&eacute;e du nom d'usager et du mot de passe.
	afficherLogin();
}

/***************************************************************************
 * afficherTitrePrincipal
 *
 * T�che: Afficher le titre principal de la fen&ecirc;tre de login du site.
 *        Ce titre doit toujours &ecirc;tre en haut de la fen&ecirc;tre, peu importe
 *        les messages d'erreur.
 *
 **************************************************************************/

function afficherTitrePrincipal()
{
	global $specs;		//Attributs des couleurs, variable globale.

	//D&eacute;finir le tag <BODY> de la page avec les couleurs par d&eacute;faut.
	pageMakeBody($specs);

	//Obtenir la couleur du titre de la page.
	$couleur = pageGetCouleurTitre($specs);

	//Afficher le titre de la page avec la couleur de titre par d&eacute;faut.
	print("<center><h1><font color=#$couleur>");
	print("Bienvenue dans le gestionnaire des Bases des Scouts du Montr&eacute;al m&eacute;tropolitain");
	print("</font></h1></center><p><hr><p>&nbsp;<p>");
}

/***************************************************************************
 * afficherLogin
 *
 * T�che: Afficher le formulaire d'entr&eacute;e du nom d'usager et du mot
 *        de passe.
 *
 **************************************************************************/

function afficherLogin()
{
	global $usager,				//Nom d'usager de la derni&egrave;re tentative.
           $specs;				//Attributs de couleur.

	//D&eacute;finir le formulaire.
	print("<form action=\"index.php\" method=\"post\" name=\"myform\">");

	//Cadre pour la mise en page.
	print("<table width=500 cellspacing=6>");

	//Nom d'usager.

	print("<tr><td>");
	pageCaptionCouleur("Nom d'usager:", $specs);

	print("</td><td><div align=right>");
	print("<input type=\"text\" name=\"usager\" value=\"$usager\" maxlength=\"20\" size=\"40\">");

	//Mot de passe.

	print("</div></td></tr><tr><td>");
	pageCaptionCouleur("Mot de passe:", $specs);

	print("</td><td><div align=right>");
	print("<input type=\"password\" name=\"password\" maxlength=8 size=40><br>");

	//Bouton de validation.

	print("</div></td></tr><tr><td>&nbsp;</td><td><br><div align=right>");
	print("<input type=\"submit\" value=\"Valider\">");

	//Fermer le tableau ainsi que le formulaire.

	print("</div></td></tr></table>");
	print("</form>");
}

?>

</body>
</html>
