Version 1.8

This commit is contained in:
nemunaire 2008-11-03 12:00:00 +01:00
commit 5f81f76b17
184 changed files with 78335 additions and 736 deletions

View file

@ -1,6 +0,0 @@
php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag magic_quotes_sybase Off
php_flag register_globals Off
Options -Indexes

77
htdocs/403.html Normal file
View file

@ -0,0 +1,77 @@
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="fr" />
<title> ::Halo-Battle:: - Erreur</title>
<style type="text/css">
html
{
font-size: 100%;
}
body
{
background-color: #000000;
}
div
{
background-color: #080819;
text-align: center;
margin: 10% auto 0 auto;
padding: 25px 0;
width: 80%;
border-top: #FFFFFF dotted 1px;
border-left: #FFFFFF dotted 1px;
border-right: #FFFFFF solid 3px;
border-bottom: #FFFFFF solid 3px;
}
h1
{
font-size: 3em;
color: #FFFFFF;
}
h2
{
font-size: 2em;
color: #FFFFFF;
}
h3
{
font-size: 1.5em;
color: #FFFFFF;
font-weight: normal;
}
a
{
position: absolute;
bottom: 20px;
right: 30px;
font-size: 0.8em;
display: block;
padding: 5px 10px;
background-color: #FFFFFF;
color: #000000;
text-decoration: underline;
font-weight: bold;
}
</style>
</head>
<body>
<div>
<h2>Erreur</h2>
<h1>403</h1>
<h3>Refus de traitement de la requête.<br /><em>Forbidden.</em></h3>
</div>
<a href="/">HALO-BATTLE</a>
<!-- \\******* By Phantom *******// Halo-Battle, Tous droits réservés -->
</body>
</html>

77
htdocs/404.html Normal file
View file

@ -0,0 +1,77 @@
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="fr" />
<title> ::Halo-Battle:: - Erreur</title>
<style type="text/css">
html
{
font-size: 100%;
}
body
{
background-color: #000000;
}
div
{
background-color: #080819;
text-align: center;
margin: 10% auto 0 auto;
padding: 25px 0;
width: 80%;
border-top: #FFFFFF dotted 1px;
border-left: #FFFFFF dotted 1px;
border-right: #FFFFFF solid 3px;
border-bottom: #FFFFFF solid 3px;
}
h1
{
font-size: 3em;
color: #FFFFFF;
}
h2
{
font-size: 2em;
color: #FFFFFF;
}
h3
{
font-size: 1.5em;
color: #FFFFFF;
font-weight: normal;
}
a
{
position: absolute;
bottom: 20px;
right: 30px;
font-size: 0.8em;
display: block;
padding: 5px 10px;
background-color: #FFFFFF;
color: #000000;
text-decoration: underline;
font-weight: bold;
}
</style>
</head>
<body>
<div>
<h2>Erreur</h2>
<h1>404</h1>
<h3>Document non trouvé.<br /><em>File not Found.</em></h3>
</div>
<a href="/">HALO-BATTLE</a>
<!-- \\******* By Phantom *******// Halo-Battle, Tous droits réservés -->
</body>
</html>

View file

