From c70dc92d2e9fe6a69798f105af21a8d4068b530d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Thu, 24 Feb 2011 14:33:51 +0100 Subject: [PATCH 1/7] Moins de messages d'erreurs avec README.sh --- code/serveur/README.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/serveur/README.sh b/code/serveur/README.sh index b7c0cf8..d5dd01d 100755 --- a/code/serveur/README.sh +++ b/code/serveur/README.sh @@ -16,9 +16,15 @@ echo "===============================" echo echo "Étape 3/3 : Insertion dans la bdd" echo "=================================" -mv php/db php/db.old +[ -e php/db ] && mv php/db php/db.old pv sql | sqlite3 php/db -sudo chgrp -R www-data php || sudo chgrp -R www php + +: > /tmp/log-chmod-pticlic +sudo chgrp -R www-data php > /tmp/log-chmod-pticlic || sudo chgrp -R www php > /tmp/log-chmod-pticlic || { + cat /tmp/log-chmod-pticlic + echo "ATTENTION : Les deux méthodes de chgrp ont échoué !" + exit 1 +} chmod 664 php/db chmod 775 php From a5006194b8bba8832cb16f25822b61b5fa8a524d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Thu, 24 Feb 2011 14:36:25 +0100 Subject: [PATCH 2/7] =?UTF-8?q?Cr=C3=A9ation=20des=20index=20=C3=A0=20la?= =?UTF-8?q?=20fin=20du=20dump=20pour=20que=20=C3=A7a=20consomme=20moins=20?= =?UTF-8?q?de=20RAM.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/serveur/dump2sqlite.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/code/serveur/dump2sqlite.sh b/code/serveur/dump2sqlite.sh index dd4c549..e0564bc 100755 --- a/code/serveur/dump2sqlite.sh +++ b/code/serveur/dump2sqlite.sh @@ -32,13 +32,6 @@ create table played_game(pgid integer primary key autoincrement, gid, login, tim create table played_game_cloud(pgid, gid, type, num, relation, weight, score); insert into user(login, mail, hash_passwd, score) values('$(echo "$user" | sed -e "s/'/''/g")', 'foo@isp.com', '$(echo "$passwd" | dd bs=1 count="${#passwd}" | (if which md5sum >/dev/null 2>&1; then md5sum; else md5; fi) | cut -d ' ' -f 1)', 0); - -create index i_relation_start on relation(start); -create index i_relation_end on relation(end); -create index i_relation_type on relation(type); -create index i_relation_start_type on relation(start,type); -create index i_relation_end_type on relation(end,type); -create index i_played_game_all on played_game(pgid, gid, login, timestamp); EOF # tr : pour virer le CRLF qui traîne @@ -56,4 +49,12 @@ cat "$1" \ | grep -v '^//' \ | grep -v '^$' -echo "commit;" +cat < Date: Thu, 24 Feb 2011 14:44:58 +0100 Subject: [PATCH 3/7] Renomage de menu.html et footer.html en menu.inc et footer.inc (puisqu'ils contiennent du code PHP). --- code/serveur/php/contact.php | 4 ++-- code/serveur/php/createGame.php | 4 ++-- code/serveur/php/download.php | 4 ++-- code/serveur/php/index.php | 4 ++-- code/serveur/php/login.php | 4 ++-- code/serveur/php/ressources/{footer.html => footer.inc} | 0 code/serveur/php/ressources/{menu.html => menu.inc} | 0 code/serveur/php/signup.php | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) rename code/serveur/php/ressources/{footer.html => footer.inc} (100%) rename code/serveur/php/ressources/{menu.html => menu.inc} (100%) diff --git a/code/serveur/php/contact.php b/code/serveur/php/contact.php index a6355df..c172ea7 100644 --- a/code/serveur/php/contact.php +++ b/code/serveur/php/contact.php @@ -59,7 +59,7 @@ if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message']
@@ -52,7 +52,7 @@ $state = 0;
diff --git a/code/serveur/php/download.php b/code/serveur/php/download.php index 7286f23..4c4c763 100644 --- a/code/serveur/php/download.php +++ b/code/serveur/php/download.php @@ -17,7 +17,7 @@ if(!isset($_SESSION['userId']))
Télécharger @@ -41,7 +41,7 @@ if(!isset($_SESSION['userId']))
diff --git a/code/serveur/php/index.php b/code/serveur/php/index.php index 8b9feea..b714419 100644 --- a/code/serveur/php/index.php +++ b/code/serveur/php/index.php @@ -13,7 +13,7 @@ session_start();

