commit 474f4258c53941ee6f09e2959a87e7d523c1608d
parent 6f09cacb534a328cb0b8e4be4e084fbd41b08c36
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Thu, 24 Feb 2011 20:04:47 +0100
Améliorations sur le site (voir le reste du commentaire pour les détails)
* Lisibilité (liens qui ressortent plus, footer un peu plus gros (là il fallait une loupe :) )).
* Affichage des messages sur la page de destination pour signup.
* Possibilité d'afficher un message sur n'importe quelle page sur laquelle on redirect ( index.php?show_msg=ok_signup_registered par ex.).
* Regrouppement de tous les messages dans ressources/strings.inc, pour les affichages (point précédent) et pour que la vérification de l'orthographe soit plus facile (pas besoin de lire tout le code).
* Nettoyage des paramètres à certains endroits où ça avait été oublié (mais il en reste).
* Correction de quelques bugs (appel à la fonction mDie qui n'existe pas par ex.).
* On ne peut faire de redirect que sur nos pages, pour éviter un exploit par redirect.
* Signup connecte automatiquement l'utilisateur si l'inscription a fonctionné.
* Ajout de liens entre signup et login. Si on clique sur un des lien, la page de retour reste la bonne (par exemple download, au lieu de devenir login).
* Ré-indentation, uniformisation du style du code (plus ou moins, et plus moins que plus).
* Factorisation du code.
* Correction de la couleur du lien Télécharger.
* Correction de quelques bugs d'alignement (il en reste).
Diffstat:
12 files changed, 507 insertions(+), 458 deletions(-)
diff --git a/code/serveur/php/contact.php b/code/serveur/php/contact.php
@@ -1,9 +1,11 @@
<?php
+require_once("ressources/strings.inc");
session_start();
$displayForm = true;
$emailaddress = "";
$mailfile = "mails.txt";
+$msg = null;
function writemail($filename,$email,$subject,$message)
{
@@ -13,7 +15,7 @@ function writemail($filename,$email,$subject,$message)
fprintf($file,"%s\n%s\n%s\n\n",$email,$subject,$message);
}
else
- die("Erreur lors de l'ouverture du fichier d'enregistrement de mails");
+ die($strings['err_contact_open_mailfile']);
fclose($file);
}
@@ -22,35 +24,30 @@ function writemail($filename,$email,$subject,$message)
if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message']))
if(!empty($_POST['email']) && !empty($_POST['subject']) && !empty($_POST['message']))
{
- $from = $_POST['email'];
- $subject = $_POST['subject'];
- $header = 'From: '.$from . "\r\n" .
- 'Reply-To: '.$from . "\r\n" .
- 'X-Mailer: PHP/' . phpversion();
- $dest = $emailaddress;
- $message = str_replace("\r\n","\n",$_POST['message']);
-
- writemail($mailfile,$from,$subject,$message);
+ $from = $_POST['email'];
+ $subject = $_POST['subject'];
+ $header = 'From: '.$from . "\r\n" .
+ 'Reply-To: '.$from . "\r\n" .
+ 'X-Mailer: PHP/' . phpversion();
+ $dest = $emailaddress;
+ $message = str_replace("\r\n","\n",$_POST['message']);
+
+ writemail($mailfile,$from,$subject,$message);
- /*if(mail($dest,$subject,$message,$header))
- {
- $notif = "Votre email à été envoyé";
- $displayForm = false;
- }
- else
- $notif = "Une erreur s'est produite lors de l'envoi du message";*/
-
- $notif = "Votre email à été envoyé";
+ /*if(mail($dest,$subject,$message,$header))
+ {
+ $msg = $strings['ok_msg_sent'];
+ $displayForm = false;
}
+ else
+ $msg = "Une erreur s'est produite lors de l'envoi du message";*/
+ $msg = $strings['ok_msg_sent'];
+ }
else
- $notif = "Veuillez remplir tout les champs";
-
-
-?>
+ $msg = $strings['err_contact_fill_all'];
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Titre</title>
@@ -58,64 +55,60 @@ if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message']
<link rel="stylesheet" href="ressources/simple.css" />
</head>
<body>
- <div class="menu">
- <?php include("ressources/menu.inc"); ?>
- </div>
+ <?php include("ressources/menu.inc"); ?>
<div class="content">
+ <?php include("ressources/showmsg.inc"); ?>
+ <h2>Contact</h2>
<?php
- if(isset($notif))
+ if($msg != null)
+ if($displayForm == true)
+ echo '<span class="message warning">'.htmlspecialchars($msg).'</span>';
+ else
+ echo '<span class="message success">'.htmlspecialchars($msg).'</span>';
+
if($displayForm == true)
- echo '<span class="message warning">'.$notif.'</span>';
- else
- echo '<span class="message success">'.$notif.'</span>';
-
- if($displayForm == true)
- {
- ?>
- <form action="contact.php" method="POST">
- <table class="contacttbl">
- <tr>
- <td>
- <label for="email">Votre e-mail : </label>
- </td>
- <td>
- <input type="text" id="email" name="email" />
- </td>
- </tr>
- <tr>
- <td>
- <label for="subject">Objet du mail : </label>
- </td>
- <td>
- <input type="text" id="subject" name="subject" />
- </td>
- </tr>
- <tr>
- <td>
- <label for="message">Votre message : </label>
- </td>
- <td>
- <textarea class="txMessage" id="message" name="message"></textarea>
- </td>
- </tr>
- <tr>
- <td>
-
- </td>
- <td>
- <span class="btSubmit"><input type="submit" value="Envoyer le message" /></span>
- </td>
- </tr>
- </table>
- </form>
- <?php
- }
+ { // Fin sous le <form> ci-dessous
+ ?>
+ <form action="contact.php" method="POST">
+ <table class="contacttbl">
+ <tr>
+ <td>
+ <label for="email">Votre e-mail : </label>
+ </td>
+ <td>
+ <input type="text" id="email" name="email" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <label for="subject">Objet du mail : </label>
+ </td>
+ <td>
+ <input type="text" id="subject" name="subject" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <label for="message">Votre message : </label>
+ </td>
+ <td>
+ <textarea class="txMessage" id="message" name="message"></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td>
+
+ </td>
+ <td>
+ <span class="btSubmit"><input type="submit" value="Envoyer le message" /></span>
+ </td>
+ </tr>
+ </table>
+ </form>
+ <?php
+ } // Fin de if($displayForm == true)
?>
</div>
- <div class="footer">
- <?php include("ressources/footer.inc"); ?>
- </div>
+ <?php include("ressources/footer.inc"); ?>
</body>
-</html><?php
-
-?>
+</html>
diff --git a/code/serveur/php/createGame.php b/code/serveur/php/createGame.php
@@ -1,4 +1,5 @@
<?php
+require_once("ressources/strings.inc");
session_start();
$err = false;
@@ -10,18 +11,12 @@ if(isset($_POST['nbcloudwords']))
for($i = 0; $i < $nbword; $i++)
if(!isset($_POST['word'.$i]) || empty($_POST['word'.$i])) {
$err = true;
- $msg = "Tous les mots du nage ne sont pas renseignés";
+ $msg = $strings['err_creategame_fill_all'];
}
if($err == false)
-
-
-$state = 0;
-?>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
+ $state = 0;
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>PtiClic Android - Création de partie</title>
@@ -29,30 +24,28 @@ $state = 0;
<link rel="stylesheet" href="ressources/simple.css" />
</head>
<body>
- <div class="menu">
- <?php include("ressources/menu.inc"); ?>
- </div>
+ <?php include("ressources/menu.inc"); ?>
<div class="content">
+ <?php include("ressources/showmsg.inc"); ?>
<form action="createGame.php" method="POST">
- <?php
- if(!isset($_POST["nbcloudwords"])) {
- echo '<input type="text" name="nbcloudwords" />';
- echo '<input type="submit" value="suivant" />';
- }
- else {
- echo '<input type="text" name="centralword" />';
-
- for($i = 0; $i < $_POST['nbcloudwords']; $i++)
- echo '<input type="text" name="word'.$i.'" />';
-
- echo '<input type="submit" value="Enregistrer la partie" />';
- }
- ?>
-
+ <?php
+ if(!isset($_POST["nbcloudwords"]))
+ {
+ echo '<input type="text" name="nbcloudwords" />';
+ echo '<input type="submit" value="suivant" />';
+ }
+ else
+ {
+ echo '<input type="text" name="centralword" />';
+
+ for($i = 0; $i < $_POST['nbcloudwords']; $i++)
+ echo '<input type="text" name="word'.$i.'" />';
+
+ echo '<input type="submit" value="Enregistrer la partie" />';
+ }
+ ?>
</form>
</div>
- <div class="footer">
- <?php include("ressources/footer.inc"); ?>
- </div>
+ <?php include("ressources/footer.inc"); ?>
</body>
</html>
diff --git a/code/serveur/php/download.php b/code/serveur/php/download.php
@@ -2,46 +2,39 @@
session_start();
if(!isset($_SESSION['userId']))
- header("location:login.php?return=download.php");
-
-?>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ header("location:login.php?return=download");
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
- <title>PtiClic sous Android, version Alpha - Téléchargement</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link rel="stylesheet" href="ressources/simple.css" />
+ <title>PtiClic sous Android, version Alpha - Téléchargement</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link rel="stylesheet" href="ressources/simple.css" />
</head>
<body>
- <div class="menu">
- <?php include("ressources/menu.inc"); ?>
- </div>
+ <?php include("ressources/menu.inc"); ?>
<div class="content">
+ <?php include("ressources/showmsg.inc"); ?>
<span class="downloadarea"><a href="ressources/pticlic.apk" id="downloadlink">Télécharger</a></span>
<h2>Installation de l'application</h2>
<h3> A partir de votre téléphone </h3>
<ul>
- <li> <a href="ressources/pticlic.apk" />Téléchargez le fichier d'installation</a></li>
- <li>Une fois téléchargé, cliquez sur le fichier dans la barre de notification d'Android et suivez
- les instructions d'installation. Vous devrez patientez quelques instant pendant l'installation.</li>
+ <li><a href="ressources/pticlic.apk">Téléchargez le fichier d'installation</a></li>
+ <li>Une fois téléchargé, cliquez sur le fichier dans la barre de notification d'Android et suivez
+ les instructions d'installation. Vous devrez patientez quelques instant pendant l'installation.</li>
<li>Une fois l'installation terminée, démarrez l'application</li>
<li> Suivez attentivement les instructions lors du premier démarrage de l'application</li>
</ul>
<h3> A partir de votre ordinateur </h3>
<ul>
- <li><a href="ressources/pticlic.apk">Téléchargez le fichier d'installation</a> </li>
- <li>Transférez ce fichier sur votre téléphone à l'aide de bluetooth, une clé usb ou autre</li>
- <li>Depuis votre téléphone, retrouvez sur votre carte mémoire l'application que vous
- venez de transférer</li>
- <li>Cliquez sur l'application afin de l'installer sur votre téléphone</li>
- <li>Suivez attentivement les instructions lors du premier démarrage de l'application</li>
+ <li><a href="ressources/pticlic.apk">Téléchargez le fichier d'installation</a> </li>
+ <li>Transférez ce fichier sur votre téléphone à l'aide de bluetooth, une clé usb ou autre</li>
+ <li>Depuis votre téléphone, retrouvez sur votre carte mémoire l'application que vous
+ venez de transférer</li>
+ <li>Cliquez sur l'application afin de l'installer sur votre téléphone</li>
+ <li>Suivez attentivement les instructions lors du premier démarrage de l'application</li>
</ul>
</div>
- <div class="footer">
- <?php include("ressources/footer.inc"); ?>
- </div>
+ <?php include("ressources/footer.inc"); ?>
</body>
</html>
diff --git a/code/serveur/php/index.php b/code/serveur/php/index.php
@@ -1,9 +1,6 @@
<?php
-session_start();
-?>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ session_start();
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
@@ -12,41 +9,45 @@ session_start();
<link rel="stylesheet" href="ressources/simple.css" />
</head>
<body>
- <div class="menu">
- <?php include("ressources/menu.inc"); ?>
- </div>
+ <?php include("ressources/menu.inc"); ?>
<div class="content">
+ <?php include("ressources/showmsg.inc"); ?>
<h2>Jeu PtiClic - Téléchargement gratuit</h2>
- <p>Vous aimez les jeux de mots ? Vous avez un smartphone sous Android ?
- PtiClic est pour vous !</p>
- <p>Soyez parmi les tous premiers à <a href="download.php">télécharger cette
- application gratuitement</a> en devenant Alpha-testeur.
- L'<a href="signup.php">inscription</a> est simple, il suffit de fournir
- une adresse mail, de créer un identifiant et vous pourrez commencer à jouer !</p>
- <!-- <p>Il ne s'agit pas d'une version d'essai et l'application ne contient aucun
- spyware.</p> -->
-
- <h2>Le principe du jeu</h2>
- <p>Un mot central apparaît ainsi que quatre associations
- telles que "synonyme", "antonyme", "est une sorte de", "corbeille"... L'idée est
- de lier de nouveaux mots au mot central à l'aide des associations.
- Plus votre réponse est juste, plus vous gagnez de points.
- Attention, vous pouvez aussi perdre des points !</p>
+ <p>
+ Vous aimez les jeux de mots ? Vous avez un smartphone sous Android ?
+ PtiClic est pour vous !
+ </p>
+ <p>
+ Soyez parmi les tous premiers à <a href="download.php">télécharger cette
+ application gratuitement</a> en devenant Alpha-testeur.
+ L'<a href="signup.php">inscription</a> est simple, il suffit de fournir
+ une adresse mail, de créer un identifiant et vous pourrez commencer à jouer !
+ </p>
+
+ <h2>Le principe du jeu</h2>
+ <p>
+ Un mot central apparaît ainsi que quatre associations
+ telles que "synonyme", "antonyme", "est une sorte de", "corbeille", … L'idée
+ est de lier de nouveaux mots au mot central à l'aide des associations.
+ Plus votre réponse est juste, plus vous gagnez de points.
+ Attention, vous pouvez aussi perdre des points !
+ </p>
<h2>Le développement de l'application</h2>
- <p>La version beta du jeu PtiClic sous Android est en cours de développement.
- Le projet s'inscrit dans le cadre d'un TER de Master en informatique
- à l'Université Montpellier II sous la direction de Mathieu LAFOURCADE. L'équipe
- de conception et de développement est composée de quatre étudiants : Bertrand BRUN,
- Yoann BONAVERO, John CHARRON et Georges DUPERON.
+ <p>
+ La version beta du jeu PtiClic sous Android est en cours de développement.
+ Le projet s'inscrit dans le cadre d'un TER de Master en informatique
+ à l'Université Montpellier II sous la direction de Mathieu LAFOURCADE. L'équipe
+ de conception et de développement est composée de quatre étudiants : Bertrand BRUN,
+ Yoann BONAVERO, John CHARRON et Georges DUPERON.
+ </p>
+ <h2>Votre rôle en tant qu'Alpha-testeur</h2>
+ <p>
+ L'application étant en phase de développement et offerte gratuitement,
+ nous serions reconnaissant si vous pouviez nous donner votre avis, vos suggestions,
+ vos idées. <a href="contact.php">Envoyez-nous un message !</a>
</p>
- <h2>Votre rôle en tant qu'Alpha-testeur</h2>
- <p>L'application étant en phase de développement et offerte gratuitement,
- nous serions reconnaissant si vous pouviez nous donner votre avis, vos suggestions,
- vos idées. <a href="contact.php">Envoyez-nous un message !</a></p>
- </div>
- <div class="footer">
- <?php include("ressources/footer.inc"); ?>
</div>
+ <?php include("ressources/footer.inc"); ?>
</body>
</html>
diff --git a/code/serveur/php/login.php b/code/serveur/php/login.php
@@ -1,18 +1,20 @@
<?php
-session_start();
+session_start();
+require_once("ressources/strings.inc");
+require_once("ressources/locations.inc");
+
+$msg = null;
if(isset($_POST['loginid']) && !empty($_POST['loginid']))
- $user = SQLite3::escapeString($_POST['loginid']);
+ $user = SQLite3::escapeString($_POST['loginid']);
if(isset($_POST['loginpswd']) && !empty($_POST['loginpswd']))
$pswd = md5($_POST['loginpswd']);
-if(isset($_GET['return']))
- $location = $_GET['return'];
-else
- $location = "index.php";
+
+$location = getlocation();
if(isset($_GET['d']) && $_GET['d'] == "true") {
session_destroy();
- header("location:index.php");
+ return_to($location, "?show_msg=ok_login_disconnect");
}
if(isset($user) && isset($pswd))
@@ -20,22 +22,20 @@ if(isset($user) && isset($pswd))
$SQL_DBNAME = (dirname(__FILE__) . "/db");
if (!$db = new SQlite3($SQL_DBNAME))
- mDie(1,"Erreur lors de l'ouverture de la base de données SQLite3");
+ die($strings['err_login_dbopen']);
if($pswd == ($db->querySingle("SELECT hash_passwd FROM user WHERE login='$user';"))) {
- $_SESSION['userId'] = $user;
+ $_SESSION['userId'] = $user; // Le login se fait aussi dans signup.
- header("location:".$location);
+ return_to($location);
}
else
- $msg = "Mauvais nom d'utilisateur ou mot de passe";
+ $msg = $strings['err_login_bad_user_pass'];
}
else if(isset($user) or isset($pswd))
- $msg = "Veuillez remplir tous les champs";
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+ $msg = $strings['err_login_fill_all'];
+?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Titre</title>
@@ -43,47 +43,47 @@ else if(isset($user) or isset($pswd))
<link rel="stylesheet" href="ressources/simple.css" />
</head>
<body>
- <div class="menu">
- <?php include("ressources/menu.inc"); ?>
- </div>
+ <?php include("ressources/menu.inc"); ?>
<div class="content">
- <p>Vous êtes déjà inscrit ? Authentifiez-vous :</p>
- <?php
- if(isset($msg))
- echo '<span class="message warning">'.$msg.'</span>';
- ?>
- <form name="loginform" method="post" action="login.php?return=<?php echo $location; ?>">
- <table class="logintbl">
- <tr>
- <td>
- <label for="loginid"> Identifiant :</label>
- </td>
- <td>
- <input name="loginid" type="text" /><br />
- </td>
- </tr>
- <tr>
- <td>
- <label for="loginpswd"> Mot de passe : </label>
- </td>
- <td>
- <input name="loginpswd" type="password" />
- </td>
- </tr>
- <tr>
- <td>
-
- </td>
- <td>
- <input type="submit" name="loginsubmit" value="Valider" />
- </td>
- </tr>
- </table>
- </form>
- </div>
+ <h2>Connexion</h2>
+ <?php include("ressources/showmsg.inc"); ?>
+ <h3>Vous êtes déjà inscrit ?</h3>
+ <p>Authentifiez-vous :</p>
+ <?php
+ if($msg !== null)
+ echo '<p class="message warning">'.htmlspecialchars($msg).'</p>';
+ ?>
+ <form name="loginform" method="post" action="login.php?return=<?php echo $location; ?>">
+ <table class="logintbl">
+ <tr>
+ <td>
+ <label for="loginid"> Identifiant :</label>
+ </td>
+ <td>
+ <input name="loginid" type="text" /><br />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <label for="loginpswd"> Mot de passe : </label>
+ </td>
+ <td>
+ <input name="loginpswd" type="password" />
+ </td>
+ </tr>
+ <tr>
+ <td>
- <div class="footer">
- <?php include("ressources/footer.inc"); ?>
+ </td>
+ <td>
+ <input type="submit" name="loginsubmit" value="Valider" />
+ </td>
+ </tr>
+ </table>
+ </form>
+ <h3>Vous n'avez pas encore de compte ?</h3>
+ <p><a href="signup.php?return=<?php echo $location; ?>">Inscrivez-vous !</a></p>
</div>
+ <?php include("ressources/footer.inc"); ?>
</body>
- </html>
+</html>
diff --git a/code/serveur/php/ressources/footer.inc b/code/serveur/php/ressources/footer.inc
@@ -1,23 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
- <head>
- <title>PtiClic sous Android -Version Alpha - Pied de page</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link rel="stylesheet" href="ressources/simple.css" />
- </head>
- <body>
+ <div class="footer">
<p>Les concepteurs du jeu :
<a href="http://www.lirmm.fr/~lafourcade/index2.html">Mathieu LAFOURCADE</a> et
- <a href="http://w3.u-grenoble3.fr/zampa/index.html">Virginie ZAMPA</a> -
- <a href="http://www.lirmm.fr/pticlic/pticlic.php?about=1">L'histoire du PtiClic</a> -
- <a href="http://www.lirmm.fr/pticlic/pticlic.php">Jouer au PtiClic sur un ordinateur</a> -
- <a href="http://www.lirmm.fr/jeuxdemots/jdm-accueil.php">Jeux de mots</a> -
+ <a href="http://w3.u-grenoble3.fr/zampa/index.html">Virginie ZAMPA</a> -
+ <a href="http://www.lirmm.fr/pticlic/pticlic.php?about=1">L'histoire du PtiClic</a> -
+ <a href="http://www.lirmm.fr/pticlic/pticlic.php">Jouer au PtiClic sur un ordinateur</a> -
+ <a href="http://www.lirmm.fr/jeuxdemots/jdm-accueil.php">Jeux de mots</a> -
<a href="http://www.univ-montp2.fr/">Université Montpellier II</a> -
- <a href="http://www.lirmm.fr/">
- Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier</a> -
+ <a href="http://www.lirmm.fr/">Laboratoire d'Informatique, de Robotique et de Microélectronique de Montpellier</a> -
<a href="contact.php">Nous contacter</a>
</p>
- - </body>
- </html>
-\ No newline at end of file
+ </div>
+\ No newline at end of file
diff --git a/code/serveur/php/ressources/locations.inc b/code/serveur/php/ressources/locations.inc
@@ -0,0 +1,26 @@
+<?php
+
+$location_list['download'] = "download.php";
+$location_list['index'] = "index.php";
+$location_list['contact'] = "contact.php";
+$location_list['createGame'] = "createGame.php";
+$location_list['login'] = "login.php";
+$location_list['signup'] = "signup.php";
+
+function return_to($location, $params = "") {
+ global $location_list;
+ if (array_key_exists($location,$location_list)) {
+ header("location:".$location_list[$location].$params);
+ } else {
+ header("location:index.php?show_msg=err_index_redirect");
+ }
+}
+
+function getlocation() {
+ if(isset($_GET['return']) && preg_match('/^[a-zA-Z0-9_]*$/', $_GET['return']))
+ return $_GET['return'];
+ else
+ return "index";
+}
+
+?>
+\ No newline at end of file
diff --git a/code/serveur/php/ressources/menu.inc b/code/serveur/php/ressources/menu.inc
@@ -1,19 +1,21 @@
-<h1>PtiClic <span class="android">sous Android™</span> - Version 0.1 Alpha</h1>
-
-<span id="links">
- <a href="index.php">Accueil</a>
- <a href="download.php">Téléchargement</a>
- <!-- <a href=".php">Créer des parties</a> -->
- <a href="contact.php">Contact</a>
-<?php
-if(!isset($_SESSION['userId'])) // Menu hors connexion.
-{?>
- <a id="cnx" "href="login.php">Se connecter</a>
- <a id="cnx" href="signup.php">S'incrire</a>
-
-<?php }
-else // Menu une fois connecté.
-{?>
- <a id="cnx" href="login.php?d=true">Se deconnecter</a>
-<?php } ?>
-</span>
+ <div class="menu">
+ <h1>PtiClic <span class="android">sous Android™</span> - Version 0.1 Alpha</h1>
+
+ <span id="links">
+ <a href="index.php">Accueil</a>
+ <a href="download.php">Téléchargement</a>
+ <!-- <a href=".php">Créer des parties</a> -->
+ <a href="contact.php">Contact</a>
+ <?php
+ if(!isset($_SESSION['userId'])) // Menu hors connexion.
+ {?>
+ <a id="cnx" href="login.php">Se connecter</a>
+ <a id="cnx" href="signup.php">S'incrire</a>
+
+ <?php }
+ else // Menu une fois connecté.
+ {?>
+ <a id="cnx" href="login.php?d=true">Se deconnecter</a>
+ <?php } ?>
+ </span>
+ </div>
+\ No newline at end of file
diff --git a/code/serveur/php/ressources/showmsg.inc b/code/serveur/php/ressources/showmsg.inc
@@ -0,0 +1,26 @@
+<?php
+
+require_once("ressources/strings.inc");
+
+function showmsg() {
+ global $strings;
+ if (isset($_GET['show_msg'])) {
+ $msg = $_GET['show_msg'];
+ $errmsg = false;
+ if (array_key_exists($msg, $strings)) {
+ $errmsg = preg_match('/^err_/', $msg);
+ $msg = $strings[$msg];
+ } else {
+ $errmsg = true;
+ $msg = $strings['err_index_invalid_msg'];
+ }
+ if($errmsg)
+ echo '<p class="message warning">'.htmlspecialchars($msg).'</p>';
+ else
+ echo '<p class="message success">'.htmlspecialchars($msg).'</p>';
+ }
+}
+
+showmsg();
+
+?>
+\ No newline at end of file
diff --git a/code/serveur/php/ressources/simple.css b/code/serveur/php/ressources/simple.css
@@ -24,12 +24,21 @@
.footer {
margin: 0;
- padding: 0.5em;
+ padding: 0.7em;
border-top: thin solid grey;
border-bottom: thin solid grey;
background-color : #FFFFE0;
- font-size: x-small;
- text-align: center
+ font-size: 75%;
+ text-align: center
+}
+
+.footer p {
+ margin: 0;
+}
+
+.footer a,
+.footer a:visited {
+ color: black;
}
.content {
@@ -72,7 +81,8 @@ html, body {
h1 {
color: #8b4;
- margin : 5px;
+ margin : 0;
+ padding: 0.2em 0.5em;
}
h2 {
@@ -92,13 +102,14 @@ h5 {
}
a {
- color: black;
+ color: darkgreen;
}
a:visited {
- color: #543;
+ color: #765;
}
+.footer a:hover,
a:hover {
color: #c86;
}
@@ -122,10 +133,8 @@ h2#tache-description {
}
.message {
- width : 40%;
- display : block;
- padding : 5px;
- padding-left : 30px;
+ display : inline-block;
+ padding : 5px 30px;
margin-top : 10px;
margin-bottom : 10px;
margin-right : 6%;
@@ -133,21 +142,21 @@ h2#tache-description {
}
.warning {
- border : 1px dashed red;
+ border : 1px dashed red;
background-color : #F0C060
}
.success {
- border : 1px dashed red;
- background-color : #90FF90
+ border : 1px dashed red;
+ background-color : #90FF90
}
#downloadlink {
color : black;
text-decoration : none;
font-size : 16pt;
- background-color: #8888ff;
- border: medium solid blue;
+ background-color: #ccccff;
+ border: medium solid #5555ff;
border-radius: 1em;
-moz-border-radius: 1em;
-webkit-border-radius: 1em;
@@ -157,7 +166,9 @@ h2#tache-description {
}
#downloadlink:hover {
- background-color: red;
+ background-color: #5555ff;
+ color: white;
+ border-color: #ccccff;
}
.downloadarea {
@@ -167,9 +178,9 @@ h2#tache-description {
}
#cnx {
- float : right
+ float : right
}
.android {
- font-size: 70%;
+ font-size: 70%;
}
diff --git a/code/serveur/php/ressources/strings.inc b/code/serveur/php/ressources/strings.inc
@@ -0,0 +1,33 @@
+<?php
+
+// Chaque nom de chaîne est de la forme /^(err|ok)_nompage_nommessage$/
+
+$strings['err_contact_open_mailfile'] = "Erreur lors de l'ouverture du fichier d'enregistrement de mails.";
+$strings['ok_contact_msg_sent'] = "Votre message à été envoyé, nous vous remercions pour vos commentaires.";
+$strings['err_contact_fill_all'] = "Veuillez remplir tout les champs.";
+
+$strings['err_creategame_fill_all'] = "Tous les mots du nage ne sont pas renseignés.";
+
+$strings['err_index_invalid_msg'] = "Paramètre de la requête invalide. Merci de nous signaler le problème.";
+$strings['err_index_redirect'] = "Erreur de redirection. Merci de nous signaler le problème.";
+
+$strings['ok_login_disconnect'] = "Vous avez été déconnecté.";
+$strings['err_login_bad_user_pass'] = "Mauvais nom d'utilisateur ou mot de passe";
+$strings['err_login_fill_all'] = "Veuillez remplir tous les champs.";
+$strings['err_login_dbopen'] = "Erreur lors de l'ouverture de la base de données SQLite3. Merci de nous signaler le problème.";
+
+$strings['err_signup_dbopen'] = "Erreur lors de l'ouverture de la base de données SQLite3. Merci de nous signaler le problème.";
+$strings['err_signup_fill_mail'] = "Veuillez renseigner le champ 'Saisir votre adresse mail'.";
+$strings['err_signup_invalid_mail'] = "Adresse mail invalide. Vous pouvez utiliser des lettres, des chiffres et les caractères spéciaux '-', '+', '_' et '.' .";
+$strings['err_signup_existing_mail'] = "L'adresse mail saisie existe déjà ! Veuillez nous contacter si vous avez oublié votre identifiant et/ou votre mot de passe.";
+$strings['err_signup_fill_login'] = "Veuillez renseigner le champ 'Choisir un identifiant'.";
+$strings['err_signup_invalid_login'] = "Identifiant invalide. Vous pouvez utiliser des lettres, des chiffres et les caractères spéciaux '-', '_' et '.' .";
+$strings['err_signup_existing_login'] = "Identifiant déjà pris ! Veuillez choisir un autre identifiant.";
+$strings['err_signup_fill_passwd1'] = "Veuillez renseigner le champ 'Mot de passe'.";
+$strings['err_signup_invalid_passwd1'] = "Mot de passe invalide. Votre mot de passe doit comporter au moins 5 caractères.";
+$strings['err_signup_fill_passwd2'] = "Veuillez renseigner le champ 'Resaisir le mot de passe'.";
+$strings['err_signup_passwords_dont_match'] = "Les deux mots de passe saisis ne sont pas identiques.";
+$strings['ok_signup_registered'] = "L'inscription s'est déroulée avec succès.";
+$strings['err_signup_dbinsert'] = "Erreur lors de l'inscription, merci de nous signaler le problème.";
+
+?>
+\ No newline at end of file
diff --git a/code/serveur/php/signup.php b/code/serveur/php/signup.php
@@ -1,206 +1,184 @@
<?php
session_start();
+require_once("ressources/strings.inc");
+require_once("ressources/locations.inc");
+
$SQL_DBNAME = (dirname(__FILE__) . "/db");
- if (!$db = new SQlite3($SQL_DBNAME))
- mDie(1,"Erreur lors de l'ouverture de la base de données SQLite3");
+ if (!$db = new SQlite3($SQL_DBNAME))
+ die($strings['err_signup_dbopen']);
+
+$location = getlocation();
$newpage = true;
-if(!isset($msg)){
- $msg = array();
-}
+$msg = array();
+
if(isset($_POST['signupemail'])){
- $newpage = false;
- $signupemail = $_POST['signupemail'];
- $pattern = "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
-
- if(trim($signupemail) == ""){
- $msg[] = "Veuillez renseigner le champ 'Saisir votre adresse mail'.";
- unset($_POST['signupemail']);
- $signupemail = "";
- }
- else if (!preg_match($pattern, $signupemail)){
- $msg[] = "Adresse mail invalide. Vous pouvez utiliser des lettres, des chiffres et
- les caractères spéciaux '-', '_' et '.'";
- $signupemail = $_POST['signupemail'];
- unset($_POST['signupemail']);
- $signupemail = "";
- }
- else if ($db->querySingle("SELECT mail FROM user WHERE mail='$signupemail'") != null){
- $msg[] = "L'adresse mail saisie existe déjà ! Veuillez nous contacter si vous avez
- oublier votre identifiant et/ou votre mot de passe.";
- unset($_POST['signupemail']);
- $signupemail = "";
- }
+ $newpage = false;
+ $signupemail = $_POST['signupemail'];
+ // Regexp pour les adresses mail (incomplet, mais suffisant pour la plupart des adresses).
+ // http://en.wikipedia.org/wiki/Email_address
+ // N'implémente pas les "quotes" dans la partie locale (avant le @).
+ $allowed_local = "[-a-zA-Z0-9!#\$%&'*+/^=?_`{|}~]"; /* Je ne sais pas trop si l'espace est autorisée. */
+ $pattern_local = "$allowed_local(\\.?$allowed_local)*";
+ $pattern_hostname_label = '[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?';
+ $pattern_hostname = "$pattern_hostname_label(\\.$pattern_hostname_label)*";
+ $pattern_ip = "([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])";
+ $pattern_host = "($pattern_hostname|\\[$pattern_ip\\])";
+ // Note : j'ai utilisé ";" comme délimiteur de regexp car il y a un slash dans $allowed_local, et je ne sais pas comment l'échapper là
+ $pattern = ";^$pattern_local@$pattern_host\$;";
+
+ if(trim($signupemail) == ""){
+ $msg[] = $strings['err_signup_fill_mail'];
+ }
+ else if (!preg_match($pattern, $signupemail)){
+ // TODO : ce message est erroné.
+ $msg[] = $strings['err_signup_invalid_mail'];
+ }
+ else if ($db->querySingle("SELECT mail FROM user WHERE mail='$signupemail'") != null){
+ $msg[] = $strings['err_signup_existing_mail'];
+ }
}
if(isset($_POST['signupid'])){
- $newpage = false;
+ $newpage = false;
$signupid = $_POST['signupid'];
- $pattern = "/^([a-zA-Z0-9])+([\.\-_][a-zA-Z0-9]*)*/";
- if(trim($signupid) == ""){
- $msg[] = "Veuillez renseigner le champ 'Choisir un identifiant'.\n";
- unset($_POST['signupid']);
- $signupid = "";
- }
- else if (!preg_match($pattern, $signupemail)){
- $msg[] = "Identifiant invalid. Vous pouvez utiliser des lettres, des chiffres et
- les caractères spéciaux '-', '_' et '.'\n";
- $signupid = $_POST['signupid'];
- unset($_POST['signupid']);
- $signupid = "";
- }
- else if ($db->querySingle("SELECT login FROM user WHERE login='$signupid'") != null){
- $msg[] = "Identifiant déjà pris ! Veuillez choisir un autre identifiant.";
- unset($_POST['signupid']);
- $signupid = "";
- }
+ $pattern = "/^([a-zA-Z0-9])+([\.\-_][a-zA-Z0-9]*)*/";
+ if(trim($signupid) == ""){
+ $msg[] = $strings['err_signup_fill_login'];
+ }
+ else if (!preg_match($pattern, $signupid)){
+ $msg[] = $strings['err_signup_invalid_login'];
+ $signupid = $_POST['signupid'];
+ }
+ else if ($db->querySingle("SELECT login FROM user WHERE login='$signupid'") != null){
+ $msg[] = $strings['err_signup_existing_login'];
+ }
}
if(isset($_POST['signuppswd1'])){
- $newpage = false;
- $signuppswd1 = $_POST['signuppswd1'];
- if(trim($signuppswd1) == ""){
- $msg[] = "Veuillez renseigner le champ 'Mot de passe'.\n";
- unset($_POST['signuppswd1']);
- $signuppswd1 = "";
- unset($_POST['signuppswd2']);
- $signuppswd2 = "";
- }
- else if(strlen($signuppswd1) < 5){
- $msg[] = "Mot de passe invalide. Votre mot de passe doit comporter au moins 5 caractères.\n";
- unset($_POST['signuppswd1']);
- $signuppswd1 = "";
- unset($_POST['signuppswd2']);
- $signuppswd2 = "";
- }
+ $newpage = false;
+ $signuppswd1 = $_POST['signuppswd1'];
+ if(trim($signuppswd1) == ""){
+ $msg[] = $strings['err_signup_fill_passwd1'];
+ }
+ else if(strlen($signuppswd1) < 5){
+ $msg[] = $strings['err_signup_invalid_passwd1'];
+ }
}
if(isset($_POST['signuppswd2'])){
- $newpage = false;
- $signuppswd2 = $_POST['signuppswd2'];
- if(trim($signuppswd2) == ""){
- $msg[] = "Veuillez renseigner le champ 'Resaisir le mot de passe'.\n";
- unset($_POST['signuppswd1']);
- $signuppswd1 = "";
- unset($_POST['signuppswd2']);
- $signuppswd2 = "";
- }
- if(strlen($signuppswd1 != $signuppswd2)){
- $msg[] = "Les deux mots de passe saisis ne sont pas identiques.\n";
- unset($_POST['signuppswd1']);
- $signuppswd1 = "";
- unset($_POST['signuppswd2']);
- $signuppswd2 = "";
- }
+ $newpage = false;
+ $signuppswd2 = $_POST['signuppswd2'];
+ if(trim($signuppswd2) == ""){
+ $msg[] = $strings['err_signup_fill_passwd2'];
+ }
+ if(strlen($signuppswd1 != $signuppswd2)){
+ $msg[] = $strings['err_signup_passwords_dont_match'];
+ }
}
-?>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+if(count($msg) == 0 && $newpage == false)
+{
+ $ok = ($db->query("INSERT INTO user(mail, login, hash_passwd, score) VALUES ('" . SQLite3::escapeString($signupemail)
+ . "', '" . SQLite3::escapeString($signupid)
+ . "', '" . SQLite3::escapeString(md5($signuppswd1))
+ . "', 0);"));
+
+ if($ok == true) {
+ $_SESSION['userId'] = $signupid;
+ return_to($location, "?show_msg=ok_signup_registered");
+ } else {
+ $msg[] = $strings['err_signup_dbinsert'];
+ }
+}
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>PtiClic sous Android - Version Alpha - Inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ressources/simple.css" />
</head>
-
-
- <body>
- <div class="menu">
- <?php include("ressources/menu.inc"); ?>
- </div>
+ <body>
+ <?php include("ressources/menu.inc"); ?>
<div class="content">
- <p>Vous n'êtes pas encore inscrit ? Inscrivez-vous :</p>
- <?php
- if(sizeof($msg) > 0){
- echo '<span class="message warning">'.
- "<b>Saisie invalide. Les erreurs sont les suivantes : </b> <p>".
- "<ul>";
- foreach ($msg as $m) {
- echo "<li>".$m;
- }
- echo "</ul>";
- }
- else if($newpage == false){
- $ok = ($db->query("INSERT INTO user(mail, login, hash_passwd, score) VALUES ('" . SQLite3::escapeString($signupemail)
- . "', '" . SQLite3::escapeString($signupid)
- . "', '" . SQLite3::escapeString(md5($signuppswd1))
- . "', 0);"));
-
- if($ok == true)
- echo "insertion worked!!!!!";
- else
- echo "insertion failed!!!";
- //header("location:".$location);
- echo '<span class="message success">'."Inscription s'est déroulée avec succès !";
- unset($_POST);
- $newpage = true;
- }
-
- echo '</span>';
- ?>
- <form name="signupform" method="post" action="signup.php?return=<?php echo $location; ?>">
- <table class="signuptbl">
- <tr>
- <td>
- <label for="signupemail">Saisir votre adresse mail :</label>
- </td>
- <td>
- <input name="signupemail" type="text"
- <?php
- if(isset($_POST['signupemail'])){
- echo "value='$signupemail'";
- }
- ?>
- /><br />
- </td>
- </tr>
- <tr>
- <td>
- <label for="signupid">Choisir un identifiant : </label>
- </td>
- <td>
- <input name="signupid" type="text"
- <?php
- if(isset($_POST['signupid'])){
- echo "value='$signupid'";
- }
- ?>
- />
- </td>
- </tr>
- <tr>
- <td>
- <label for="signuppswd1">Choisir un mot de passe : </label>
- </td>
- <td>
- <input name="signuppswd1" type="password" />
- </td>
- </tr>
- <tr>
- <td>
- <label for="signuppswd2">Resaisir le mot de passe : </label>
- </td>
- <td>
- <input name="signuppswd2" type="password" />
- </td>
- </tr>
- <tr>
- <td>
-
- </td>
- <td>
- <input type="submit" name="signupsubmit" value="Valider" />
- </td>
- </tr>
- </table>
- </form>
- </div>
-
- <div class="footer">
- <?php include("ressources/footer.inc"); ?>
+ <h2>Inscription</h2>
+ <?php include("ressources/showmsg.inc"); ?>
+ <h3>Vous n'avez pas encore de compte ?</h3>
+ <p>Inscrivez-vous :</p>
+ <?php
+ if(count($msg) > 0)
+ {
+ echo '<div class="message warning">'.
+ '<p><b>Saisie invalide. Les erreurs sont les suivantes : </b></p>'.
+ '<ul>';
+ foreach ($msg as $m) {
+ echo "<li>".htmlspecialchars($m)."</li>";
+ }
+ echo '</ul>';
+ echo '</div>';
+ }
+ ?>
+ <form name="signupform" method="post" action="signup.php?return=<?php echo $location; ?>">
+ <table class="signuptbl">
+ <tr>
+ <td>
+ <label for="signupemail">Saisir votre adresse mail :</label>
+ </td>
+ <td>
+ <input name="signupemail" type="text"
+ <?php
+ if(isset($_POST['signupemail'])){
+ echo " value='$signupemail'";
+ }
+ ?>
+ />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <label for="signupid">Choisir un identifiant : </label>
+ </td>
+ <td>
+ <input name="signupid" type="text"
+ <?php
+ if(isset($_POST['signupid'])){
+ echo " value='$signupid'";
+ }
+ ?>
+ />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <label for="signuppswd1">Choisir un mot de passe : </label>
+ </td>
+ <td>
+ <input name="signuppswd1" type="password" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <label for="signuppswd2">Resaisir le mot de passe : </label>
+ </td>
+ <td>
+ <input name="signuppswd2" type="password" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+
+ </td>
+ <td>
+ <input type="submit" name="signupsubmit" value="Valider" />
+ </td>
+ </tr>
+ </table>
+ </form>
+ <h3>Vous êtes déjà inscrit ?</h3>
+ <p><a href="login.php?return=<?php echo $location; ?>">Connectez-vous !</a></p>
</div>
+ <?php include("ressources/footer.inc"); ?>
</body>
- </html>
+</html>