Merge branch 'master' of https://github.com/jsmaniac/2011-m1s2-ter
This commit is contained in:
commit
928c8efb7a
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
1
code/serveur/php/.gitignore
vendored
1
code/serveur/php/.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
db.old
|
||||
log.txt
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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>
|
12
code/serveur/php/ressources/footer.inc
Normal file
12
code/serveur/php/ressources/footer.inc
Normal file
|
@ -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>
|
26
code/serveur/php/ressources/locations.inc
Normal file
26
code/serveur/php/ressources/locations.inc
Normal 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";
|
||||
}
|
||||
|
||||
?>
|
|
@ -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>
|
21
code/serveur/php/ressources/menu.inc
Normal file
21
code/serveur/php/ressources/menu.inc
Normal 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>
|
26
code/serveur/php/ressources/showmsg.inc
Normal file
26
code/serveur/php/ressources/showmsg.inc
Normal 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();
|
||||
|
||||
?>
|
|
@ -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%;
|
||||
}
|
||||
|
|
35
code/serveur/php/ressources/strings.inc
Normal file
35
code/serveur/php/ressources/strings.inc
Normal 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é."
|
||||
|
||||
?>
|
|
@ -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 ? 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>
|
||||
|
|
Loading…
Reference in New Issue
Block a user