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 # cat dump.url
# Aller à cette adresse, et télécharger le dernier dump # Aller à cette adresse, et télécharger le dernier dump
echo echo
echo "Étape 1/3 : Téléchargement" echo "Étape 1/5 : Téléchargement de la version du dump"
echo "==========================" 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/')" 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" wget -c 'http://www.lirmm.fr/~lafourcade/JDM-LEXICALNET-FR/'"$latest"
echo echo
echo "Étape 2/3 : Conversion vers sql" echo "Étape 3/5 : Conversion vers sql"
echo "===============================" echo "==============================="
./dump2sqlite.sh "$latest" > sql ./dump2sqlite.sh "$latest" > sql
echo echo
echo "Étape 3/3 : Insertion dans la bdd" echo "Étape 4/5 : Insertion dans la bdd"
echo "=================================" echo "================================="
mv php/db php/db.old [ -e php/db ] && mv php/db php/db.old
pv sql | sqlite3 php/db 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 664 php/db
chmod 775 php 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 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(pgid integer primary key autoincrement, gid, login, timestamp);
create table played_game_cloud(pgid, gid, type, num, relation, weight, score); 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); 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 EOF
# tr : pour virer le CRLF qui traîne # tr : pour virer le CRLF qui traîne
@ -56,4 +51,25 @@ cat "$1" \
| grep -v '^//' \ | grep -v '^//' \
| 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 db.old
log.txt

View File

@ -1,9 +1,11 @@
<?php <?php
require_once("ressources/strings.inc");
session_start(); session_start();
$displayForm = true; $displayForm = true;
$emailaddress = ""; $emailaddress = "";
$mailfile = "mails.txt"; $mailfile = "mails.txt";
$msg = null;
function writemail($filename,$email,$subject,$message) 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); fprintf($file,"%s\n%s\n%s\n\n",$email,$subject,$message);
} }
else else
die("Erreur lors de l'ouverture du fichier d'enregistrement de mails"); die($strings['err_contact_open_mailfile']);
fclose($file); fclose($file);
} }
@ -34,23 +36,18 @@ if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message']
/*if(mail($dest,$subject,$message,$header)) /*if(mail($dest,$subject,$message,$header))
{ {
$notif = "Votre email à été envoyé"; $msg = $strings['ok_msg_sent'];
$displayForm = false; $displayForm = false;
} }
else else
$notif = "Une erreur s'est produite lors de l'envoi du message";*/ $msg = "Une erreur s'est produite lors de l'envoi du message";*/
$msg = $strings['ok_msg_sent'];
$notif = "Votre email à été envoyé";
} }
else 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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <head>
<title>Titre</title> <title>Titre</title>
@ -58,20 +55,24 @@ if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message']
<link rel="stylesheet" href="ressources/simple.css" /> <link rel="stylesheet" href="ressources/simple.css" />
</head> </head>
<body> <body>
<div class="menu"> <?php include("ressources/menu.inc"); ?>
<?php include("ressources/menu.html"); ?>
</div>
<div class="content"> <div class="content">
<?php include("ressources/showmsg.inc"); ?>
<h2>Contact</h2>
<?php <?php
if(isset($notif)) if($msg != null)
if($displayForm == true) if($displayForm == true)
echo '<span class="message warning">'.$notif.'</span>'; echo '<span class="message warning">'.htmlspecialchars($msg).'</span>';
else else
echo '<span class="message success">'.$notif.'</span>'; echo '<span class="message success">'.htmlspecialchars($msg).'</span>';
if($displayForm == true) if($displayForm == true)
{ { // 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"> <form action="contact.php" method="POST">
<table class="contacttbl"> <table class="contacttbl">
<tr> <tr>
@ -109,13 +110,9 @@ if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message']
</table> </table>
</form> </form>
<?php <?php
} } // Fin de if($displayForm == true)
?> ?>
</div> </div>
<div class="footer"> <?php include("ressources/footer.inc"); ?>
<?php include("ressources/footer.html"); ?>
</div>
</body> </body>
</html><?php </html>
?>

View File

