questions = parse_ini_file(DC_BASE_DIR . '/conf/questions.ini', true); } else { $chiffres = array(1=>'un', 'deux', 'trois', 'quatre', 'cinq', 'six', 'sept', 'huit', 'neuf', 'dix', 'onze', 'douze', 'treize', 'quatorze', 'quinze', 'seize', 'dix-sept', 'dix-huit', 'dix-neuf', 'vingt'); for ($i = 1; $i < 20; $i++) { $this->questions[] = array("Si j'additionne ".$i." et ".$i.", ca fait combien ? (en chiffres)", $i+$i); $this->questions[] = array("Combien ca fait ".$chiffres[$i]." multiplie avec 2 ? (en chiffres)", $i*2); $this->questions[] = array("J'ai ".$chiffres[$i]." pommes dans mon panier, combien de pommes j'ai dans mon panier ? (en chiffres)", $i); } $fruits = array('fraise', 'pomme', 'framboise', 'cerise', 'poire'); foreach ($fruits as $fruit) { $this->questions[] = array("Quel est le fruit qu'on trouve dans la compote de ".$fruit."s ? (en toutes lettres, au singulier)", $fruit); $this->questions[] = array("Quel fruit trouve-ton dans la confiture de ".$fruit."s ? (en toutes lettres, au singulier)", $fruit); } } } function generateQuestion($id) { $max = count($this->questions) - 1; $rand = mt_rand(0, $max); @session_start(); $_SESSION['answer_' . (int)$id] = $this->questions[$rand][1]; return $this->questions[$rand][0]; } function checkAnswer($id, $answer) { @session_start(); if (empty($_SESSION['answer_' . (int)$id])) { return false; } if (strcasecmp(trim($_SESSION['answer_' . (int)$id]), trim($answer)) == 0) { unset($_SESSION['answer_' . (int)$id]); return true; } return false; } // Basé sur spamtimeout // http://archiblog.stratic.fr/178-spamtimeout-adieu-spam-trackbacks-dotclear function getTimeCode($ts) { // heure actuelle (relative / billet) $refTime = (int) (time() - $ts); // encodage de l'heure (sans reveler l'heure de reference) return base_convert( $refTime ^ $ts, 10, 36); } function checkTimeCode($code, $ts) { // heure actuelle (relative / billet) $curTime = (int) (time() - $ts); // decodage de l'heure relative de l'URL $refTime = ( (int) base_convert($code, 36, 10 )) ^ $ts; // calcul de l'age de l'URL $duration = $curTime - $refTime; // Controle expiration URL / timeout if ( $duration < 2 || $duration > 900 ) { return false; } return true; } } ?>