Jeu PtiClic - Téléchargement gratuit

@@ -46,7 +46,7 @@ session_start(); vos idées. Envoyez-nous un message !

diff --git a/code/serveur/php/login.php b/code/serveur/php/login.php index fc872fd..2aac225 100644 --- a/code/serveur/php/login.php +++ b/code/serveur/php/login.php @@ -44,7 +44,7 @@ else if(isset($user) or isset($pswd))

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

@@ -83,7 +83,7 @@ else if(isset($user) or isset($pswd))
diff --git a/code/serveur/php/ressources/footer.html b/code/serveur/php/ressources/footer.inc similarity index 100% rename from code/serveur/php/ressources/footer.html rename to code/serveur/php/ressources/footer.inc diff --git a/code/serveur/php/ressources/menu.html b/code/serveur/php/ressources/menu.inc similarity index 100% rename from code/serveur/php/ressources/menu.html rename to code/serveur/php/ressources/menu.inc diff --git a/code/serveur/php/signup.php b/code/serveur/php/signup.php index 76340e2..e5a8dcb 100644 --- a/code/serveur/php/signup.php +++ b/code/serveur/php/signup.php @@ -109,7 +109,7 @@ if(isset($_POST['signuppswd2'])){

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

@@ -200,7 +200,7 @@ if(isset($_POST['signuppswd2'])){
From e39c56da1b43a7269a120cd211984f203201c764 Mon Sep 17 00:00:00 2001 From: Yoann Bonavero Date: Thu, 24 Feb 2011 19:31:01 +0100 Subject: [PATCH 4/7] =?UTF-8?q?Ajoute=20d'informations=20permettant=20de?= =?UTF-8?q?=20mieux=20guider=20l'utilisateur=20sur=20le=20site=20web.=20L'?= =?UTF-8?q?inscription=20se=20termine=20maintenant=20par=20une=20connexion?= =?UTF-8?q?=20automatique=20et=20transparente=20de=20l'utilisateur.=20Quel?= =?UTF-8?q?ques=20am=C3=A9liorations=20sur=20les=20page=20de=20contact=20d?= =?UTF-8?q?e=20et=20de=20t=C3=A9l=C3=A9chargement=20ont=20=C3=A9taient=20?= =?UTF-8?q?=C3=A9galement=20apport=C3=A9es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/serveur/php/contact.php | 2 ++ code/serveur/php/download.php | 3 ++- code/serveur/php/login.php | 12 +++++++++--- code/serveur/php/ressources/menu.html | 2 +- code/serveur/php/ressources/simple.css | 3 +-- code/serveur/php/signup.php | 19 +++++++++++-------- 6 files changed, 26 insertions(+), 15 deletions(-) diff --git a/code/serveur/php/contact.php b/code/serveur/php/contact.php index a6355df..9fc0a7e 100644 --- a/code/serveur/php/contact.php +++ b/code/serveur/php/contact.php @@ -72,6 +72,8 @@ if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message'] if($displayForm == true) { ?> +

Vous souhaitez signaler un défaut dans l'application, ou bien vous avez des remarques, des suggestions !
+ Faites nous en part en nous envoyant un message par le biais du formulaire qui suit :

diff --git a/code/serveur/php/download.php b/code/serveur/php/download.php index 7286f23..ab77fc8 100644 --- a/code/serveur/php/download.php +++ b/code/serveur/php/download.php @@ -20,12 +20,13 @@ if(!isset($_SESSION['userId']))
+

Téléchargement l'application

Télécharger

Installation de l'application

A partir de votre téléphone

  • Téléchargez le fichier d'installation
  • -
  • Une fois téléchargé, cliquez sur le fichier dans la barre de notification d'Android et suivez +
  • Une fois téléchargée, 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.
  • Une fois l'installation terminée, démarrez l'application
  • Suivez attentivement les instructions lors du premier démarrage de l'application
  • diff --git a/code/serveur/php/login.php b/code/serveur/php/login.php index fc872fd..acceea0 100644 --- a/code/serveur/php/login.php +++ b/code/serveur/php/login.php @@ -47,12 +47,16 @@ else if(isset($user) or isset($pswd))
-

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

+ Pour accéder à la page de téléchargement de l\'application vous devez être authentifié !

'; + ?> +

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

'.$msg.''; ?> - +
@@ -79,7 +83,9 @@ else if(isset($user) or isset($pswd))
-
+ +

Vous ne disposez pas encore de compte ? Inscrivez vous dès maintenant.

+

-

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

+

Inscrivez-vous pour accéder l'ensemble du site et faire parti des alpha-testeurs !
+ Vous pourrez ainsi télécharger l'application la tester et nous faire part de vos remarques afin de l'améliorer.
+
Pour vous inscrire maintenant veuillez remplir le formulaire qui suit :


0){ echo ''. @@ -129,19 +131,20 @@ if(isset($_POST['signuppswd2'])){ . "', '" . SQLite3::escapeString(md5($signuppswd1)) . "', 0);")); - if($ok == true) - echo "insertion worked!!!!!"; + if($ok == true) { + $_SESSION['userId'] = $signupid; + echo ''."L'inscription s'est déroulée avec succès !"; + } else - echo "insertion failed!!!"; - //header("location:".$location); - echo ''."Inscription s'est déroulée avec succès !"; + echo ''."Une erreur interne est survenue lors de l'enregistrement !"; + unset($_POST); $newpage = true; } echo ''; ?> -
+ 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 5/7] =?UTF-8?q?Am=C3=A9liorations=20sur=20le=20site=20(voi?= =?UTF-8?q?r=20le=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) - { - ?> - -
@@ -154,7 +157,7 @@ if(isset($_POST['signuppswd2'])){ echo "value='$signupemail'"; } ?> - />
+ />
- - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
-
- 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

    -
  • Téléchargez le fichier d'installation
  • -
  • 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.
  • +
  • Téléchargez le fichier d'installation
  • +
  • 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.
  • Une fois l'installation terminée, démarrez l'application
  • Suivez attentivement les instructions lors du premier démarrage de l'application

A partir de votre ordinateur

    -
  • Téléchargez le fichier d'installation
  • -
  • Transférez ce fichier sur votre téléphone à l'aide de bluetooth, une clé usb ou autre
  • -
  • Depuis votre téléphone, retrouvez sur votre carte mémoire l'application que vous - venez de transférer
  • -
  • Cliquez sur l'application afin de l'installer sur votre téléphone
  • -
  • Suivez attentivement les instructions lors du premier démarrage de l'application
  • +
  • Téléchargez le fichier d'installation
  • +
  • Transférez ce fichier sur votre téléphone à l'aide de bluetooth, une clé usb ou autre
  • +
  • Depuis votre téléphone, retrouvez sur votre carte mémoire l'application que vous + venez de transférer
  • +
  • Cliquez sur l'application afin de l'installer sur votre téléphone
  • +
  • Suivez attentivement les instructions lors du premier démarrage de l'application
- + 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 ''; - ?> -
- - - - - - - - - - - - - - - - - - - - - -
- - - - />
-
- - - - /> -
- - - -
- - - -
- - - -
-
-
- - + - + From 1f7076b09db297349355e5629ef2be7519b10cd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Thu, 24 Feb 2011 23:07:37 +0100 Subject: [PATCH 6/7] =?UTF-8?q?S=C3=A9lection=20de=20mots=20int=C3=A9ressa?= =?UTF-8?q?nts=20lors=20des=20RANDOM.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/serveur/README.sh | 15 +++++++++++---- code/serveur/dump2sqlite.sh | 15 +++++++++++++++ code/serveur/php/.gitignore | 1 + code/serveur/php/pticlic.php | 16 ++++++++++------ 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/code/serveur/README.sh b/code/serveur/README.sh index d5dd01d..10274ef 100755 --- a/code/serveur/README.sh +++ b/code/serveur/README.sh @@ -3,23 +3,30 @@ # cat dump.url # Aller à cette adresse, et télécharger le dernier dump echo -echo "Étape 1/3 : Téléchargement" -echo "==========================" +echo "Étape 1/5 : Téléchargement de la version du dump" +echo "================================================" latest="$(wget 'http://www.lirmm.fr/~lafourcade/JDM-LEXICALNET-FR/?C=M;O=D' -O- | grep '\-LEXICALNET\-JEUXDEMOTS\-FR\-\(NOHTML\)\?\.txt' | head -n 1 | sed -E -e 's/^.*.*$/\1/')" + +echo +echo "Étape 2/5 : Téléchargement du dump" +echo "==================================" wget -c 'http://www.lirmm.fr/~lafourcade/JDM-LEXICALNET-FR/'"$latest" echo -echo "Étape 2/3 : Conversion vers sql" +echo "Étape 3/5 : Conversion vers sql" echo "===============================" ./dump2sqlite.sh "$latest" > sql echo -echo "Étape 3/3 : Insertion dans la bdd" +echo "Étape 4/5 : Insertion dans la bdd" echo "=================================" [ -e php/db ] && mv php/db php/db.old pv sql | sqlite3 php/db +echo +echo "Étape 5/5 : Réglage des permissions" +echo "===================================" : > /tmp/log-chmod-pticlic sudo chgrp -R www-data php > /tmp/log-chmod-pticlic || sudo chgrp -R www php > /tmp/log-chmod-pticlic || { cat /tmp/log-chmod-pticlic diff --git a/code/serveur/dump2sqlite.sh b/code/serveur/dump2sqlite.sh index e0564bc..561ca4b 100755 --- a/code/serveur/dump2sqlite.sh +++ b/code/serveur/dump2sqlite.sh @@ -30,6 +30,8 @@ create table game(gid integer primary key autoincrement, eid_central_word, relat create table game_cloud(gid, num, difficulty, eid_word, totalWeight, probaR1, probaR2, probaR0, probaTrash); create table played_game(pgid integer primary key autoincrement, gid, login, timestamp); create table played_game_cloud(pgid, gid, type, num, relation, weight, score); +create table random_cloud_node(eid,nbneighbors); +create table random_center_node(eid); insert into user(login, mail, hash_passwd, score) values('$(echo "$user" | sed -e "s/'/''/g")', 'foo@isp.com', '$(echo "$passwd" | dd bs=1 count="${#passwd}" | (if which md5sum >/dev/null 2>&1; then md5sum; else md5; fi) | cut -d ' ' -f 1)', 0); EOF @@ -56,5 +58,18 @@ create index i_relation_type on relation(type); create index i_relation_start_type on relation(start,type); create index i_relation_end_type on relation(end,type); create index i_played_game_all on played_game(pgid, gid, login, timestamp); +insert into random_cloud_node(eid,nbneighbors) select eid,sum(nb) from ( + select (select type from node where node.eid = relation.start) as type, + start as eid, + count(start) as nb from relation where type not in (4, 12, 36, 18, 29, 45, 46, 47, 48, 1000, 1001) + group by start + union + select (select type from node where node.eid = relation.start) as type, + end as eid, + count(end) as nb from relation where type not in (4, 12, 36, 18, 29, 45, 46, 47, 48, 1000, 1001) + group by end +) where type = 1 group by eid; +create index i_random_cloud_node_nbneighbors on random_cloud_node(nbneighbors); +insert into random_center_node(eid) select eid from random_cloud_node where nbneighbors > 3; commit; EOF diff --git a/code/serveur/php/.gitignore b/code/serveur/php/.gitignore index 7bece49..2dd3e43 100644 --- a/code/serveur/php/.gitignore +++ b/code/serveur/php/.gitignore @@ -1 +1,2 @@ db.old +log.txt diff --git a/code/serveur/php/pticlic.php b/code/serveur/php/pticlic.php index 470eebc..0d901b8 100644 --- a/code/serveur/php/pticlic.php +++ b/code/serveur/php/pticlic.php @@ -75,11 +75,16 @@ if ($action == 3) { /** Selectionne aléatoirement un noeud. */ -function random_node() +function random_center_node() { global $db; + return $db->querySingle("select eid from random_center_node where rowid = (abs(random()) % (select max(rowid) from random_center_node))+1;"); +} - return $db->querySingle("select eid from node where eid = (abs(random()) % (select max(eid) from node))+1 or eid = (select max(eid) from node where eid > 0) order by eid limit 1;"); +function random_cloud_node() +{ + global $db; + return $db->querySingle("select eid from random_cloud_node where rowid = (abs(random()) % (select max(rowid) from random_cloud_node))+1;"); } @@ -99,7 +104,6 @@ function cg_build_result_sets($cloudSize, $centerEid, $r1, $r2) // Le select doit ranvoyer trois colonnes : // eid => l'eid du mot à mettre dans le nuage, // r1 => la probabilité pour que le mot soit dans r1, entre -1 et 1 (négatif = ne devrait pas y être, positif = devrait y être à coup sûr, 0 = on sait pas). - // TODO : comment mettre un poids sur random, sachant qu'il ne peut / devrait pas être dans ces select, mais plutôt un appel à random_node() ? $typer1r2 = "type in ($r1, $r2)"; $sources = array( // Voisins 1 saut du bon type (= relations déjà existantes) @@ -153,7 +157,7 @@ function cg_build_result_sets($cloudSize, $centerEid, $r1, $r2) for ($i = 0; $i < 10; $i++) { - $sources[$k]['resultSet'][] = array('eid'=>random_node(), 'r1'=>0, 'r2'=>0, 'r0'=>0, 'trash'=>1); + $sources[$k]['resultSet'][] = array('eid'=>random_cloud_node(), 'r1'=>0, 'r2'=>0, 'r0'=>0, 'trash'=>1); $sources[$k]['rsSize']++; } } @@ -254,7 +258,7 @@ function cg_build_cloud($cloudSize, $sources, $sumWeights) while ($i < $cloudSize) { $totalDifficulty += $sources['rand']['d']; - $cloud[$i] = array('pos'=>$i++, 'd'=>$sources['rand']['d'], 'eid'=>random_node(), 'probaR1'=>$res['r1'], 'probaR2'=>$res['r2'], 'probaR0'=>$res['r0'], 'probaTrash'=>$res['trash']); + $cloud[$i] = array('pos'=>$i++, 'd'=>$sources['rand']['d'], 'eid'=>random_cloud_node(), 'probaR1'=>$res['r1'], 'probaR2'=>$res['r2'], 'probaR0'=>$res['r0'], 'probaTrash'=>$res['trash']); } return array($cloud, $totalDifficulty); @@ -400,7 +404,7 @@ function createGameCore($cloudSize) global $db; // select random node - $centerEid = random_node(); + $centerEid = random_center_node(); $r1 = cg_choose_relations(); $r2 = $r1[1]; $r1 = $r1[0]; $sources = cg_build_result_sets($cloudSize, $centerEid, $r1, $r2); $sumWeights = $sources[1]; $sources = $sources[0]; From 520f1aeadf3c9b4b9475fe0883ba4159bbca3c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Thu, 24 Feb 2011 23:30:26 +0100 Subject: [PATCH 7/7] Affichage correct des mots de la forme mot>1234 . --- code/serveur/php/pticlic.php | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/code/serveur/php/pticlic.php b/code/serveur/php/pticlic.php index 0d901b8..023f6ca 100644 --- a/code/serveur/php/pticlic.php +++ b/code/serveur/php/pticlic.php @@ -342,6 +342,26 @@ function randomGame() return $gid; } +function format_word($word) { + global $db; + + $res = ""; + $stack = array(); + while (($pos = strpos($word, ">")) !== false) { + $res .= substr($word,0,$pos) . " ("; + $eid = intval(substr($word,$pos+1)); + if ($eid == 0) mDie(7, "Erreur lors du suivi des pointeurs de spécialisation du mot $word."); + if (in_array($eid, $stack)) mDie(8, "Boucle rencontrée lors du suivi des pointeurs de spécialisation du mot $word."); + if (count($stack) > 10) mDie(9, "Trop de niveaux de récursions lors du suivi des pointeurs de spécialisation du mot $word."); + $stack[] = $eid; + $word = $db->querySingle("select name from node where eid = $eid"); + } + $res .= $word; + for ($depth = count($stack); $depth > 0; $depth--) { + $res .= ')'; + } + return $res; +} /** Formate une partie en JSON en l'imprimant. * @param game_id : L'identifiant d'une partie. @@ -359,7 +379,7 @@ function game2json($game_id) $game = $game->fetchArray(); echo '{"gid":'.$game_id.',"pgid":'.$pgid.',"cat1":'.$game['relation_1'].',"cat2":'.$game['relation_2'].',"cat3":0,"cat4":-1,'; - echo '"center":{"id":'.$game['eid_central_word'].',"name":'.json_encode(''.$game['name_central_word']).'},'; + echo '"center":{"id":'.$game['eid_central_word'].',"name":'.json_encode(''.format_word($game['name_central_word'])).'},'; echo '"cloudsize":10,"cloud":['; // TODO ! compter dynamiquement. $res = $db->query("select eid_word,(select name from node where eid=eid_word) as name_word from game_cloud where gid = ".$game_id.";"); @@ -372,7 +392,7 @@ function game2json($game_id) else $notfirst=true; - echo '{"id":'.$x['eid_word'].',"name":'.json_encode("".$x['name_word']).'}'; + echo '{"id":'.$x['eid_word'].',"name":'.json_encode("".format_word($x['name_word'])).'}'; } echo "]}";