@ -1,4 +1,5 @@
<?php <?php
require_once("ressources/strings.inc");
session_start(); session_start();
$err = false; $err = false;
@ -10,18 +11,12 @@ if(isset($_POST['nbcloudwords']))
for($i = 0; $i < $nbword; $i++) for($i = 0; $i < $nbword; $i++)
if(!isset($_POST['word'.$i]) || empty($_POST['word'.$i])) { if(!isset($_POST['word'.$i]) || empty($_POST['word'.$i])) {
$err = true; $err = true;
$msg = "Tous les mots du nage ne sont pas renseignés"; $msg = $strings['err_creategame_fill_all'];
} }
if($err == false) if($err == false)
$state = 0; $state = 0;
?> ?><!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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <head>
<title>PtiClic Android - Création de partie</title> <title>PtiClic Android - Création de partie</title>
@ -29,17 +24,18 @@ $state = 0;
<link rel="stylesheet" href="ressources/simple.css" /> <link rel="stylesheet" href="ressources/simple.css" />
</head> </head>
<body> <body>
<div class="menu"> <?php include("ressources/menu.inc"); ?>
<?php include("ressources/menu.html"); ?>
</div>
<div class="content"> <div class="content">
<?php include("ressources/showmsg.inc"); ?>
<form action="createGame.php" method="POST"> <form action="createGame.php" method="POST">
<?php <?php
if(!isset($_POST["nbcloudwords"])) { if(!isset($_POST["nbcloudwords"]))
{
echo '<input type="text" name="nbcloudwords" />'; echo '<input type="text" name="nbcloudwords" />';
echo '<input type="submit" value="suivant" />'; echo '<input type="submit" value="suivant" />';
} }
else { else
{
echo '<input type="text" name="centralword" />'; echo '<input type="text" name="centralword" />';
for($i = 0; $i < $_POST['nbcloudwords']; $i++) for($i = 0; $i < $_POST['nbcloudwords']; $i++)
@ -48,11 +44,8 @@ $state = 0;
echo '<input type="submit" value="Enregistrer la partie" />'; echo '<input type="submit" value="Enregistrer la partie" />';
} }
?> ?>
</form> </form>
</div> </div>
<div class="footer"> <?php include("ressources/footer.inc"); ?>
<?php include("ressources/footer.html"); ?>
</div>
</body> </body>
</html> </html>

View File

@ -2,13 +2,9 @@
session_start(); session_start();
if(!isset($_SESSION['userId'])) if(!isset($_SESSION['userId']))
header("location:login.php?return=download.php"); 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">
?><!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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <head>
<title>PtiClic sous Android, version Alpha - Téléchargement</title> <title>PtiClic sous Android, version Alpha - Téléchargement</title>
@ -16,16 +12,16 @@ if(!isset($_SESSION['userId']))
<link rel="stylesheet" href="ressources/simple.css" /> <link rel="stylesheet" href="ressources/simple.css" />
</head> </head>
<body> <body>
<div class="menu"> <?php include("ressources/menu.inc"); ?>
<?php include("ressources/menu.html"); ?>
</div>
<div class="content"> <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> <span class="downloadarea"><a href="ressources/pticlic.apk" id="downloadlink">Télécharger</a></span>
<h2>Installation de l'application</h2> <h2>Installation de l'application</h2>
<h3> A partir de votre téléphone </h3> <h3> A partir de votre téléphone </h3>
<ul> <ul>
<li> <a href="ressources/pticlic.apk" />Téléchargez le fichier d'installation</a></li> <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 <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> 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>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> <li> Suivez attentivement les instructions lors du premier démarrage de l'application</li>
@ -40,8 +36,6 @@ if(!isset($_SESSION['userId']))
<li>Suivez attentivement les instructions lors du premier démarrage de l'application</li> <li>Suivez attentivement les instructions lors du premier démarrage de l'application</li>
</ul> </ul>
</div> </div>
<div class="footer"> <?php include("ressources/footer.inc"); ?>
<?php include("ressources/footer.html"); ?>
</div>
</body> </body>
</html> </html>

View File

