Améliorations sur le site (voir le reste du commentaire pour les détails)

* Lisibilité (liens qui ressortent plus, footer un peu plus gros (là il fallait une loupe :) )).
* Affichage des messages sur la page de destination pour signup.
* Possibilité d'afficher un message sur n'importe quelle page sur laquelle on redirect ( index.php?show_msg=ok_signup_registered par ex.).
* Regrouppement de tous les messages dans ressources/strings.inc, pour les affichages (point précédent) et pour que la vérification de l'orthographe soit plus facile (pas besoin de lire tout le code).
* Nettoyage des paramètres à certains endroits où ça avait été oublié (mais il en reste).
* Correction de quelques bugs (appel à la fonction mDie qui n'existe pas par ex.).
* On ne peut faire de redirect que sur nos pages, pour éviter un exploit par redirect.
* Signup connecte automatiquement l'utilisateur si l'inscription a fonctionné.
* Ajout de liens entre signup et login. Si on clique sur un des lien, la page de retour reste la bonne (par exemple download, au lieu de devenir login).
* Ré-indentation, uniformisation du style du code (plus ou moins, et plus moins que plus).
* Factorisation du code.
* Correction de la couleur du lien Télécharger.
* Correction de quelques bugs d'alignement (il en reste).
This commit is contained in:
Georges Dupéron 2011-02-24 20:04:47 +01:00
parent 6f09cacb53
commit 474f4258c5
12 changed files with 502 additions and 457 deletions

View File

@ -1,9 +1,11 @@
<?php
require_once("ressources/strings.inc");
session_start();
$displayForm = true;
$emailaddress = "";
$mailfile = "mails.txt";
$msg = null;
function writemail($filename,$email,$subject,$message)
{
@ -13,7 +15,7 @@ function writemail($filename,$email,$subject,$message)
fprintf($file,"%s\n%s\n%s\n\n",$email,$subject,$message);
}
else
die("Erreur lors de l'ouverture du fichier d'enregistrement de mails");
die($strings['err_contact_open_mailfile']);
fclose($file);
}
@ -22,35 +24,30 @@ function writemail($filename,$email,$subject,$message)
if(isset($_POST['email']) && isset($_POST['subject']) && isset($_POST['message']))
if(!empty($_POST['email']) && !empty($_POST['subject']) && !empty($_POST['message']))
{
$from = $_POST['email'];
$subject = $_POST['subject'];
$header = 'From: '.$from . "\r\n" .
'Reply-To: '.$from . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$dest = $emailaddress;
$message = str_replace("\r\n","\n",$_POST['message']);
$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);
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,60 @@ 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.inc"); ?>
</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>';
{ // Fin sous le <form> ci-dessous
?>
<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>
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
}
</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.inc"); ?>
</div>
<?php include("ressources/footer.inc"); ?>
</body>
</html><?php
?>
</html>

View File

@ -1,4 +1,5 @@
<?php
require_once("ressources/strings.inc");
session_start();
$err = false;
@ -10,18 +11,12 @@ if(isset($_POST['nbcloudwords']))
for($i = 0; $i < $nbword; $i++)
if(!isset($_POST['word'.$i]) || empty($_POST['word'.$i])) {
$err = true;
$msg = "Tous les mots du nage ne sont pas renseignés";
$msg = $strings['err_creategame_fill_all'];
}
if($err == false)
$state = 0;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
$state = 0;
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>PtiClic Android - Création de partie</title>
@ -29,30 +24,28 @@ $state = 0;
<link rel="stylesheet" href="ressources/simple.css" />
</head>
<body>
<div class="menu">
<?php include("ressources/menu.inc"); ?>
</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" />';
<?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" />';
}
?>
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.inc"); ?>
</div>
<?php include("ressources/footer.inc"); ?>
</body>
</html>

View File

@ -2,46 +2,39 @@
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");
?><!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.inc"); ?>
</div>
<?php include("ressources/menu.inc"); ?>
<div class="content">
<?php include("ressources/showmsg.inc"); ?>
<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é, 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.inc"); ?>
</div>
<?php include("ressources/footer.inc"); ?>
</body>
</html>

View File

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

View File