@ -47,20 +47,26 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$template->assign('tpsdejeu',$min.' min');
if (!isset($_GET['p'])) $_GET['p'] = '';
switch($_GET['p']){
case 'courrier': include(_FCORE."hb_game/jeu/admin/mail.php"); break;
case 'vip': include(_FCORE."hb_game/jeu/admin/ip.php"); break;
case 'vflotte': include(_FCORE."hb_game/jeu/admin/flottes.php"); break;
case 'vplanetes': include(_FCORE."hb_game/jeu/admin/planete.php"); break;
case 'vjoueurs': include(_FCORE."hb_game/jeu/admin/joueur.php"); break;
case 'valliances': include(_FCORE."hb_game/jeu/admin/alliance.php"); break;
case 'vrapports': include(_FCORE."hb_game/jeu/admin/rapport.php"); break;
case 'sjoueurs': include(_FCORE."hb_game/jeu/admin/sanction_joueur.php"); break;
case 'cjoueurs': include(_FCORE."hb_game/jeu/admin/prendre_controle.php"); break;
case 'djoueurs': include(_FCORE."hb_game/jeu/admin/supprimer_joueur.php"); break;
case 'bandeau': include(_FCORE."hb_game/jeu/admin/bandeau.php"); break;
case 'version': include(_FCORE."hb_game/jeu/admin/version.php"); break;
default: $pagea = 'vp';;
if ($sess->values['auth_level'] >= 5) {
switch($_GET['p']){
case 'djoueurs': include(_FCORE."hb_game/jeu/admin/supprimer_joueur.php"); break;
case 'bandeau': include(_FCORE."hb_game/jeu/admin/bandeau.php"); break;
case 'version': include(_FCORE."hb_game/jeu/admin/version.php"); break;
}
}
if (empty($pagea)) {
switch($_GET['p']){
case 'courrier': include(_FCORE."hb_game/jeu/admin/mail.php"); break;
case 'vip': include(_FCORE."hb_game/jeu/admin/ip.php"); break;
case 'vflotte': include(_FCORE."hb_game/jeu/admin/flottes.php"); break;
case 'vplanetes': include(_FCORE."hb_game/jeu/admin/planete.php"); break;
case 'vjoueurs': include(_FCORE."hb_game/jeu/admin/joueur.php"); break;
case 'valliances': include(_FCORE."hb_game/jeu/admin/alliance.php"); break;
case 'vrapports': include(_FCORE."hb_game/jeu/admin/rapport.php"); break;
case 'sjoueurs': include(_FCORE."hb_game/jeu/admin/sanction_joueur.php"); break;
case 'cjoueurs': include(_FCORE."hb_game/jeu/admin/prendre_controle.php"); break;
default: $pagea = 'vp';;
}
}
$template->assign('titre',$titre);

View file

@ -1,7 +1,124 @@
<?php
if(!defined('INDEX')) define('INDEX', 1);
//Script by Keiran
print 'Début de la génération du classement ; il est : '.date('d/m/Y H:i:s');
set_time_limit(0);
ignore_user_abort(true);
$onyx = @file_get_contents('./../.onyx') or die("Configuration introuvable.");
define("_FCORE",'../'.trim($onyx));
require_once(_FCORE."kernel.php");
require_once(_FCORE."hb_game/tables.php");
require_once(_FCORE."hb_game/vars.php");
$bdd = new bdd();
/*
//Classement Joueurs
$bdd->connexion();
$bdd->query("TRUNCATE TABLE $table_classement;");
$users = $bdd->query("SELECT * FROM $table_user;");
$bdd->deconnexion();
$cnt = $bdd->num_rows;
for($i = 0; $i < $cnt; $i++){
$id_user = $users[$i]['id'];
$queryUser = $users[$i];
$pointsbat = 0;
$pointsterr = 0;
$pointsvais = 0;
$bdd->connexion();
$planetes = $bdd->query("SELECT * FROM $table_planete WHERE id_user = $id_user;");
$bdd->deconnexion();
$cntp = $bdd->num_rows;
for($j = 0; $j < $cntp; $j++){
$queryPlanete = $planetes[$j];
$nbbat = count($batimentVAR);
for($k = 0; $k < $nbbat; $k++){
if ($queryPlanete[$batimentVAR[$k]] == 0) continue;
else {
$n = $queryPlanete[$batimentVAR[$k]];
eval($batimentCALC[$k][0]);
eval($batimentCALC[$k][1]);
eval($batimentCALC[$k][2]);
$pointsbat += $a + $b + $c;
}
}
$nbterr = count($nomterrnVAR);
for($k = 0; $k < $nbterr; $k++){
if ($queryPlanete[$nomterrnVAR[$k]] == 0) continue;
else {
$n = $queryPlanete[$nomterrnVAR[$k]];
$pointsterr += $nomterrnCALC[$k][0] + $nomterrnCALC[$k][1] + $nomterrnCALC[$k][2];
}
}
$nbvais = count($nomvaisnVAR);
for($k = 0; $k < $nbvais; $k++){
if ($queryPlanete[$nomvaisnVAR[$k]] == 0) continue;
else {
$n = $queryPlanete[$nomvaisnVAR[$k]];
$pointsvais += $nomvaisnCALC[$k][0] + $nomvaisnCALC[$k][1] + $nomvaisnCALC[$k][2];
}
}
}
$nbtech = count($technoloVAR);
$pointstech = 0;
for($k = 0; $k < $nbtech; $k++){
if ($queryUser[$technoloVAR[$k]] == 0) continue;
else {
$n = $queryUser[$technoloVAR[$k]];
eval($technoloCALC[$k][0]);
eval($technoloCALC[$k][1]);
eval($technoloCALC[$k][2]);
$pointstech += $a + $b + $c;
}
}
$pointstech /= 1000;
$pointsvais /= 1000;
$pointsterr /= 1000;
$pointsbat /= 1000;
$points = $pointsbat + $pointsterr + $pointsvais + $pointstech;
$bdd->connexion();
$bdd->query("UPDATE $table_user SET points = $points, batiments = $pointsbat, recherches = $pointstech, flotte = $pointsvais, terrestre = $pointsterr WHERE id = $id_user;");
if ($queryUser['auth_level'] < 2 && $queryUser['mv'] < 2) $bdd->query("INSERT INTO $table_classement (id_user, points, flottes, terrestres, recherches, batiments) VALUES ($id_user, $points, $pointsvais, $pointsterr, $pointstech, $pointsbat);");
$bdd->deconnexion();
}
$bdd->connexion();
$classement = $bdd->query("SELECT U.id, U.auth_level FROM $table_classement C INNER JOIN $table_user U ON C.id_user = U.id ORDER BY C.points DESC;");
$cnt = $bdd->num_rows;
$p = 0;
for($i = 0; $i < $cnt; $i++){
if ($classement[$i]['auth_level'] < 2) {
$p++;
$bdd->query("UPDATE $table_user SET place_points = $p WHERE id = ".$classement[$i]['id']);
}
else $bdd->query("UPDATE $table_user SET place_points = 0 WHERE id = ".$classement[$i]['id']);
}
$bdd->deconnexion();
*/
print '<br />Fin de la génération du classement joueur ; il est : '.date('d/m/Y H:i:s');
//Classement Alliances
$bdd->connexion();
$bdd->query("TRUNCATE TABLE $table_classement_alliances;");
$alliances = $bdd->query("SELECT U.id_alliance, SUM(U.id) AS nombre, SUM(U.points)/SUM(U.id) AS points, SUM(U.batiments)/SUM(U.id) AS batiments, SUM(U.recherches)/SUM(U.id) AS recherches, SUM(U.flotte)/SUM(U.id) AS flotte, SUM(U.terrestre)/SUM(U.id) AS terrestre FROM $table_user U GROUP BY U.id_alliance;");
$cnt = $bdd->num_rows;
for($i = 0; $i < $cnt; $i++){
if ($alliances[$i]['id_alliance'] != 0) $bdd->query("INSERT INTO $table_classement_alliances (id_alliance, nbr_membres, points, batiments, recherches, flottes, terrestres) VALUES (".$alliances[$i]['id_alliance'].", ".$alliances[$i]['nombre'].", ".$alliances[$i]['points'].", ".$alliances[$i]['batiments'].", ".$alliances[$i]['recherches'].", ".$alliances[$i]['flotte'].", ".$alliances[$i]['terrestre'].");");
}
$bdd->deconnexion();
print '<br />Fin de la génération du classement ; il est : '.date('d/m/Y H:i:s');
exit;
//Script by Keiran
print 'Il est : '.date('d/m/Y H:i:s');
set_time_limit(0);
@ -127,7 +244,7 @@ while($recup_id = mysql_fetch_array($sql_1)) {
$POINTS_BATIMENTS = $POINTS_BATIMENTS / 1000;
// points flottes terrestres recherches batiments
if ($recup_id['auth_level'] < 3 && $recup_id['mv'] < 2) mysql_query("INSERT INTO `classement` VALUES (NULL, '$PSEUDO_USER', '$race', '$PT_RESSOURCES', '$POINTS_VAISSEAUX', '0', '$POINTS_TECHNO', '$POINTS_BATIMENTS')") or die (mysql_error());
if ($recup_id['auth_level'] < 2 && $recup_id['mv'] < 2) mysql_query("INSERT INTO `classement` VALUES (NULL, '$PSEUDO_USER', '$race', '$PT_RESSOURCES', '$POINTS_VAISSEAUX', '0', '$POINTS_TECHNO', '$POINTS_BATIMENTS')") or die (mysql_error());
mysql_query("UPDATE `user` SET `flotte` = '" . $POINTS_VAISSEAUX . "', `recherches` = '" . $POINTS_TECHNO . "', `batiments` = '" . $POINTS_BATIMENTS . "', `points` = '" . $PT_RESSOURCES . "' WHERE `pseudo` = '" . $PSEUDO_USER . "'") or die (mysql_error());
$metal = 0;
@ -150,7 +267,7 @@ while($resultat = mysql_fetch_array($sql_2)) {
$nomuser = $resultat['pseudo'];
$reqd = mysql_query("SELECT `auth_level` FROM `user` WHERE `pseudo` = '$nomuser'");
$resultatd = mysql_fetch_array($reqd);
if ($resultatd['auth_level'] < 3) {
if ($resultatd['auth_level'] < 2) {
$i++;
mysql_query("UPDATE `user` SET `place_points` = '$i' WHERE `pseudo` = '$nomuser'");
}

689
htdocs/cron/webcronsave.php Normal file
View file

@ -0,0 +1,689 @@
<?
function showHeaderPage()
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>WebcronSave V1.41</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"/>
<meta http-equiv="expires" content="0">
<style type="text/css">
<!--
body { background: #FFFFFF; }
#topnav {
background-color: #003399;
padding: 1px;
}
#topnav li {
display : inline;
width: 100%;
background-color: #FFFFFF;
margin: 1 0px 1 0px;
}
#topnav a {
color: #003399;
}
#topnav a {
color: #003399;
}
.message {
color: black;
font_weight:bold;
}
.error {
color: red;
font_weight:bold;
}
//-->
</style>
</head>
<body>
<?
}
// recup chaine de get, post ou cookie avec ou sans stripslashes selon magic_quotes_gpc
function RecupChaine($chaine) {
if (get_magic_quotes_gpc()==1) return stripslashes($chaine); // il y avait magic
return $chaine; // il n'y avait pas magic
}
function showMessage($message,$class)
{
?>
<div class="<?=$class?>">
<?=$message?>
</div>
<?
}
function moimeme($paramget='') {
global $_CONFIG;
$ret=rtrim($_SERVER['PHP_SELF'],'/');
$ret .=$paramget;
if ($_CONFIG['IDENTIF'] != 'basic') {
$ret .= empty($paramget)?'?':'&';
$ret .= 'login='.urlencode($_CONFIG['LOGIN_HTTP']);
$ret .= '&pass='.urlencode($_CONFIG['PASS_HTTP']);
}
return '"'.$ret.'"';
}
function showFormConfig()
{
global $_CONFIG;
?>
<H1>CONFIGURATION</H1>
<B>ATTENTION !</B><BR />
Les mots de passe de base de données et d'administration doivent être saisis lors de la première configuration.
Lors des autres accès à l'administration, laissez-les en blanc, sauf si vous désirez les changer.<BR>
Nous conseillons le mode d'identification 'basic', mais il se peut qu'il ne fonctionne pas sur certains systèmes.
Utilisez alors le mode 'par URL'.<br>
<B>Si vous êtes obligé d'utiliser le mode 'par URL' et que d'autres personnes utilisent votre machine, videz l'historique de
votre browser sinon d'autres personnes pourront retrouver vos login et mot de passe.</B>
<BR><BR>
<B>Utilisation de Webcronsave avec webcron.org :</B><br>
<UL>
<LI>identification basic : créez une tâche quotidienne avec l'url :<BR>
<i>http://monsite.com/webcronsave.php?action=savewebcron</i><BR>
et mettez le login et le mot de passe d'administration dans les login et mot de passe de la création/édition d'une tâche.
<LI>identification par URL : créez une tâche quotidienne avec l'url :<BR>
<i>http://monsite.com/webcronsave.php?action=savewebcron&login=monlogin&pass=monpass</i><BR>
mais laissez vides les login et mot de passe de la création/édition d'une tâche.
</UL>
<form action=<?=moimeme()?> method="POST">
<input type="hidden" name="action" value="saveconfig">
<TABLE border=1 cellpadding="3" align="center">
<tr bgcolor="#FFFFCC"><td colspan="2" align = "center" ><b>BASE DE DONNEES</b></td></tr>
<TR bgcolor="#FFFFCC">
<td align="right">Nom du serveur :</td>
<td><input type="text" name="SERVER" value="<?=$_CONFIG['SERVER']?>"></td>
</tr>
<tr bgcolor="#FFFFCC">
<td align="right">Login utilisateur :</td>
<td><input type="text" name="USER" value="<?=$_CONFIG['USER']?>"></td>
</tr>
<tr bgcolor="#FFFFCC">
<td align="right">Nouveau mot de passe utilisateur :</td>
<td><input type="text" name="PASS"></td>
</tr>
<tr bgcolor="#FFFFCC">
<td align="right">Nom de la base de données :</td>
<td><input type="text" name="BASE" value="<?=$_CONFIG['BASE']?>"></td>
</tr>
<tr bgcolor="#CCCCFF"><td colspan="2" align = "center"><b>ADMINISTRATION</b></td></tr>
<tr bgcolor="#CCCCFF">
<td align="right">Email en cas de problème :</td>
<td><input type="text" name="EMAIL" value="<?=$_CONFIG['EMAIL']?>"></td>
</tr>
<tr bgcolor="#CCCCFF">
<td align="right">Login d'accès à l'admin :</td>
<td><input type="text" name="LOGIN_HTTP" value="<?=$_CONFIG['LOGIN_HTTP']?>"></td>
</tr>
<tr bgcolor="#CCCCFF">
<td align="right">Nouveau mot de passe d'accès à l'admin :</td>
<td><input type="text" name="PASS_HTTP"></td>
</tr>
<tr bgcolor="#CCCCFF">
<td align="right">Mode d'identification :</td>
<td>
basic : <input type="radio" name="IDENTIF" value="basic"<? echo $_CONFIG['IDENTIF']!='basic'?'':'CHECKED'?>>
par URL : <input type="radio" name="IDENTIF" value="url"<? echo $_CONFIG['IDENTIF']=='basic'?'':'CHECKED'?>>
</td>
</tr>
<tr bgcolor="#CCFFFF">
<td colspan="2" align="center"><b>LISTE DES SAUVEGARDES A FAIRE</b</td>
</tr>
<tr bgcolor="#CCFFFF">
<td align="right"> sauvegarde du 1er du mois : </td>
<td><input type="radio" name="MONTH" value="1" <?=($_CONFIG['MONTH']==1)?"CHECKED":""?>> Oui <input type="radio" name="MONTH" value="0" <?=($_CONFIG['MONTH']==0)?"CHECKED":""?>> Non </td>
</tr>
<tr bgcolor="#CCFFFF">
<td align="right">sauvegarde du dimanche : </td>
<td><input type="radio" name="WEEK" value="1" <?=($_CONFIG['WEEK']==1)?"CHECKED":""?>> Oui <input type="radio" name="WEEK" value="0" <?=($_CONFIG['WEEK']==0)?"CHECKED":""?>> Non </td>
</tr>
<tr bgcolor="#CCFFFF">
<td align="right">sauvegarde de la veille : </td>
<td><input type="radio" name="YESTERDAY" value="1" <?=($_CONFIG['YESTERDAY']==1)?"CHECKED":""?>> Oui <input type="radio" name="YESTERDAY" value="0" <?=($_CONFIG['YESTERDAY']==0)?"CHECKED":""?>> Non </td>
</tr>
<tr bgcolor="#CCFFFF">
<td align="right">sauvegarde du jour : </td>
<td><input type="radio" name="TODAY" value="1" <?=($_CONFIG['TODAY']==1)?"CHECKED":""?>> Oui <input type="radio" name="TODAY" value="0" <?=($_CONFIG['TODAY']==0)?"CHECKED":""?>> Non </td>
</tr>
<? if (isset($_CONFIG["BASE"]) && isset($_CONFIG["SERVER"]) && isset($_CONFIG["USER"]) && isset($_CONFIG["PASS"])) {
if (checkMysql())
{
$list=listTable();
?>
<tr bgcolor="#CCCCFF">
<td colspan="2" align="center"><b>LISTE DES TABLES A SAUVEGARDER</b</td>
</tr>
<?
foreach($list as $table)
{
if (!isset($_CONFIG['TABLE_'.$table['nom']])) $_CONFIG['TABLE_'.$table['nom']]=1;
?>
<tr bgcolor="#CCFFFF">
<td align="right">table <b><?=$table['nom']?></b></td>
<td><input type="radio" name="TABLE_<?=$table['nom']?>" value="1" <?=($_CONFIG['TABLE_'.$table['nom']]==1)?"CHECKED":""?>> Oui <input type="radio" name="TABLE_<?=$table['nom']?>" value="0" <?=($_CONFIG['TABLE_'.$table['nom']]==0)?"CHECKED":""?>> Non </td>
</tr>
<?
}
?>
<? } else {?>
<tr bgcolor="#CCCCFF">
<td colspan="2" align="center"><b>TOUTES LES TABLES SONT SAUVEGARDEES</b</td>
</tr>
<? } } else { ?>
<tr bgcolor="#CCCCFF">
<td colspan="2" align="center"><b>TOUTES LES TABLES SONT SAUVEGARDEES</b</td>
</tr>
<? } ?>
<TR>
<td colspan="2" align="center"><input type="submit" name="submit" value="Valider"></td>
</tr>
</table>
</form>
<?
}
function showFooterPage()
{
?>
</body>
</html>
<?
}
function showMenu()
{
?>
<ul id="topnav">
<li>&nbsp;<a href=<?=moimeme('?action=config')?>>Configuration</a>&nbsp;</li>
<li>&nbsp;<a href=<?=moimeme('?action=save')?>>Sauvegarde Manuelle</a>&nbsp;</li>
<li>&nbsp;<a href=<?=moimeme('?action=restore')?>>Restauration</a>&nbsp;</li>
<li>&nbsp;<a href="http://www.webcron.org">Webcron</a>&nbsp;</li>
</ul>
<?
}
function showIdentifPage()
{
global $_CONFIG;
?>
<H1>IDENTIFICATION</H1>
<FORM align="center" method="GET" action="<?=$_SERVER['PHP_SELF']?>">
<TABLE border=1 cellpadding="3" align="center">
<tr bgcolor="#CCCCFF">
<td align="right">Login d'accès à l'admin :</td>
<td><input type="text" name="login" value="<?=$_CONFIG['LOGIN_HTTP']?>"></td>
</tr>
<tr bgcolor="#CCCCFF">
<td align="right">Mot de passe d'accès à l'admin :</td>
<td><input type="text" name="pass"></td>
</tr>
<TR>
<td colspan="2" align="center"><input type="submit" name="submit" value="Valider"></td>
</tr>
</TABLE>
</FORM>
<?
}
function checkMysql()
{
global $_CONFIG;
include('./webcronsave/config.php');
if (!$my=mysql_connect($_CONFIG['SERVER'],$_CONFIG['USER'],$_CONFIG['PASS']))
return false;
else
{
if (!mysql_select_db($_CONFIG['BASE']))
return false;
}
return true;
}
function saveData()
{
global $_CONFIG;
checkMysql();
$fname=date('Y-m-d')."_".$_CONFIG['BASE'];
$list=listTable();
if (!function_exists('gzopen'))
$fp=fopen('./webcronsave/'.$fname.'.sql','w');
else
$fp=gzopen('./webcronsave/'.$fname.'.gz','w');
if ($fp)
{
foreach($list as $table)
{
if (isset($_CONFIG['TABLE_'.$table['nom']]))
{
if ($_CONFIG['TABLE_'.$table['nom']]=='1')
{
dumpTable($fp,$table);
}
}
else dumpTable($fp,$table);
}
return true;
}
else
return false;
}
function restoreFile($file)
{
showMessage('Restauration en cours','message');
checkMysql();
list($name,$ext)=explode('.',$file);
if ($ext=='gz')
$pref='gz';
else
$pref='f';
$open=$pref.'open';
$gets=$pref.'gets';
$eof=$pref.'eof';
$close=$pref.'close';
$fp=$open($dir='./webcronsave/'.$file,'r');
if ($fp)
{
$buffer='';
$inChamp=false;
while (!$eof($fp)) {
$s=$gets($fp, 4096);
$old='';
for($i=0;$i<strlen($s);$i++)
{
$current=$s[$i];
if ($current=="'" && $old!='\\')
$inChamp=!$inChamp;
if ($current==';' && $inChamp==false)
{
$query=$buffer;
if (!mysql_query($query))
{
showMessage('Problème de requete <b>'.htmlentities($query).'</b> Mysql '.mysql_error(),'error');
return false;
}
$buffer='';
}
else
{
$buffer.=$current;
}
$old=$current;
}
}
$close($fp);
return true;
}
else return false;
}
function dumpTable($fp,$table)
{
global $_CONFIG;
$nomtable=$table['nom'];
if (!function_exists('gzopen'))
$fwrite='fwrite';
else
$fwrite='gzwrite';
$fwrite($fp,'#sauvegarde base mysql '.$_CONFIG['BASE']."\n\n");
$fwrite($fp,"DROP TABLE IF EXISTS `$nomtable`;\n\n");
$sql='SET SQL_QUOTE_SHOW_CREATE=1';
$res=mysql_query($sql); // pas fatal
$sql="SHOW CREATE TABLE `$nomtable`";
$res=mysql_query($sql) or die ('Erreur Mysql '.mysql_error().'<br>');
while($res && $row=mysql_fetch_row($res))
{
if (is_numeric($table['autoinc'])) $row[1] .= ' AUTO_INCREMENT='.$table['autoinc'];
$fwrite($fp,$row[1].";\n");
}
$fwrite($fp,"\n\n");
$res = mysql_query("SELECT * FROM `$nomtable`") or die ('Erreur Mysql '.mysql_error().'<br>');
while ($row = mysql_fetch_assoc($res)){
$strFieldsNames = '';
$strFieldsValues = '';
foreach ($row as $field_name => $field_value){
if ($strFieldsNames) $strFieldsNames .= ', ';
$strFieldsNames .= "`$field_name`";
if($strFieldsValues) $strFieldsValues .= ', ';
$strFieldsValues .= "'" . addslashes($field_value) . "'";
}
$fwrite($fp,"INSERT INTO `$nomtable` ($strFieldsNames) values($strFieldsValues);\n");
}
$fwrite($fp,"\n\n");
}
function listTable()
{
global $_CONFIG;
$list_table=array();
$list_autoinc =array();
$res=mysql_query('SHOW TABLE STATUS') or die ('Erreur Mysql '.mysql_error().'<br>');
// $tmpfile=tempnam(ini_get("session.save_path"),"webcronsave_");
if (!$res)
{
echo 'Erreur Mysql '.mysql_error().'<br>';
die;
}
else
{
while($row=mysql_fetch_array($res))
{
$list_table[]=array('nom'=>$row['Name'],'autoinc'=>$row['Auto_increment']);
}
}
return $list_table;
}
function saveConfig($data)
{
global $_CONFIG;
// on vérifie si config correcte
if (empty($data['PASS'])) {
if (empty($_CONFIG['PASS'])) {
showMessage ('Le mot de passe de la base de données est vide.','error');
showMessage ('Ceci n\'est acceptable que si vous faites un essai en local','error');
$_CONFIG['PASS']='';
}
$data['PASS']=$_CONFIG['PASS']; // prise en compte nouveau mot de passe bdd
}
if (empty($data['PASS_HTTP'])) {
if (empty($_CONFIG['PASS_HTTP'])) {
return 'le mot de passe admin ne doit pas être vide'; // mot de passe admin vide interdit
}
$data['PASS_HTTP']=$_CONFIG['PASS_HTTP']; // prise en compte nouveau mot de passe admin
}
if (empty($data['USER'])) {
showMessage ('Le nom d\'utilisateur de la base de données est vide.','error');
showMessage ('Ceci n\'est acceptable que si vous faites un essai en local','error');
}
if (empty($data['LOGIN_HTTP'])) {
return 'le nom d\'utilisateur admin ne doit pas être vide';
}
if($fd = fopen('./webcronsave/config.php','w'))
{
fputs($fd,"<?php\n");
foreach($data as $key => $val)
{
fputs($fd,"\$_CONFIG[\"$key\"]=".var_export(recupchaine($val),true).";\n");
$_CONFIG[$key]=$val;
}
fputs($fd,'?','>');
fclose($fd);
//je crée un htaccess pour ne pas que les gens viennent chercher les fichiers en direct
if($fd = @fopen('./webcronsave/.htaccess','w'))
{
$str="order deny,allow\ndeny from all\n";
fputs($fd,$str);
fclose($fd);
}
return '';
}
else
return 'Problème de droits : impossible de sauvegarder le fichier de config';
}
function getFileSize($size) {
$units = array(' B', ' KB', ' MB', ' GB', ' TB');
for ($i = 0; $size > 1024; $i++) { $size /= 1024; }
return round($size, 2).$units[$i];
}
function fileData($file)
{
global $_CONFIG;
$dir='./webcronsave/';
list($name,$ext)=explode('.',$file);
list($date,$db)=explode('_',$name);
list($year,$month,$day)=explode('-',$date);
if ($ext=='gz') $ext_f='Fichier compressé (algorithme GZIP)';
else $ext_f='Fichier non compressé';
return 'sauvegarde du '.$day.'/'.$month.'/'.$year.' '.getFileSize(filesize($dir.$file)).' '.$ext_f;
}
function checkFile()
{
global $_CONFIG;
if (!function_exists('gzopen'))
$ext='.sql';
else
$ext='.gz';
//sauvegarde du jour
if ($_CONFIG['TODAY']=='1') $names[date('Y-m-d').'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d').'_'.$_CONFIG['BASE'].$ext;
//sauvegarde de la veille
if ($_CONFIG['YESTERDAY']=='1') $names[date('Y-m-d',time()-86400).'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d',time()-86400).'_'.$_CONFIG['BASE'].$ext;
//sauvegarde du debut du mois
if ($_CONFIG['MONTH']=='1') $names[date('Y-m-01').'_'.$_CONFIG['BASE'].$ext]=date('Y-m-01').'_'.$_CONFIG['BASE'].$ext;
//sauvegarde du dimanche
if ($_CONFIG['WEEK']=='1') $names[date('Y-m-d',time()-date('w')*86400).'_'.$_CONFIG['BASE'].$ext]=date('Y-m-d',time()-date("w")*86400)."_".$_CONFIG['BASE'].$ext;
//var_dump($names);
$list_f=listFileSave();
foreach($list_f as $file)
{
if (!in_array($file,$names)) unlink('./webcronsave/'.$file);
}
}
function listFileSave()
{
$dir='./webcronsave/';
$list_f=array();
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (!in_array($file,array('.','..','config.php','.htaccess')))
{
$list_f[]=$file;
}
}
closedir($dh);
}
}
return $list_f;
}
function listeSave()
{
global $_CONFIG;
$list_f=listFileSave();
echo '<ul id="list_archive">';
foreach($list_f as $val)
{
echo '<li>&nbsp;<a href='.moimeme('?action=dorestore&file='.urlencode($val)).'>Restaurer</a>&nbsp;'.fileData($val).'</li>';
}
echo '</ul>';
}
function readConfig()
{
global $_CONFIG;
$rsrc=@opendir( './webcronsave');
if ($rsrc===false) return false;
closedir ($rsrc);
if (file_exists('./webcronsave/config.php'))
include_once('./webcronsave/config.php');
if (!isset($_CONFIG['TODAY'])) $_CONFIG['TODAY']=0;
if (!isset($_CONFIG['YESTERDAY'])) $_CONFIG['YESTERDAY']=0;
if (!isset($_CONFIG['MONTH'])) $_CONFIG['MONTH']=1;
if (!isset($_CONFIG['WEEK'])) $_CONFIG['WEEK']=0;
if (!isset($_CONFIG['SERVER'])) $_CONFIG['SERVER']='localhost';
if (!isset($_CONFIG['USER'])) $_CONFIG['USER']='';
if (!isset($_CONFIG['PASS'])) $_CONFIG['PASS']='';
if (!isset($_CONFIG['BASE'])) $_CONFIG['BASE']='';
if (!isset($_CONFIG['EMAIL'])) $_CONFIG['EMAIL']='';
if (!isset($_CONFIG['LOGIN_HTTP'])) $_CONFIG['LOGIN_HTTP']='';
if (!isset($_CONFIG['PASS_HTTP'])) $_CONFIG['PASS_HTTP']='';
if (!isset($_CONFIG['IDENTIF'])) $_CONFIG['IDENTIF']='basic';
return true;
} // function readConfig()
function AfficherListe() {
echo 'sauvegarde(s) disponible(s) :<BR>';
$lst= ListFileSave();
for ($k= 0; $k < count($lst); $k++) {
echo htmlentities($lst[$k]),'<BR>';
}
} //function AfficherListe()
//GESTION DE LA PAGE
if (isset($_POST['action']) && strlen($_POST['action'])>0) $action=recupchaine($_POST['action']);
else if (isset($_GET['action']) && strlen($_GET['action'])>0) $action=recupchaine($_GET['action']);
//par défaut l'action est la configuration
else $action='config';
if (!readConfig())
{
$action='error';
$errorMessage='Veuillez créer le repertoire \'webcronsave\' pour sauvegarder votre config et vos sauvegardes.';
}
else
{
if (!empty($_CONFIG['LOGIN_HTTP']) && !empty($_CONFIG['PASS_HTTP']))
{
if ($_CONFIG['IDENTIF']!='basic') {
if (empty($_GET['login']) || empty($_GET['pass'])) // identification non fournie
$action='demandermdp';
else if ((recupchaine($_GET['login']) != $_CONFIG['LOGIN_HTTP']) ||
(recupchaine($_GET['pass']) != $_CONFIG['PASS_HTTP']) ) // identif incorrecte
$action='demandermdp';
} // fin identif par url
else { // identif par basic
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="WebCronSave"');
header('HTTP/1.0 401 Unauthorized');
exit;
} else {
if ($_SERVER['PHP_AUTH_USER']!=$_CONFIG['LOGIN_HTTP'] || $_SERVER['PHP_AUTH_PW']!=$_CONFIG['PASS_HTTP'])
{
header('WWW-Authenticate: Basic realm="WebCronSave"');
header('HTTP/1.0 401 Unauthorized');
exit;
}
}
} // fin identif par basic
}
}
checkFile();
//traitement spécifique
switch($action)
{
//webcron sauvegarde automatique
case 'savewebcron':
if (!saveData()) {
mail($_CONFIG['EMAIL'],'Problème avec votre sauvegarde','Veuillez vérifier votre configuration : http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\n");
echo 'pb sauvegarde';
} else {
checkFile();
AfficherListe();
}
break;
//Affichage de la config
case 'config':
showHeaderPage();
showMenu();
showFormConfig();
break;
//sauvegarde de la config
case 'saveconfig':
showHeaderPage();
$diag=saveConfig($_POST);
showMenu();
if ($diag!='')
{
showMessage($diag,'error');
}
else
{
showMessage('La configuration a été sauvegardée',"message");
showMessage('Vérification de la connexion de la base de données','message');
if (!checkMysql()) showMessage('Problème de connexion Mysql '.mysql_error(),'error');
else showMessage('La connexion est bien configurée !','message');
}
break;
//Affichage d'une erreur
case 'error':
showHeaderPage();
showMenu();
showMessage($errorMessage,'error');
showFooterPage();
break;
//Gestion de la sauvegarde manuel
case 'save':
showHeaderPage();
showMenu();
if (saveData())
{
showMessage('La sauvegarde a été effectuée avec succès','message');
}
else
showMessage('Problème de création de fichier','error');
showFooterPage();
break;
//gestion de la restauration
case 'restore':
showHeaderPage();
showMenu();
listeSave();
showFooterPage();
break;
//gestion de la restauration
case 'dorestore':
showHeaderPage();
showMenu();
$file=recupchaine($_GET['file']);
if (!restoreFile($file)) showMessage('Problème de requête Mysql '.mysql_error(),'error');
else showMessage('Restauration effectuée avec succès','message');
showFooterPage();
break;
//saisie de l'identification par URL
case 'demandermdp':
showHeaderPage();
showIdentifPage();
showFooterPage();
break;
//gestion par défaut
default:
break;
}
?>

View file

@ -0,0 +1,2 @@
order deny,allow
deny from all

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,35 @@
<?php
$_CONFIG["action"]='saveconfig';
$_CONFIG["SERVER"]='localhost';
$_CONFIG["USER"]='hb_37';
$_CONFIG["PASS"]='JQ2Pe%!bpUDr1';
$_CONFIG["BASE"]='hb_37';
$_CONFIG["EMAIL"]='admin@halo-battle.s-fr.com';
$_CONFIG["LOGIN_HTTP"]='nemunaire';
$_CONFIG["PASS_HTTP"]='KT58pUm%s!9';
$_CONFIG["IDENTIF"]='basic';
$_CONFIG["MONTH"]='0';
$_CONFIG["WEEK"]='0';
$_CONFIG["YESTERDAY"]='0';
$_CONFIG["TODAY"]='1';
$_CONFIG["TABLE_alliances"]='1';
$_CONFIG["TABLE_alliances_attente"]='1';
$_CONFIG["TABLE_alliances_chat"]='1';
$_CONFIG["TABLE_alliances_creation"]='1';
$_CONFIG["TABLE_alliances_grade"]='1';
$_CONFIG["TABLE_bug"]='0';
$_CONFIG["TABLE_classement"]='0';
$_CONFIG["TABLE_classement_alliances"]='0';
$_CONFIG["TABLE_flottes"]='1';
$_CONFIG["TABLE_flottes_combats"]='1';
$_CONFIG["TABLE_infoshead"]='0';
$_CONFIG["TABLE_mail"]='1';
$_CONFIG["TABLE_ope_faq"]='1';
$_CONFIG["TABLE_ope_mail"]='1';
$_CONFIG["TABLE_ope_modele"]='1';
$_CONFIG["TABLE_planete"]='1';
$_CONFIG["TABLE_registre_identification"]='0';
$_CONFIG["TABLE_sessions"]='0';
$_CONFIG["TABLE_user"]='1';
$_CONFIG["TABLE_version"]='0';
$_CONFIG["submit"]='Valider';

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
htdocs/images/hfr.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -12,19 +12,24 @@ if ($_SERVER["REMOTE_ADDR"] == "82.245.190.225" || $_SERVER["REMOTE_ADDR"] == "8
//On vérifie si le client est connecté sur le site
if (isset($sess) && isset($sess->values['connected']) && $sess->values['connected'] && !empty($sess->values['id']) && isset($sess->values['auth_level']) && !empty($sess->values['idPlan'])) {
//On affiche la version du jeu
$template->assign('version', VERSION);
$HB_login = gpc('l');
if (!empty($HB_login) && strtolower($HB_login) != strtolower(trouvNom($sess->values['id']))) {
include(_FCORE."hb_game/jeu/logout.php");
}
elseif (!empty($HB_login)) {
header('Location: ./');
exit;
}
//Récupération d'informations au sujet de l'utilisateur
$id_user = $sess->values['id'];
$template->assign('auth_level', $sess->values['auth_level']);
$bdd->connexion();
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = '$id_user'");
$queryUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $id_user");
//On vérifie que le joueur ne soit pas en mode vacances forcé
if ($queryUser['mv'] || !$queryUser) {
file_log('!! MV jeu : '.var_export($_REQUEST,TRUE));
$sess->close();
header('Location: ?mvf');
exit;
@ -57,7 +62,6 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$queryPlanete = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = '$idPlan'");
$bdd->deconnexion();
$enligne = $bdd->num_rows;
$case = $queryPlanete["cases"];
$metal = $queryPlanete["metal"];
@ -72,7 +76,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$bdd->connexion();
$queryPlanete = $bdd->unique_query("SELECT * FROM $table_planete WHERE id = '$idPlan'");
$queryMail = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = '".$queryUser['pseudo']."' AND vu = '1';");
$queryMail = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = '".$queryUser['pseudo']."' AND vu = '1';");
$bdd->deconnexion();
//Isolement de la planète
$queryPlanete['isolement'] = explode(' ', $queryPlanete['isolement']);
@ -97,12 +102,14 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y'));
$fin = $debut + $tps * 3600;
$bdd->connexion();
$bdd->query("UPDATE $table_planete SET isolement = '$debut $fin' WHERE id = '$idPlan';");
$bdd->deconnexion();
$queryPlanete['isolement'][0] = $debut;
if (time() > $queryPlanete['isolement'][0]) $queryPlanete['isolement'][1] = $fin;
}
}
if (isset($queryPlanete['isolement'][1]) && time() < $queryPlanete['isolement'][1] && $_GET['p'] != 'rename' && $_GET['p'] != 'accueil' && $_GET['p'] != 'arbre' && $_GET['p'] != 'prochainement' && $_GET['p'] != 'options' && $_GET['p'] != 'messagerie' && $_GET['p'] != 'envoyer' && $_GET['p'] != 'classement' && $_GET['p'] != 'bugs' && $_GET['p'] != 'deconnexion') {
if (isset($queryPlanete['isolement'][1]) && time() < $queryPlanete['isolement'][1] && $p != 'rename' && $p != 'accueil' && $p != 'arbre' && $p != 'prochainement' && $p != 'options' && $p != 'messagerie' && $p != 'envoyer' && $p != 'classement' && $p != 'bugs' && $p != 'deconnexion') {
$template->assign('message','Impossible de rentrer en contact avec cette planète. Réessayez plus tard.');
$template->assign('titre','Planète isolée');
$template->assign('couleur','red');
@ -111,9 +118,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
}
}
$bdd->deconnexion();
$template->assign('alertMail', $bdd->num_rows);
$template->assign('alertMail', $queryMail['nombre']);
$metal = $queryPlanete["metal"];
$cristal = $queryPlanete["cristal"];
$hydrogene = $queryPlanete["hydrogene"];
@ -123,9 +129,9 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
$queryPlanete["energieS"] = separerNombres($queryPlanete["energie"]);
$queryPlanete["nom_planete"] = htmlspecialchars($queryPlanete["nom_planete"]);
$template->assign('planete',$queryPlanete);
$template->assign('planetes',$queryPlanetes);
$template->assign('nomsressources',$ressourc);
$template->assign('planete', $queryPlanete);
$template->assign('planetes', $queryPlanetes);
$template->assign('nomsressources', $ressourc);
//Calcul du nombre de cases restantes
$coun = count($batiment);
@ -135,8 +141,8 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
}
$template->assign('caseRest',$case-$caseRest);
if (!isset($_GET['p'])) $_GET['p'] = '';
switch($_GET['p']){
$p = gpc('p');
switch($p){
case 'prochainement':
$page = 'prochainement';
$titre = 'Prochainement';
@ -165,6 +171,9 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
case 'arbre':
include(_FCORE."hb_game/jeu/arbre.php");
break;
case 'gestion':
include(_FCORE."hb_game/jeu/gestion.php");
break;
case 'ressources':
include(_FCORE."hb_game/jeu/ressources.php");
break;
@ -234,21 +243,37 @@ if (isset($sess) && isset($sess->values['connected']) && $sess->values['connecte
//Si le joueur n'est pas connecté au site
else {
//On traite la demande de loggin de l'utilisateur
if (isset($_POST['HB_login']) && isset($_POST['HB_password'])) {
if (isset($_GET['l']) && isset($_GET['p']) && isset($_GET['a'])) {
//Récupération des données POST
$HB_login = $_POST['HB_login'];
$HB_password = $_POST['HB_password'];
$HB_login = gpc('l');
$HB_password = gpc('p');
$HB_auth = gpc('a');
if (empty($HB_login) || empty($HB_password)) {
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.');
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.<br /><br />');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
elseif (hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j')) != $HB_auth && hash("sha512", $HB_login.'Ņ♂↨'.$HB_password.'☻♫☼'.date('W!Y¨D@j', time()-300)) != $HB_auth) {
$template->assign('message','Impossible d\'authentifier la connexion !<br /><br />Si le problème perciste, contactez un administrateur.');
$template->assign('couleur','red');
$template->display('cms/erreur.tpl');
exit;
}
else {
$ipe = $_SERVER['REMOTE_ADDR'];
$bdd->connexion();
$bruteforce = $bdd->unique_query("SELECT nombre FROM securite_identification WHERE ip = '$ipe';");
if ($bruteforce['nombre'] >= 15) {
$fichier = fopen(_FCORE."ban.xlist",'a+');
fwrite($fichier, $_SERVER['REMOTE_ADDR']."\n\r");
fclose($fichier);
}
$bdd->escape($HB_login);
if (!$var = $bdd->unique_query("SELECT mdp_var FROM $table_user WHERE pseudo = '$HB_login';")) {
if (isset($bruteforce['nombre'])) $bdd->query("UPDATE securite_identification SET nombre = nombre + 1 WHERE ip = '$ipe';");
else $bdd->query("INSERT INTO securite_identification VALUES ('$ipe', '1', '".time()."');");
$bdd->deconnexion();
$template->assign('message','Nom d\'utilisateur ou mot de passe incorrect.');
$template->assign('couleur','red');
@ -286,7 +311,7 @@ else {
$bdd->escape($HB_password);
//Limiter le nombre de personnes en ligne simutanément
$connecte = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_sessions WHERE active = '1' AND var_session != '';");
$connecte = $bdd->unique_query("SELECT COUNT(xid) AS nombre FROM $table_sessions WHERE active = true AND var_session != '';");
if ($connecte['nombre'] > 1500) {
$template->assign('message','Il y a actuellement trop de monde connecté sur Halo-Battle. Pour permettre aux joueurs une navigation convenable, nous vous remercions de revenir plus tard.');
$template->assign('couleur','red');
@ -310,7 +335,6 @@ else {
}
if ($resultat['mv'] != 0) {
file_log('!! MV connection : '.var_export($_REQUEST,TRUE));
if ($resultat['last_visite']+259200 > time() && $resultat['auth_level'] < 2) {
if ($resultat['mv'] == 3) $template->assign('message','Vous êtes définitivement banni de cette galaxie pour '.$resultat['raisonmv'].'. Vous ne pouvez plus vous reconnecter sur votre compte');
elseif ($resultat['mv'] == 2) $template->assign('message','Un opérateur a placé votre compte en mode vacances pour '.$resultat['raisonmv'].'. Vous ne pouvez pas vous reconnecter sur votre compte avant le<br />'.strftime("%A %d %B à %H:%M", $resultat['last_visite']+259200));
@ -369,14 +393,13 @@ else {
}
$bdd->query("UPDATE $table_user SET last_visite = '$time', last_ip = '$ip' WHERE id = '$id';");
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES ('".$id."','".$ip."');");
$bdd->query("INSERT INTO $table_registre_identification (id_util, ip) VALUES (".$id.",'".$ip."');");
$bdd->deconnexion();
$sess->values['connected'] = TRUE;
$sess->values['id'] = $resultat['id'];
$sess->values['idPlan'] = $resultatP['id'];
$sess->values['auth_level'] = $resultat['auth_level'];
if ($resultat['auth_level'] > 0) file_log('!! connection : '.var_export($_REQUEST,TRUE));
$sess->put();
header('Location: ./?p=accueil');
@ -394,8 +417,8 @@ else {
}
}
if (!isset($_GET['p'])) $_GET['p'] = '';
switch($_GET['p']){
$p = gpc('p');
switch($p){
//Serveur principal
/* case "validation":
include('game/validation.php');
@ -425,8 +448,8 @@ else {
include(_FCORE."hb_game/jeu/regles.php");
break;
default:
$page = 'mini';
//header('Location: http://halo-battle.s-fr.com/?p=connexion');
//$page = 'mini';
header('Location: http://halo-battle.s-fr.com/?p=connexion');
//exit;
}
$template->display('cms/'.$page.'.tpl');

View file

@ -56,9 +56,9 @@ function max(i)
function vaisseaux(b)
{
for(i=1; document.getElementById('v_'+i) && document.getElementsByName('v'+i)[0]; i++)
for(i=1; i<=12; i++)
{
document.getElementsByName('v'+i)[0].value = b ? document.getElementById('v_'+i).innerHTML : '0';
if (document.getElementById('v_'+i) && document.getElementsByName('v'+i)[0]) document.getElementsByName('v'+i)[0].value = b ? document.getElementById('v_'+i).innerHTML : '0';
}
}

View file

@ -5,165 +5,230 @@ $onyx = @file_get_contents('./.onyx') or die("Configuration introuvable.");
define("_FCORE",trim($onyx));
require_once(_FCORE."common.php");
header ("Content-type: image/png");
$fontfile = _FCORE."hb_game/signatures/ARIAL.TTF";
$id = gpc('i');
if (!is_numeric($id)) $id = 0;
$bdd->connexion();
$bdd->escape($id);
$joueur = $bdd->unique_query("SELECT $table_user.pseudo, $table_user.auth_level, $table_user.race, $table_user.place_points, $table_user.points, $table_user.batiments, $table_user.flotte, $table_alliances.tag, $table_alliances.nom FROM $table_user INNER JOIN $table_alliances ON $table_user.id_alliance = $table_alliances.id WHERE $table_user.id = $id;");
if ($joueur == false) $joueur = $bdd->unique_query("SELECT pseudo, auth_level, race, place_points, points, batiments, flotte FROM $table_user WHERE id = $id;");
$nomjoueur = $joueur['pseudo'];
$raid = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = '$nomjoueur' AND contenu LIKE '<b>Le combat contre % est termi%';");
$transport = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE contenu LIKE 'Les vaisseaux de $nomjoueur %';");
$bdd->deconnexion();
$f = gpc('f');
$s = gpc('s');
if ($joueur['race'] == 'covenant') {
switch($f){
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
)
);
break;
default:
$img = 'covenantuserbarus1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 0, 0, 0);
$infos = array(
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($joueur['batiments'])
)
);
}
$_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/covi.png");
header ("Content-type: image/png");
if (file_exists(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign") && time() - filemtime(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign") < $config['cache']['signatures']) {
readfile(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign");
}
else {
switch($f){
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
)
);
break;
default:
$img = 'humainuserbarhz2.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
//$contenu = imagecolorallocate($_img, 160, 160, 0);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
)
);
$fontfile = _FCORE."hb_game/signatures/ARIAL.TTF";
$bdd->connexion();
$bdd->escape($id);
$joueur = $bdd->unique_query("SELECT $table_user.pseudo, $table_user.auth_level, $table_user.race, $table_user.place_points, $table_user.points, $table_user.batiments, $table_user.flotte, $table_alliances.tag, $table_alliances.nom FROM $table_user INNER JOIN $table_alliances ON $table_user.id_alliance = $table_alliances.id WHERE $table_user.id = $id;");
if ($joueur == false) $joueur = $bdd->unique_query("SELECT pseudo, auth_level, race, place_points, points, batiments, flotte FROM $table_user WHERE id = $id;");
$nomjoueur = $joueur['pseudo'];
$raid = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE destinataire = '$nomjoueur' AND contenu LIKE '<b>Le combat contre % est termi%';");
$transport = $bdd->unique_query("SELECT COUNT(id) AS nombre FROM $table_mail WHERE contenu LIKE 'Les vaisseaux de $nomjoueur %';");
$bdd->deconnexion();
if (!empty($s) && $joueur['auth_level'] >= 1) {
switch($s){
case 1:
$img = 'mixte1userbarju7.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
)
);
break;
default:
$img = 'mixte1userbarju7.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
)
);
}
if ($joueur['race'] == 'covenant') $_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/covi.png");
else $_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/hum.png");
}
$_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/hum.png");
}
$blanc = imagecolorallocate($_img, 255, 255, 255);
$noir = imagecolorallocate($_img, 0, 0, 0);
$rouge = imagecolorallocate($_img, 255, 0, 0);
$vert = imagecolorallocate($_img, 0, 255, 0);
$bleu = imagecolorallocate($_img, 0, 0, 255);
$jaune = imagecolorallocate($_img, 255, 255, 0);
if ($joueur == false) ImageTTFText($_img, 20, -20, 123, 17, $rouge, $fontfile, 'Joueur introuvable !');
else {
if ($joueur['auth_level'] > 4) ImageTTFText($_img, 12, 0, 45, 23, $vert, $fontfile, ucfirst($joueur['pseudo']));
elseif ($joueur['auth_level'] >= 1) ImageTTFText($_img, 12, 0, 45, 23, $jaune, $fontfile, ucfirst($joueur['pseudo']));
else ImageTTFText($_img, 12, 0, 45, 23, $entete, $fontfile, ucfirst($joueur['pseudo']));
ImageTTFText($_img, 12, 0, 255, 23, $entete, $fontfile, $config['serveur_name']);
if (isset($joueur['tag'])) {
ImageTTFText($_img, 11, 0, 32, 47, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
ImageTTFText($_img, 11, 0, 32, 64, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
ImageTTFText($_img, 11, 0, 32, 82, $contenu, $fontfile, "Alliance : [".$joueur['tag']."] ".substr($joueur['nom'],0,9).(strlen($joueur['nom'])>9?'...':''));
elseif ($joueur['race'] == 'covenant') {
switch($f){
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
)
);
break;
default:
$img = 'covenantuserbarus1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 0, 0, 0);
$infos = array(
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($joueur['batiments'])
)
);
}
$_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/covi.png");
}
else {
ImageTTFText($_img, 11, 0, 32, 55, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
ImageTTFText($_img, 11, 0, 32, 75, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
switch($f){
case 1:
$img = 'userbarallicopygs1.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
)
);
break;
default:
$img = 'humainuserbarhz2.png';
$_img = imagecreatefrompng(_FCORE."hb_game/signatures/".$img);
$entete = imagecolorallocate($_img, 255, 255, 255);
//$contenu = imagecolorallocate($_img, 160, 160, 0);
$contenu = imagecolorallocate($_img, 255, 255, 255);
$infos = array(
array(
imagecolorallocate($_img, 0, 0, 0),
separerNombres($raid['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['flotte'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($transport['nombre'])
),
array(
imagecolorallocate($_img, 255, 255, 255),
separerNombres($joueur['batiments'])
)
);
}
$_imgavatar = imagecreatefrompng(_FCORE."hb_game/signatures/hum.png");
}
ImageTTFText($_img, 12, 0, 272, 51, $infos[0][0], $fontfile, $infos[0][1]);
ImageTTFText($_img, 12, 0, 272, 78, $infos[1][0], $fontfile, $infos[1][1]);
ImageTTFText($_img, 12, 0, 355, 50, $infos[2][0], $fontfile, $infos[2][1]);
ImageTTFText($_img, 12, 0, 355, 78, $infos[3][0], $fontfile, $infos[3][1]);
$blanc = imagecolorallocate($_img, 255, 255, 255);
$noir = imagecolorallocate($_img, 0, 0, 0);
$rouge = imagecolorallocate($_img, 255, 0, 0);
$vert = imagecolorallocate($_img, 0, 255, 0);
$bleu = imagecolorallocate($_img, 0, 0, 255);
$jaune = imagecolorallocate($_img, 255, 255, 0);
if ($joueur == false) {
ImageTTFText($_img, 20, -20, 123, 17, $rouge, $fontfile, 'Joueur introuvable !');
if (file_exists(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign")) unlink(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign");
}
else {
if ($joueur['auth_level'] > 4) ImageTTFText($_img, 12, 0, 45, 23, $vert, $fontfile, ucfirst($joueur['pseudo']));
elseif ($joueur['auth_level'] >= 1) ImageTTFText($_img, 12, 0, 45, 23, $jaune, $fontfile, ucfirst($joueur['pseudo']));
else ImageTTFText($_img, 12, 0, 45, 23, $entete, $fontfile, ucfirst($joueur['pseudo']));
ImageTTFText($_img, 12, 0, 255, 23, $entete, $fontfile, $config['serveur_name']);
if (isset($joueur['tag'])) {
ImageTTFText($_img, 11, 0, 32, 47, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
ImageTTFText($_img, 11, 0, 32, 64, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
ImageTTFText($_img, 11, 0, 32, 82, $contenu, $fontfile, "Alliance : [".$joueur['tag']."] ".substr($joueur['nom'],0,9).(strlen($joueur['nom'])>9?'...':''));
}
else {
ImageTTFText($_img, 11, 0, 32, 55, $contenu, $fontfile, "Classement : ".separerNombres($joueur['place_points']).($joueur['place_points']==1?'er':'ème'));
ImageTTFText($_img, 11, 0, 32, 75, $contenu, $fontfile, "Points : ".separerNombres($joueur['points']));
}
ImageTTFText($_img, 12, 0, 272, 51, $infos[0][0], $fontfile, $infos[0][1]);
ImageTTFText($_img, 12, 0, 272, 78, $infos[1][0], $fontfile, $infos[1][1]);
ImageTTFText($_img, 12, 0, 355, 50, $infos[2][0], $fontfile, $infos[2][1]);
ImageTTFText($_img, 12, 0, 355, 78, $infos[3][0], $fontfile, $infos[3][1]);
}
imagecopy($_img, $_imgavatar, 435, 0, 0, 0, 98, 100);
imagealphablending($_img, false);
imagesavealpha($_img, true);
if ($joueur == false) imagepng($_img);
else {
imagepng($_img, _FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign");
readfile(_FCORE."hb_game/signatures/cache/".$id.".".$f.$s.".sign");
}
}
imagecopy($_img, $_imgavatar, 435, 0, 0, 0, 98, 100);
imagealphablending($_img, false);
imagesavealpha($_img, true);
imagepng($_img);
?>

View file

@ -63,6 +63,15 @@ border: #1F6183 solid 1px;
margin: 10px 4px;
}
select
{
color: #3D4B59;
background-color: #CEDAEC;
border: #1F6183 solid 1px;
margin: 2px 4px;
width: 140px;
}
input.text, input.password
{
color: #3D4B59;