commit 049ff27ffac035ca139968b11acf374d83fb6ba6
parent b5e94bc733faae2c1aff3df57b81ff38b88af1a5
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Thu, 28 Apr 2011 18:36:29 +0200
Merge branch 'unstable' of github:jsmaniac/2011-m1s2-ter into unstable
Diffstat:
4 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/code/serveur/dump2sqlite.sh b/code/serveur/dump2sqlite.sh
@@ -27,7 +27,7 @@ create table relation(rid integer primary key autoincrement, start, end, type, w
create table type_node(name, num);
create table type_relation(name, num, extended_name, info);
create table user(login primary key, mail, hash_passwd, score, ugroup);
-create table game(gid integer primary key autoincrement, eid_central_word, relation_1, relation_2, difficulty);
+create table game(gid integer primary key autoincrement, eid_central_word, relation_1, relation_2, difficulty, author);
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);
diff --git a/code/serveur/php/ressources/backend.inc b/code/serveur/php/ressources/backend.inc
@@ -38,6 +38,9 @@ require_once("ressources/db.inc");
* @return boolean : true si OK sinon false.
*/
function checkLogin($user, $passwd) {
+ if(isset($_SESSION['userId']))
+ return true;
+
$db = getDB();
$hashPasswd = md5($passwd);
$loginIsOk = ($hashPasswd == $db->querySingle("SELECT hash_passwd FROM user WHERE login='".$user."';"));
@@ -297,7 +300,7 @@ function cgInsert($centerEid, $cloud, $r1, $r2, $totalDifficulty)
$db->exec("commit;");
}
-function decodeAndInsertGame($game) {
+function decodeAndInsertGame($user,$game) {
$badWords = Array();
$centerEid = getNodeEid($game['center']);
$r1 = $game['relations'][0];
@@ -326,18 +329,18 @@ function decodeAndInsertGame($game) {
} else if (count($cloud) < 5) {
echo "false";
} else {
- insertCreatedGame($centerEid,$cloud,$r1,$r2,10);
+ insertCreatedGame($centerEid,$cloud,$r1,$r2,10,$user);
echo "true";
}
}
-function insertCreatedGame($centerEid, $cloud, $r1, $r2, $totalDifficulty)
+function insertCreatedGame($centerEid, $cloud, $r1, $r2, $totalDifficulty,$userName)
{
$db = getDB();
// Insère dans la base une partie avec le mot central $centerEid, le nuage $cloud et les relations $r1 et $r2
$db->exec("begin transaction;");
- $db->exec("INSERT INTO game(gid, eid_central_word, relation_1, relation_2, difficulty)
- VALUES (null, $centerEid, $r1, $r2, $totalDifficulty);");
+ $db->exec("INSERT INTO game(gid, eid_central_word, relation_1, relation_2, difficulty, author)
+ VALUES (null, $centerEid, $r1, $r2, $totalDifficulty, '$userName');");
$gid = $db->lastInsertRowID();
$t = time();
diff --git a/code/serveur/php/ressources/createGame.js b/code/serveur/php/ressources/createGame.js
@@ -10,7 +10,7 @@ $.fn.changeId = function(append) {
};
$(function() {
- $.getJSON("server.php", {action:"5", user:"foo", passwd:"bar"}, function (data) {
+ $.getJSON("server.php", {action:"5"}, function (data) {
var numWord = 1;
var user = "foo";
var passwd = "bar";
@@ -107,7 +107,7 @@ $(function() {
$.ajax({
type: "GET",
url: "server.php?",
- data: "action=4&word="+word+"&user="+user+"&passwd="+passwd,
+ data: "action=4&word="+word, //+"&user="+user+"&passwd="+passwd,
success: function(msg){
console.log(msg);
input.closest(".wordLine, #center").addClass(msg == "false" ? "invalid" : "valid");
@@ -185,7 +185,7 @@ $(function() {
});
}
- $.get("server.php",{user:"foo",passwd:"bar",action:"6",game:exit},function (data) {
+ $.get("server.php",{action:"6",game:exit},function (data) {
//$(".word").closest(".wordLine, #center").removeClass("valid invalid");
if(data == "true") {
alert("Partie enregistrée avec succès");
diff --git a/code/serveur/php/server.php b/code/serveur/php/server.php
@@ -1,4 +1,5 @@
<?php
+session_start();
require_once("ressources/backend.inc");
require_once("ressources/db.inc");
@@ -30,14 +31,21 @@ function logError($errNum, $msg, $other="")
*/
function main()
{
- if(!isset($_GET['action']) || !isset($_GET['user']) || !isset($_GET['passwd'])) {
+ if(!isset($_GET['action']))
throw new Exception("La requête est incomplète", 2);
+ else if(!isset($_SESSION['userId']) && (!isset($_GET['user']) || !isset($_GET['passwd'])))
+ throw new Exception("La requête est incomplète", 2);
+ else if(isset($_SESSION['userId'])) {
+ $user = $_SESSION['userId'];
+ $loginIsOk = true;
+ }
+ else {
+ $user = SQLite3::escapeString($_GET['user']);
+ $loginIsOk = checkLogin($user, $_GET['passwd']);
}
- // Login
$action = $_GET['action'];
- $user = SQLite3::escapeString($_GET['user']);
- $loginIsOk = checkLogin($user, $_GET['passwd']);
+
if ($action != 3 && (!$loginIsOk)) {
throw new Exception("Utilisateur non enregistré ou mauvais mot de passe", 3);
}
@@ -84,7 +92,7 @@ function main()
if (!isset($_GET['game']))
errRequestIncomplete();
- decodeAndInsertGame($_GET['game']);
+ decodeAndInsertGame($user,$_GET['game']);
} else {
throw new Exception("Commande inconnue", 2);