From 474f4258c53941ee6f09e2959a87e7d523c1608d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Thu, 24 Feb 2011 20:04:47 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9liorations=20sur=20le=20site=20(voir=20?= =?UTF-8?q?le=20reste=20du=20commentaire=20pour=20les=20d=C3=A9tails)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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). --- code/serveur/php/contact.php | 153 +++++----- code/serveur/php/createGame.php | 53 ++-- code/serveur/php/download.php | 41 ++- code/serveur/php/index.php | 71 ++--- code/serveur/php/login.php | 110 +++---- code/serveur/php/ressources/footer.inc | 25 +- code/serveur/php/ressources/locations.inc | 26 ++ code/serveur/php/ressources/menu.inc | 40 +-- code/serveur/php/ressources/showmsg.inc | 26 ++ code/serveur/php/ressources/simple.css | 47 +-- code/serveur/php/ressources/strings.inc | 33 +++ code/serveur/php/signup.php | 334 ++++++++++------------ 12 files changed, 502 insertions(+), 457 deletions(-) create mode 100644 code/serveur/php/ressources/locations.inc create mode 100644 code/serveur/php/ressources/showmsg.inc create mode 100644 code/serveur/php/ressources/strings.inc diff --git a/code/serveur/php/contact.php b/code/serveur/php/contact.php index c172ea7..f79a23e 100644 --- a/code/serveur/php/contact.php +++ b/code/serveur/php/contact.php @@ -1,9 +1,11 @@ - - - +?> Titre @@ -58,64 +55,60 @@ if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message'] - +
+ +

Contact

'.htmlspecialchars($msg).''; + else + echo ''.htmlspecialchars($msg).''; + if($displayForm == true) - echo ''.$notif.''; - else - echo ''.$notif.''; - - if($displayForm == true) - { - ?> -
- - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
-
- ci-dessous + ?> +
+ + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+
+
- + - + diff --git a/code/serveur/php/createGame.php b/code/serveur/php/createGame.php index fd191b3..453b838 100644 --- a/code/serveur/php/createGame.php +++ b/code/serveur/php/createGame.php @@ -1,4 +1,5 @@ - - - + $state = 0; +?> PtiClic Android - Création de partie @@ -29,30 +24,28 @@ $state = 0; - +
+
- '; - echo ''; - } - else { - echo ''; - - for($i = 0; $i < $_POST['nbcloudwords']; $i++) - echo ''; - - echo ''; - } - ?> - + '; + echo ''; + } + else + { + echo ''; + + for($i = 0; $i < $_POST['nbcloudwords']; $i++) + echo ''; + + echo ''; + } + ?>
- + diff --git a/code/serveur/php/download.php b/code/serveur/php/download.php index 4c4c763..98b142f 100644 --- 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"); - -?> - - + header("location:login.php?return=download"); +?> - PtiClic sous Android, version Alpha - Téléchargement - - + PtiClic sous Android, version Alpha - Téléchargement + + - +
+ Télécharger

Installation de l'application

A partir de votre téléphone

A partir de votre ordinateur

- + diff --git a/code/serveur/php/index.php b/code/serveur/php/index.php index b714419..0418745 100644 --- a/code/serveur/php/index.php +++ b/code/serveur/php/index.php @@ -1,9 +1,6 @@ - - + session_start(); +?> @@ -12,41 +9,45 @@ session_start(); - +
+

Jeu PtiClic - Téléchargement gratuit

-

Vous aimez les jeux de mots ? Vous avez un smartphone sous Android ? - PtiClic est pour vous !

-

Soyez parmi les tous premiers à télécharger cette - application gratuitement en devenant Alpha-testeur. - L'inscription est simple, il suffit de fournir - une adresse mail, de créer un identifiant et vous pourrez commencer à jouer !

- - -

Le principe du jeu

-

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 !

+

+ Vous aimez les jeux de mots ? Vous avez un smartphone sous Android ? + PtiClic est pour vous ! +

+

+ Soyez parmi les tous premiers à télécharger cette + application gratuitement en devenant Alpha-testeur. + L'inscription est simple, il suffit de fournir + une adresse mail, de créer un identifiant et vous pourrez commencer à jouer ! +

