commit 928c8efb7a0e9637bf72063beb2f8618fbe62bf5
parent 0ff04d20d497fe338b9b01a66787499e20c5a62d
Author: Bertrand BRUN <bertrand0brun@gmail.com>
Date: Fri, 25 Feb 2011 07:25:45 +0100
Merge branch 'master' of https://github.com/jsmaniac/2011-m1s2-ter
Diffstat:
18 files changed, 601 insertions(+), 487 deletions(-)
diff --git a/code/serveur/README.sh b/code/serveur/README.sh
@@ -3,22 +3,35 @@
# 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/^.*<a href="([0-9]*-LEXICALNET-JEUXDEMOTS-FR-(NOHTML)?\.txt)">.*$/\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 "================================="
-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
+
+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
+ echo "ATTENTION : Les deux méthodes de chgrp ont échoué !"
+ exit 1
+}
chmod 664 php/db
chmod 775 php
diff --git a/code/serveur/dump2sqlite.sh b/code/serveur/dump2sqlite.sh
@@ -30,15 +30,10 @@ 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);
-
-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 +51,25 @@ cat "$1" \
| grep -v '^//' \
| grep -v '^$'
-echo "commit;"
+cat <<EOF
+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);
+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
@@ -1 +1,2 @@
db.old
+log.txt
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,64 @@ 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.html"); ?>
- </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
+ ?>
+ <p>
+ Vous souhaitez signaler un défaut dans l'application, ou bien vous avez des remarques, des suggestions ?<br />
+ Faites nous en part en nous envoyant un message par le biais du formulaire qui suit :
+ </p>
+ <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.html"); ?>
- </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.html"); ?>
- </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.html"); ?>
- </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,40 @@
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&showmsg=err_download_notauth");
+?><!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.html"); ?>
- </div>
+ <?php include("ressources/menu.inc"); ?>
<div class="content">
+ <?php include("ressources/showmsg.inc"); ?>
+ <h2>Téléchargement de l'application</h2>
<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é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.</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.html"); ?>
- </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.html"); ?>
- </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.html"); ?>
</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,46 @@ else if(isset($user) or isset($pswd))
<link rel="stylesheet" href="ressources/simple.css" />
</head>
<body>
- <div class="menu">
- <?php include("ressources/menu.html"); ?>
- </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>
-
- <div class="footer">
- <?php include("ressources/footer.html"); ?>
+ <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>
+ </td>
+ <td>
+ <input type="submit" name="loginsubmit" value="Valider" />
+ </td>
+ </tr>
+ </table>
+ </form>
+ <h3>Vous ne disposez pas encore d'un compte ?</h3>
+ <p><a href="signup.php?return=<?php echo $location; ?>">Inscrivez-vous</a> dès maintenant !</p>
</div>
+ <?php include("ressources/footer.inc"); ?>
</body>
- </html>
+</html>
diff --git 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);
@@ -338,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.
@@ -355,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.";");
@@ -368,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 "]}";
@@ -400,7 +424,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];
diff --git a/code/serveur/php/ressources/footer.html b/code/serveur/php/ressources/footer.html
@@ -1,23 +0,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 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>
- <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://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="contact.php">Nous contacter</a>
- </p>
- - </body>
- </html>
-\ No newline at end of file
diff --git a/code/serveur/php/ressources/footer.inc b/code/serveur/php/ressources/footer.inc
@@ -0,0 +1,12 @@
+ <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://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="contact.php">Nous contacter</a>
+ </p>
+ </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.html b/code/serveur/php/ressources/menu.html
@@ -1,19 +0,0 @@
-<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>
diff --git a/code/serveur/php/ressources/menu.inc b/code/serveur/php/ressources/menu.inc
@@ -0,0 +1,21 @@
+ <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 {
@@ -49,7 +58,6 @@
}
.logintbl td, .contactbl td, .signuptbl td {
- width : 50%;
text-align : right;
padding-left : 5px;
padding-right : 5px;
@@ -72,7 +80,8 @@ html, body {
h1 {
color: #8b4;
- margin : 5px;
+ margin : 0;
+ padding: 0.2em 0.5em;
}
h2 {
@@ -92,13 +101,14 @@ h5 {
}
a {
- color: black;
+ color: darkgreen;
}
a:visited {
- color: #543;
+ color: #765;
}
+.footer a:hover,
a:hover {
color: #c86;
}
@@ -122,10 +132,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 +141,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 +165,9 @@ h2#tache-description {
}
#downloadlink:hover {
- background-color: red;
+ background-color: #5555ff;
+ color: white;
+ border-color: #ccccff;
}
.downloadarea {
@@ -167,9 +177,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,35 @@
+<?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'] = "Une erreur interne est survenue lors de l'inscription, merci de nous signaler le problème.";
+
+$strings['err_download_notauth'] = "Pour accéder à la page de téléchargement de l\'application vous devez être authentifié."
+
+?>
+\ No newline at end of file
diff --git a/code/serveur/php/signup.php b/code/serveur/php/signup.php
@@ -1,206 +1,190 @@
<?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.html"); ?>
- </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.html"); ?>
+ <h2>Inscription</h2>
+ <?php include("ressources/showmsg.inc"); ?>
+ <h3>Vous n'avez pas encore de compte ?</h3>
+ <p>
+ Inscrivez-vous pour accéder l'ensemble du site et faire parti des alpha-testeurs ! <br />
+ Vous pourrez ainsi télécharger l'application la tester et nous faire part de vos remarques afin de l'améliorer.<br />
+ </p>
+ <p>
+ Pour vous inscrire maintenant veuillez remplir le formulaire qui suit :
+ </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>