@ -1,9 +1,6 @@
<?php <?php
session_start(); session_start();
?> ?><!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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <head>
@ -12,41 +9,45 @@ session_start();
<link rel="stylesheet" href="ressources/simple.css" /> <link rel="stylesheet" href="ressources/simple.css" />
</head> </head>
<body> <body>
<div class="menu"> <?php include("ressources/menu.inc"); ?>
<?php include("ressources/menu.html"); ?>
</div>
<div class="content"> <div class="content">
<?php include("ressources/showmsg.inc"); ?>
<h2>Jeu PtiClic - Téléchargement gratuit</h2> <h2>Jeu PtiClic - Téléchargement gratuit</h2>
<p>Vous aimez les jeux de mots&nbsp;? Vous avez un smartphone sous Android&nbsp;? <p>
PtiClic est pour vous&nbsp;!</p> Vous aimez les jeux de mots&nbsp;? Vous avez un smartphone sous Android&nbsp;?
<p>Soyez parmi les tous premiers à <a href="download.php">télécharger cette 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. application gratuitement</a> en devenant Alpha-testeur.
L'<a href="signup.php">inscription</a> est simple, il suffit de fournir 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> une adresse mail, de créer un identifiant et vous pourrez commencer à jouer&nbsp;!
<!-- <p>Il ne s'agit pas d'une version d'essai et l'application ne contient aucun </p>
spyware.</p> -->
<h2>Le principe du jeu</h2> <h2>Le principe du jeu</h2>
<p>Un mot central apparaît ainsi que quatre associations <p>
telles que "synonyme", "antonyme", "est une sorte de", "corbeille"... L'idée est Un mot central apparaît ainsi que quatre associations
de lier de nouveaux mots au mot central à l'aide des 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. Plus votre réponse est juste, plus vous gagnez de points.
Attention, vous pouvez aussi perdre des points&nbsp;!</p> Attention, vous pouvez aussi perdre des points&nbsp;!
</p>
<h2>Le développement de l'application</h2> <h2>Le développement de l'application</h2>
<p>La version beta du jeu PtiClic sous Android est en cours de développement. <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 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 à 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, de conception et de développement est composée de quatre étudiants&nbsp;: Bertrand BRUN,
Yoann BONAVERO, John CHARRON et Georges DUPERON. Yoann BONAVERO, John CHARRON et Georges DUPERON.
</p> </p>
<h2>Votre rôle en tant qu'Alpha-testeur</h2> <h2>Votre rôle en tant qu'Alpha-testeur</h2>
<p>L'application étant en phase de développement et offerte gratuitement, <p>
L'application étant en phase de développement et offerte gratuitement,
nous serions reconnaissant si vous pouviez nous donner votre avis, vos suggestions, 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> vos idées. <a href="contact.php">Envoyez-nous un message&nbsp;!</a>
</div> </p>
<div class="footer">
<?php include("ressources/footer.html"); ?>
</div> </div>
<?php include("ressources/footer.inc"); ?>
</body> </body>
</html> </html>

View File

@ -1,18 +1,20 @@
<?php <?php
session_start(); session_start();
require_once("ressources/strings.inc");
require_once("ressources/locations.inc");
$msg = null;
if(isset($_POST['loginid']) && !empty($_POST['loginid'])) if(isset($_POST['loginid']) && !empty($_POST['loginid']))
$user = SQLite3::escapeString($_POST['loginid']); $user = SQLite3::escapeString($_POST['loginid']);
if(isset($_POST['loginpswd']) && !empty($_POST['loginpswd'])) if(isset($_POST['loginpswd']) && !empty($_POST['loginpswd']))
$pswd = md5($_POST['loginpswd']); $pswd = md5($_POST['loginpswd']);
if(isset($_GET['return']))
$location = $_GET['return']; $location = getlocation();
else
$location = "index.php";
if(isset($_GET['d']) && $_GET['d'] == "true") { if(isset($_GET['d']) && $_GET['d'] == "true") {
session_destroy(); session_destroy();
header("location:index.php"); return_to($location, "?show_msg=ok_login_disconnect");
} }
if(isset($user) && isset($pswd)) if(isset($user) && isset($pswd))
@ -20,22 +22,20 @@ if(isset($user) && isset($pswd))
$SQL_DBNAME = (dirname(__FILE__) . "/db"); $SQL_DBNAME = (dirname(__FILE__) . "/db");
if (!$db = new SQlite3($SQL_DBNAME)) 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';"))) { 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 else
$msg = "Mauvais nom d'utilisateur ou mot de passe"; $msg = $strings['err_login_bad_user_pass'];
} }
else if(isset($user) or isset($pswd)) else if(isset($user) or isset($pswd))
$msg = "Veuillez remplir tous les champs"; $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">
?><!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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <head>
<title>Titre</title> <title>Titre</title>
@ -43,16 +43,17 @@ else if(isset($user) or isset($pswd))
<link rel="stylesheet" href="ressources/simple.css" /> <link rel="stylesheet" href="ressources/simple.css" />
</head> </head>
<body> <body>
<div class="menu"> <?php include("ressources/menu.inc"); ?>
<?php include("ressources/menu.html"); ?>
</div>
<div class="content"> <div class="content">
<p>Vous êtes déjà inscrit&nbsp;? Authentifiez-vous&nbsp;:</p> <h2>Connexion</h2>
<?php include("ressources/showmsg.inc"); ?>
<h3>Vous êtes déjà inscrit ?</h3>
<p>Authentifiez-vous :</p>
<?php <?php
if(isset($msg)) if($msg !== null)
echo '<span class="message warning">'.$msg.'</span>'; echo '<p class="message warning">'.htmlspecialchars($msg).'</p>';
?> ?>
<form name="loginform" method="post" action="login.php?return=<?php echo $location; ?>"> <form name="loginform" method="POST" action="login.php?return=<?php echo $location; ?>">
<table class="logintbl"> <table class="logintbl">
<tr> <tr>
<td> <td>
@ -72,7 +73,6 @@ else if(isset($user) or isset($pswd))
</tr> </tr>
<tr> <tr>
<td> <td>
</td> </td>
<td> <td>
<input type="submit" name="loginsubmit" value="Valider" /> <input type="submit" name="loginsubmit" value="Valider" />
@ -80,10 +80,9 @@ else if(isset($user) or isset($pswd))
</tr> </tr>
</table> </table>
</form> </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> </div>
<?php include("ressources/footer.inc"); ?>
<div class="footer">
<?php include("ressources/footer.html"); ?>
</div>
</body> </body>
</html> </html>