+ +

Le principe du jeu

+

+ 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 ! +

Le développement de l'application

-

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. +

+ 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. +

+

Votre rôle en tant qu'Alpha-testeur

+

+ 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. Envoyez-nous un message !

-

Votre rôle en tant qu'Alpha-testeur

-

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. Envoyez-nous un message !

-
- + diff --git a/code/serveur/php/login.php b/code/serveur/php/login.php index 2aac225..f98af73 100644 --- a/code/serveur/php/login.php +++ b/code/serveur/php/login.php @@ -1,18 +1,20 @@ 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"; -?> - + $msg = $strings['err_login_fill_all']; +?> Titre @@ -43,47 +43,47 @@ else if(isset($user) or isset($pswd)) - +
-

Vous êtes déjà inscrit ? Authentifiez-vous :

- '.$msg.''; - ?> -
- - - - - - - - - - - + + +
- - -
-
- - - -
+

Connexion

+ +

Vous êtes déjà inscrit ?

+

Authentifiez-vous :

+ '.htmlspecialchars($msg).'

'; + ?> + + + + + + + + + + + + - - -
+ + +
+
+ + + +
- - -
- - - -
+ +
+ +

Vous n'avez pas encore de compte ?

+

Inscrivez-vous !

+ - + diff --git a/code/serveur/php/ressources/footer.inc b/code/serveur/php/ressources/footer.inc index 7504a97..15e6e09 100644 --- a/code/serveur/php/ressources/footer.inc +++ b/code/serveur/php/ressources/footer.inc @@ -1,23 +1,12 @@ - - - - - PtiClic sous Android -Version Alpha - Pied de page - - - - + \ No newline at end of file diff --git a/code/serveur/php/ressources/locations.inc b/code/serveur/php/ressources/locations.inc new file mode 100644 index 0000000..7264f9f --- /dev/null +++ b/code/serveur/php/ressources/locations.inc @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/code/serveur/php/ressources/menu.inc b/code/serveur/php/ressources/menu.inc index 23ebae4..e9ac489 100644 --- a/code/serveur/php/ressources/menu.inc +++ b/code/serveur/php/ressources/menu.inc @@ -1,19 +1,21 @@ -

PtiClic sous Android™ - Version 0.1 Alpha

- - - Accueil - Téléchargement - - Contact - - Se connecter - S'incrire - - - Se deconnecter - - + \ No newline at end of file diff --git a/code/serveur/php/ressources/showmsg.inc b/code/serveur/php/ressources/showmsg.inc new file mode 100644 index 0000000..8d9314a --- /dev/null +++ b/code/serveur/php/ressources/showmsg.inc @@ -0,0 +1,26 @@ +'.htmlspecialchars($msg).'

'; + else + echo '

'.htmlspecialchars($msg).'

'; + } +} + +showmsg(); + +?> \ No newline at end of file diff --git a/code/serveur/php/ressources/simple.css b/code/serveur/php/ressources/simple.css index ee8cb83..0eb04c3 100644 --- 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 new file mode 100644 index 0000000..8c9012c --- /dev/null +++ b/code/serveur/php/ressources/strings.inc @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/code/serveur/php/signup.php b/code/serveur/php/signup.php index e5a8dcb..f965a21 100644 --- a/code/serveur/php/signup.php +++ b/code/serveur/php/signup.php @@ -1,206 +1,184 @@ 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']; + } +} + +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']; + } } ?> - - - + PtiClic sous Android - Version Alpha - Inscription - - - - + +
-

Vous n'êtes pas encore inscrit ? Inscrivez-vous :

- 0){ - echo ''. - "Saisie invalide. Les erreurs sont les suivantes :

". - "

    "; - foreach ($msg as $m) { - echo "
  • ".$m; - } - echo "
"; - } - 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 ''."Inscription s'est déroulée avec succès !"; - unset($_POST); - $newpage = true; - } - - echo ''; - ?> -
- - - - - - - - - - - - - - - - - - - - - -
- - - - />
-
- - - - /> -
- - - -
- - - -
- - - -
-
-
- - + - +