@ -1,18 +1,20 @@
<?php
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,47 @@ else if(isset($user) or isset($pswd))
<link rel="stylesheet" href="ressources/simple.css" />
</head>
<body>
<div class="menu">
<?php include("ressources/menu.inc"); ?>
</div>
<?php include("ressources/menu.inc"); ?>
<div class="content">
<p>Vous êtes déjà inscrit&nbsp;? Authentifiez-vous&nbsp;:</p>
<?php
if(isset($msg))
echo '<span class="message warning">'.$msg.'</span>';
?>
<form name="loginform" method="post" action="login.php?return=<?php echo $location; ?>">
<table class="logintbl">
<tr>
<td>
<label for="loginid"> Identifiant&nbsp;:</label>
</td>
<td>
<input name="loginid" type="text" /><br />
</td>
</tr>
<tr>
<td>
<label for="loginpswd"> Mot de passe&nbsp;: </label>
</td>
<td>
<input name="loginpswd" type="password" />
</td>
</tr>
<tr>
<td>
<h2>Connexion</h2>
<?php include("ressources/showmsg.inc"); ?>
<h3>Vous êtes déjà inscrit ?</h3>
<p>Authentifiez-vous :</p>
<?php
if($msg !== null)
echo '<p class="message warning">'.htmlspecialchars($msg).'</p>';
?>
<form name="loginform" method="post" action="login.php?return=<?php echo $location; ?>">
<table class="logintbl">
<tr>
<td>
<label for="loginid"> Identifiant&nbsp;:</label>
</td>
<td>
<input name="loginid" type="text" /><br />
</td>
</tr>
<tr>
<td>
<label for="loginpswd"> Mot de passe&nbsp;: </label>
</td>
<td>
<input name="loginpswd" type="password" />
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="loginsubmit" value="Valider" />
</td>
</tr>
</table>
</form>
</div>
<div class="footer">
<?php include("ressources/footer.inc"); ?>
</td>
<td>
<input type="submit" name="loginsubmit" value="Valider" />
</td>
</tr>
</table>
</form>
<h3>Vous n'avez pas encore de compte ?</h3>
<p><a href="signup.php?return=<?php echo $location; ?>">Inscrivez-vous !</a></p>
</div>
<?php include("ressources/footer.inc"); ?>
</body>
</html>
</html>

View File

@ -1,13 +1,4 @@
<!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>
<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> -
@ -15,9 +6,7 @@
<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="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>
</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 +1,21 @@
<h1>PtiClic <span class="android">sous Android™</span> - Version 0.1 Alpha</h1>
<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>
<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>
<?php }
else // Menu une fois connecté.
{?>
<a id="cnx" href="login.php?d=true">Se deconnecter</a>
<?php } ?>
</span>
</div>

View File

@ -0,0 +1,26 @@
<?php
require_once("ressources/strings.inc");
function showmsg() {
global $strings;
if (isset($_GET['show_msg'])) {
$msg = $_GET['show_msg'];
$errmsg = false;
if (array_key_exists($msg, $strings)) {
$errmsg = preg_match('/^err_/', $msg);
$msg = $strings[$msg];
} else {
$errmsg = true;
$msg = $strings['err_index_invalid_msg'];
}
if($errmsg)
echo '<p class="message warning">'.htmlspecialchars($msg).'</p>';
else
echo '<p class="message success">'.htmlspecialchars($msg).'</p>';
}
}
showmsg();
?>

View File

@ -24,12 +24,21 @@
.footer {
margin: 0;
padding: 0.5em;
padding: 0.7em;
border-top: thin solid grey;
border-bottom: thin solid grey;
background-color : #FFFFE0;
font-size: x-small;
text-align: center
font-size: 75%;
text-align: center
}
.footer p {
margin: 0;
}
.footer a,
.footer a:visited {
color: black;
}
.content {
@ -72,7 +81,8 @@ html, body {
h1 {
color: #8b4;
margin : 5px;
margin : 0;
padding: 0.2em 0.5em;
}
h2 {
@ -92,13 +102,14 @@ h5 {
}
a {
color: black;
color: darkgreen;
}
a:visited {
color: #543;
color: #765;
}
.footer a:hover,
a:hover {
color: #c86;
}
@ -122,10 +133,8 @@ h2#tache-description {
}
.message {
width : 40%;
display : block;
padding : 5px;
padding-left : 30px;
display : inline-block;
padding : 5px 30px;
margin-top : 10px;
margin-bottom : 10px;
margin-right : 6%;
@ -133,21 +142,21 @@ h2#tache-description {
}
.warning {
border : 1px dashed red;
border : 1px dashed red;
background-color : #F0C060
}
.success {
border : 1px dashed red;
background-color : #90FF90
border : 1px dashed red;
background-color : #90FF90
}
#downloadlink {
color : black;
text-decoration : none;
font-size : 16pt;
background-color: #8888ff;
border: medium solid blue;
background-color: #ccccff;
border: medium solid #5555ff;
border-radius: 1em;
-moz-border-radius: 1em;
-webkit-border-radius: 1em;
@ -157,7 +166,9 @@ h2#tache-description {
}
#downloadlink:hover {
background-color: red;
background-color: #5555ff;
color: white;
border-color: #ccccff;
}
.downloadarea {
@ -167,9 +178,9 @@ h2#tache-description {
}
#cnx {
float : right
float : right
}
.android {
font-size: 70%;
font-size: 70%;
}