View File

@ -75,11 +75,16 @@ if ($action == 3) {
/** Selectionne aléatoirement un noeud. /** Selectionne aléatoirement un noeud.
*/ */
function random_node() function random_center_node()
{ {
global $db; 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 : // Le select doit ranvoyer trois colonnes :
// eid => l'eid du mot à mettre dans le nuage, // 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). // 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)"; $typer1r2 = "type in ($r1, $r2)";
$sources = array( $sources = array(
// Voisins 1 saut du bon type (= relations déjà existantes) // 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++) 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']++; $sources[$k]['rsSize']++;
} }
} }
@ -254,7 +258,7 @@ function cg_build_cloud($cloudSize, $sources, $sumWeights)
while ($i < $cloudSize) while ($i < $cloudSize)
{ {
$totalDifficulty += $sources['rand']['d']; $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); return array($cloud, $totalDifficulty);
@ -338,6 +342,26 @@ function randomGame()
return $gid; 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. /** Formate une partie en JSON en l'imprimant.
* @param game_id : L'identifiant d'une partie. * @param game_id : L'identifiant d'une partie.
@ -355,7 +379,7 @@ function game2json($game_id)
$game = $game->fetchArray(); $game = $game->fetchArray();
echo '{"gid":'.$game_id.',"pgid":'.$pgid.',"cat1":'.$game['relation_1'].',"cat2":'.$game['relation_2'].',"cat3":0,"cat4":-1,'; 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. 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.";"); $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 else
$notfirst=true; $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 "]}"; echo "]}";
@ -400,7 +424,7 @@ function createGameCore($cloudSize)
global $db; global $db;
// select random node // select random node
$centerEid = random_node(); $centerEid = random_center_node();
$r1 = cg_choose_relations(); $r2 = $r1[1]; $r1 = $r1[0]; $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]; $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,14 +24,23 @@
.footer { .footer {
margin: 0; margin: 0;
padding: 0.5em; padding: 0.7em;
border-top: thin solid grey; border-top: thin solid grey;
border-bottom: thin solid grey; border-bottom: thin solid grey;
background-color : #FFFFE0; background-color : #FFFFE0;
font-size: x-small; font-size: 75%;
text-align: center text-align: center
} }
.footer p {
margin: 0;
}
.footer a,
.footer a:visited {
color: black;
}
.content { .content {
min-height : 80px; min-height : 80px;
margin: 0; margin: 0;
@ -49,7 +58,6 @@
} }
.logintbl td, .contactbl td, .signuptbl td { .logintbl td, .contactbl td, .signuptbl td {
width : 50%;
text-align : right; text-align : right;
padding-left : 5px; padding-left : 5px;
padding-right : 5px; padding-right : 5px;
@ -72,7 +80,8 @@ html, body {
h1 { h1 {
color: #8b4; color: #8b4;
margin : 5px; margin : 0;
padding: 0.2em 0.5em;
} }
h2 { h2 {
@ -92,13 +101,14 @@ h5 {
} }
a { a {
color: black; color: darkgreen;
} }
a:visited { a:visited {
color: #543; color: #765;
} }
.footer a:hover,
a:hover { a:hover {
color: #c86; color: #c86;
} }
@ -122,10 +132,8 @@ h2#tache-description {
} }
.message { .message {
width : 40%; display : inline-block;
display : block; padding : 5px 30px;
padding : 5px;
padding-left : 30px;
margin-top : 10px; margin-top : 10px;
margin-bottom : 10px; margin-bottom : 10px;
margin-right : 6%; margin-right : 6%;
@ -146,8 +154,8 @@ h2#tache-description {
color : black; color : black;
text-decoration : none; text-decoration : none;
font-size : 16pt; font-size : 16pt;
background-color: #8888ff; background-color: #ccccff;
border: medium solid blue; border: medium solid #5555ff;
border-radius: 1em; border-radius: 1em;
-moz-border-radius: 1em; -moz-border-radius: 1em;
-webkit-border-radius: 1em; -webkit-border-radius: 1em;
@ -157,7 +165,9 @@ h2#tache-description {
} }
#downloadlink:hover { #downloadlink:hover {
background-color: red; background-color: #5555ff;
color: white;
border-color: #ccccff;
} }
.downloadarea { .downloadarea {

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,35 +1,41 @@
<?php <?php
session_start(); session_start();
require_once("ressources/strings.inc");
require_once("ressources/locations.inc");
$SQL_DBNAME = (dirname(__FILE__) . "/db"); $SQL_DBNAME = (dirname(__FILE__) . "/db");
if (!$db = new SQlite3($SQL_DBNAME)) if (!$db = new SQlite3($SQL_DBNAME))
mDie(1,"Erreur lors de l'ouverture de la base de données SQLite3"); die($strings['err_signup_dbopen']);
$location = getlocation();
$newpage = true; $newpage = true;
if(!isset($msg)){
$msg = array(); $msg = array();
}
if(isset($_POST['signupemail'])){ if(isset($_POST['signupemail'])){
$newpage = false; $newpage = false;
$signupemail = $_POST['signupemail']; $signupemail = $_POST['signupemail'];
$pattern = "/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/"; // 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) == ""){ if(trim($signupemail) == ""){
$msg[] = "Veuillez renseigner le champ 'Saisir votre adresse mail'."; $msg[] = $strings['err_signup_fill_mail'];
unset($_POST['signupemail']);
$signupemail = "";
} }
else if (!preg_match($pattern, $signupemail)){ else if (!preg_match($pattern, $signupemail)){
$msg[] = "Adresse mail invalide. Vous pouvez utiliser des lettres, des chiffres et // TODO : ce message est erroné.
les caractères spéciaux '-', '_' et '.'"; $msg[] = $strings['err_signup_invalid_mail'];
$signupemail = $_POST['signupemail'];
unset($_POST['signupemail']);
$signupemail = "";
} }
else if ($db->querySingle("SELECT mail FROM user WHERE mail='$signupemail'") != null){ 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 $msg[] = $strings['err_signup_existing_mail'];
oublier votre identifiant et/ou votre mot de passe.";
unset($_POST['signupemail']);
$signupemail = "";
} }
} }
@ -38,21 +44,14 @@ if(isset($_POST['signupid'])){
$signupid = $_POST['signupid']; $signupid = $_POST['signupid'];
$pattern = "/^([a-zA-Z0-9])+([\.\-_][a-zA-Z0-9]*)*/"; $pattern = "/^([a-zA-Z0-9])+([\.\-_][a-zA-Z0-9]*)*/";
if(trim($signupid) == ""){ if(trim($signupid) == ""){
$msg[] = "Veuillez renseigner le champ 'Choisir un identifiant'.\n"; $msg[] = $strings['err_signup_fill_login'];
unset($_POST['signupid']);
$signupid = "";
} }
else if (!preg_match($pattern, $signupemail)){ else if (!preg_match($pattern, $signupid)){
$msg[] = "Identifiant invalid. Vous pouvez utiliser des lettres, des chiffres et $msg[] = $strings['err_signup_invalid_login'];
les caractères spéciaux '-', '_' et '.'\n";
$signupid = $_POST['signupid']; $signupid = $_POST['signupid'];
unset($_POST['signupid']);
$signupid = "";
} }
else if ($db->querySingle("SELECT login FROM user WHERE login='$signupid'") != null){ else if ($db->querySingle("SELECT login FROM user WHERE login='$signupid'") != null){
$msg[] = "Identifiant déjà pris ! Veuillez choisir un autre identifiant."; $msg[] = $strings['err_signup_existing_login'];
unset($_POST['signupid']);
$signupid = "";
} }
} }
@ -60,18 +59,10 @@ if(isset($_POST['signuppswd1'])){
$newpage = false; $newpage = false;
$signuppswd1 = $_POST['signuppswd1']; $signuppswd1 = $_POST['signuppswd1'];
if(trim($signuppswd1) == ""){ if(trim($signuppswd1) == ""){
$msg[] = "Veuillez renseigner le champ 'Mot de passe'.\n"; $msg[] = $strings['err_signup_fill_passwd1'];
unset($_POST['signuppswd1']);
$signuppswd1 = "";
unset($_POST['signuppswd2']);
$signuppswd2 = "";
} }
else if(strlen($signuppswd1) < 5){ else if(strlen($signuppswd1) < 5){
$msg[] = "Mot de passe invalide. Votre mot de passe doit comporter au moins 5 caractères.\n"; $msg[] = $strings['err_signup_invalid_passwd1'];
unset($_POST['signuppswd1']);
$signuppswd1 = "";
unset($_POST['signuppswd2']);
$signuppswd2 = "";
} }
} }
@ -79,67 +70,61 @@ if(isset($_POST['signuppswd2'])){
$newpage = false; $newpage = false;
$signuppswd2 = $_POST['signuppswd2']; $signuppswd2 = $_POST['signuppswd2'];
if(trim($signuppswd2) == ""){ if(trim($signuppswd2) == ""){
$msg[] = "Veuillez renseigner le champ 'Resaisir le mot de passe'.\n"; $msg[] = $strings['err_signup_fill_passwd2'];
unset($_POST['signuppswd1']);
$signuppswd1 = "";
unset($_POST['signuppswd2']);
$signuppswd2 = "";
} }
if(strlen($signuppswd1 != $signuppswd2)){ if(strlen($signuppswd1 != $signuppswd2)){
$msg[] = "Les deux mots de passe saisis ne sont pas identiques.\n"; $msg[] = $strings['err_signup_passwords_dont_match'];
unset($_POST['signuppswd1']); }
$signuppswd1 = ""; }
unset($_POST['signuppswd2']);
$signuppswd2 = ""; 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"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head> <head>
<title>PtiClic sous Android - Version Alpha - Inscription</title> <title>PtiClic sous Android - Version Alpha - Inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="ressources/simple.css" /> <link rel="stylesheet" href="ressources/simple.css" />
</head> </head>
<body> <body>
<div class="menu"> <?php include("ressources/menu.inc"); ?>
<?php include("ressources/menu.html"); ?>
</div>
<div class="content"> <div class="content">
<p>Vous n'êtes pas encore inscrit&nbsp;? Inscrivez-vous&nbsp;:</p> <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 <?php
if(sizeof($msg) > 0){ if(count($msg) > 0)
echo '<span class="message warning">'. {
"<b>Saisie invalide. Les erreurs sont les suivantes : </b> <p>". echo '<div class="message warning">'.
"<ul>"; '<p><b>Saisie invalide. Les erreurs sont les suivantes : </b></p>'.
'<ul>';
foreach ($msg as $m) { foreach ($msg as $m) {
echo "<li>".$m; echo "<li>".htmlspecialchars($m)."</li>";
} }
echo "</ul>"; echo '</ul>';
echo '</div>';
} }
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; ?>"> <form name="signupform" method="post" action="signup.php?return=<?php echo $location; ?>">
<table class="signuptbl"> <table class="signuptbl">
@ -154,7 +139,7 @@ if(isset($_POST['signuppswd2'])){
echo " value='$signupemail'"; echo " value='$signupemail'";
} }
?> ?>
/><br /> />
</td> </td>
</tr> </tr>
<tr> <tr>
@ -197,10 +182,9 @@ if(isset($_POST['signuppswd2'])){
</tr> </tr>
</table> </table>
</form> </form>
<h3>Vous êtes déjà inscrit ?</h3>
<p><a href="login.php?return=<?php echo $location; ?>">Connectez-vous !</a></p>
</div> </div>
<?php include("ressources/footer.inc"); ?>
<div class="footer">
<?php include("ressources/footer.html"); ?>
</div>
</body> </body>
</html> </html>