This commit is contained in:
Bertrand BRUN 2011-02-25 07:25:45 +01:00
commit 928c8efb7a
18 changed files with 596 additions and 486 deletions

View File

@ -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

View File

@ -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

View File

@ -1 +1,2 @@
db.old
log.txt

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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&nbsp;? Vous avez un smartphone sous Android&nbsp;?
PtiClic est pour vous&nbsp;!</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&nbsp;!</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&nbsp;!</p>
<p>
Vous aimez les jeux de mots&nbsp;? Vous avez un smartphone sous Android&nbsp;?
PtiClic est pour vous&nbsp;!
</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&nbsp;!
</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&nbsp;!
</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&nbsp;: 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&nbsp;: 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&nbsp;!</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&nbsp;!</a></p>
</div>
<div class="footer">
<?php include("ressources/footer.html"); ?>
</div>
<?php include("ressources/footer.inc"); ?>
</body>
</html>

View File

@ -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&nbsp;? Authentifiez-vous&nbsp;:</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&nbsp;:</label>
</td>
<td>
<input name="loginid" type="text" /><br />
</td>
</tr>
<tr>
<td>
<label for="loginpswd"> Mot de passe&nbsp;: </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&nbsp;:</label>
</td>
<td>
<input name="loginid" type="text" /><br />
</td>
</tr>
<tr>
<td>
<label for="loginpswd"> Mot de passe&nbsp;: </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>

View File

@ -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];

View File

@ -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&nbsp;:
<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>

View File

@ -0,0 +1,12 @@
<div class="footer">
<p>Les concepteurs du jeu&nbsp;:
<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>

View File

@ -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";
}
?>

View File

@ -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>

View File

@ -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>

View File

@ -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();
?>

View File

@ -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%;
}

View File

@ -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é."
?>

View File

@ -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'];
}
}
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">
<!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&nbsp;? Inscrivez-vous&nbsp;:</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&nbsp;:</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&nbsp;: </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&nbsp;: </label>
</td>
<td>
<input name="signuppswd1" type="password" />
</td>
</tr>
<tr>
<td>
<label for="signuppswd2">Resaisir le mot de passe&nbsp;: </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&nbsp;:</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&nbsp;: </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&nbsp;: </label>
</td>
<td>
<input name="signuppswd1" type="password" />
</td>
</tr>
<tr>
<td>
<label for="signuppswd2">Resaisir le mot de passe&nbsp;: </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>