View File

@ -0,0 +1,33 @@
<?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'] = "Erreur lors de l'inscription, merci de nous signaler le problème.";
?>

View File

@ -1,206 +1,184 @@
<?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();
}
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_-]+)+/";
$msg = array();
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 = "";
}
if(isset($_POST['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.inc"); ?>
</div>
<body>
<?php include("ressources/menu.inc"); ?>
<div class="content">
<p>Vous n'êtes pas encore inscrit&nbsp;? Inscrivez-vous&nbsp;:</p>
<?php
if(sizeof($msg) > 0){
echo '<span class="message warning">'.
"<b>Saisie invalide. Les erreurs sont les suivantes : </b> <p>".
"<ul>";
foreach ($msg as $m) {
echo "<li>".$m;
}
echo "</ul>";
}
else if($newpage == false){
$ok = ($db->query("INSERT INTO user(mail, login, hash_passwd, score) VALUES ('" . SQLite3::escapeString($signupemail)
. "', '" . SQLite3::escapeString($signupid)
. "', '" . SQLite3::escapeString(md5($signuppswd1))
. "', 0);"));
<h2>Inscription</h2>
<?php include("ressources/showmsg.inc"); ?>
<h3>Vous n'avez pas encore de compte ?</h3>
<p>Inscrivez-vous :</p>
<?php
if(count($msg) > 0)
{
echo '<div class="message warning">'.
'<p><b>Saisie invalide. Les erreurs sont les suivantes : </b></p>'.
'<ul>';
foreach ($msg as $m) {
echo "<li>".htmlspecialchars($m)."</li>";
}
echo '</ul>';
echo '</div>';
}
?>
<form name="signupform" method="post" action="signup.php?return=<?php echo $location; ?>">
<table class="signuptbl">
<tr>
<td>
<label for="signupemail">Saisir votre adresse mail&nbsp;:</label>
</td>
<td>
<input name="signupemail" type="text"
<?php
if(isset($_POST['signupemail'])){
echo " value='$signupemail'";
}
?>
/>
</td>
</tr>
<tr>
<td>
<label for="signupid">Choisir un identifiant&nbsp;: </label>
</td>
<td>
<input name="signupid" type="text"
<?php
if(isset($_POST['signupid'])){
echo " value='$signupid'";
}
?>
/>
</td>
</tr>
<tr>
<td>
<label for="signuppswd1">Choisir un mot de passe&nbsp;: </label>
</td>
<td>
<input name="signuppswd1" type="password" />
</td>
</tr>
<tr>
<td>
<label for="signuppswd2">Resaisir le mot de passe&nbsp;: </label>
</td>
<td>
<input name="signuppswd2" type="password" />
</td>
</tr>
<tr>
<td>
if($ok == true)
echo "insertion worked!!!!!";
else
echo "insertion failed!!!";
//header("location:".$location);
echo '<span class="message success">'."Inscription s'est déroulée avec succès !";
unset($_POST);
$newpage = true;
}
echo '</span>';
?>
<form name="signupform" method="post" action="signup.php?return=<?php echo $location; ?>">
<table class="signuptbl">
<tr>
<td>
<label for="signupemail">Saisir votre adresse mail&nbsp;:</label>
</td>
<td>
<input name="signupemail" type="text"
<?php
if(isset($_POST['signupemail'])){
echo "value='$signupemail'";
}
?>
/><br />
</td>
</tr>
<tr>
<td>
<label for="signupid">Choisir un identifiant&nbsp;: </label>
</td>
<td>
<input name="signupid" type="text"
<?php
if(isset($_POST['signupid'])){
echo "value='$signupid'";
}
?>
/>
</td>
</tr>
<tr>
<td>
<label for="signuppswd1">Choisir un mot de passe&nbsp;: </label>
</td>
<td>
<input name="signuppswd1" type="password" />
</td>
</tr>
<tr>
<td>
<label for="signuppswd2">Resaisir le mot de passe&nbsp;: </label>
</td>
<td>
<input name="signuppswd2" type="password" />
</td>
</tr>
<tr>
<td>
</td>
<td>
<input type="submit" name="signupsubmit" value="Valider" />
</td>
</tr>
</table>
</form>
</div>
<div class="footer">
<?php include("ressources/footer.inc"); ?>
</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>