Location: PHPKode > projects > Anomalie4 > adm_jeu.php3
<?
/*
La 4e anomalie : real-time and web based galaxy conquest game. Have fun !
Copyright (C) 2003 

Sylvain Moreau F-78220  
email 1 : hide@address.com
email 2 : hide@address.com

This program is free software; you can redistribute it and/or modify it under the terms 
of the GNU General Public License as published by the Free Software Foundation; 
either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program;
if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
*/
include ("lib_gen.php3");
include ("lib_ent.php3");
include ("lib_p4.php3");
include ("lib_adm.php3");

affiche_enteteHTML();
include ("authen.php3");

if ($login<>'Dieu') {
    connecte();
    journalise ("*****Erreur sur interface d\'admin !!!");
    quitte("Erreur");
}
// Suivant le type de commande passée, les actions sont différentes
switch($cmd) {
	case "cookie" :
	  if ($arg1[0]=="1") // Cookie persistant
	    $cookie="ok";
	  else
	    $cookie="non";
	  parametre("cookie1h",$cookie);
	  break;
    case "pass_adm" : // changement du pass de l'admin
	   if (check_pass($login, $arg2, $arg3)) {
          $res=change_pwd($login, $arg1, $arg2);
		  if ($res) {
		     // On met à jour le fichier de paramètres pour prise en compte à la prochaine partie
	         $fd=fopen("core/nouv_pwd.php3","w");
	         if ($fd!="") {
               fwrite($fd,"<?\n");
			   fwrite($fd,ligne_define("SECRET",SECRET,"string"));
			   fwrite($fd,ligne_define("PDW_DIEU",$arg2,"string"));
			   fwrite($fd,ligne_define("LIMITE_CNX",LIMITE_CNX,"entier"));
			   fwrite($fd,"?>\n");
               fclose($fd);
			   copy("core/nouv_pwd.php3", "core/param_admin.php3");
			   echo "<P>Votre mot de passe à été changé</P>";
             }
            else "<P>Erreur de fichier, vérifiez les droits ou l'espace disque. Mot de passe non changé !</P>";
		  }
		  else echo "<P>Votre ancien mot de passe est incorrect. Recommencez !</P>";
	   }
    break;
	case "technos" : // modification des technos
	  // On met à jour le fichier de paramètres pour prise en compte à la prochaine partie
	  $erreur=FALSE;
	  $fd=fopen("core/nouv_param_techno.php3","w");
	  if ($fd!="") {
         fwrite($fd,"<?\n");
		 fwrite($fd,"//Technos actuelles \n");
		 fwrite($fd,ligne_define("SEUIL_TERRA",$ter_act,"entier"));
		 fwrite($fd,ligne_define("SEUIL_ATOM",$ato_act,"entier"));
		 fwrite($fd,ligne_define("SEUIL_VORTEX",$vor_act,"entier"));
		 fwrite($fd,ligne_define("SEUIL_HYPER",$hyp_act,"entier"));
		 fwrite($fd,ligne_define("SEUIL_RAIL",$rail_act,"entier"));
		 fwrite($fd,ligne_define("SEUIL_PROTEC",$pro_act,"entier"));
		 fwrite($fd,ligne_define("SEUIL_CAPITALE",$cap_act,"entier"));
		 fwrite($fd,ligne_define("P_ATOM",$fin_act/100,"entier"));
		 fwrite($fd,"//Technos prochaine partie \n");		 
		 fwrite($fd,ligne_define("NEXT_SEUIL_TERRA",$ter_nex,"entier"));
		 fwrite($fd,ligne_define("NEXT_SEUIL_ATOM",$ato_nex,"entier"));
		 fwrite($fd,ligne_define("NEXT_SEUIL_VORTEX",$vor_nex,"entier"));
		 fwrite($fd,ligne_define("NEXT_SEUIL_HYPER",$hyp_nex,"entier"));
		 fwrite($fd,ligne_define("NEXT_SEUIL_RAIL",$rail_nex,"entier"));
		 fwrite($fd,ligne_define("NEXT_SEUIL_PROTEC",$pro_nex,"entier"));
		 fwrite($fd,ligne_define("NEXT_SEUIL_CAPITALE",$cap_nex,"entier"));
		 fwrite($fd,ligne_define("NEXT_P_ATOM",$fin_nex/100,"entier"));
		 fwrite($fd,"?>\n");
         fclose($fd);
		 $fd=fopen("core/next_param_techno.php3","w");
		 if ($fd!="") {
           fwrite($fd,"<?\n");
		   fwrite($fd,"//Technos actuelles \n");
		   fwrite($fd,ligne_define("SEUIL_TERRA",$ter_nex,"entier"));
		   fwrite($fd,ligne_define("SEUIL_ATOM",$ato_nex,"entier"));
		   fwrite($fd,ligne_define("SEUIL_VORTEX",$vor_nex,"entier"));
		   fwrite($fd,ligne_define("SEUIL_HYPER",$hyp_nex,"entier"));
		   fwrite($fd,ligne_define("SEUIL_RAIL",$rail_nex,"entier"));
		   fwrite($fd,ligne_define("SEUIL_PROTEC",$pro_nex,"entier"));
		   fwrite($fd,ligne_define("SEUIL_CAPITALE",$cap_nex,"entier"));
		   fwrite($fd,ligne_define("P_ATOM",$fin_act/100,"entier"));
		   fwrite($fd,"//Technos prochaine partie \n");		 
		   fwrite($fd,ligne_define("NEXT_SEUIL_TERRA",$ter_nex,"entier"));
		   fwrite($fd,ligne_define("NEXT_SEUIL_ATOM",$ato_nex,"entier"));
		   fwrite($fd,ligne_define("NEXT_SEUIL_VORTEX",$vor_nex,"entier"));
		   fwrite($fd,ligne_define("NEXT_SEUIL_HYPER",$hyp_nex,"entier"));
		   fwrite($fd,ligne_define("NEXT_SEUIL_RAIL",$rail_nex,"entier"));
		   fwrite($fd,ligne_define("NEXT_SEUIL_PROTEC",$pro_nex,"entier"));
		   fwrite($fd,ligne_define("NEXT_SEUIL_CAPITALE",$cap_nex,"entier"));
		   fwrite($fd,ligne_define("NEXT_P_ATOM",$fin_nex/100,"entier"));
		   fwrite($fd,"?>\n");
           fclose($fd);
		 }
		 else $erreur=TRUE;
	}
	if (!$erreur) {
	   copy("core/nouv_param_techno.php3", "core/param_techno.php3");
	   echo "<P>Modification réalisée</P>";
	   die ("<a href=adm_jeu.php3> <B>Cliquez la pour continuer</B></a>");
	}
     else "<P>Erreur de fichier, vérifiez les droits ou l'espace disque. Modif non réalisée !</P>";
	break;
  case "mail" : // Changement du mail du mj
    $fd=fopen("nouv_mail.php3","w");
	  if ($fd!="") {
         fwrite($fd,"<?\n");
		 fwrite($fd,"echo \"<a href=\\\"mailto:$arg1\\\">$arg1</a>\";\n");
		 fwrite($fd,"?>\n");
         fclose($fd);
		 copy("nouv_mail.php3", "mail.php3");
	     echo "<P>Modification réalisée</P>";
		 }
	  else "<P>Erreur de fichier, vérifiez les droits ou l'espace disque. Mot de passe non changé !</P>";
	break;
  case "inscriptions" :
    if ($arg1[0]=="1") // inscriptions ouvertes
	    $inscrip="ouvertes";
	  else
	    $inscrip="fermees";
	  parametre("inscript",$inscrip);
	  // au redémarrage
	  if ($arg2[0]=="1") // inscriptions ouvertes
	    $inscrip="ouvertes";
	  else
	    $inscrip="fermees";
	  parametre("next_inscript",$inscrip);
  break;
  case "autorisation" : // Fourni un numéro d'autorisation
    mt_srand(time());
	for ($i=1;$i<3; $i++) {
      $numero.=mt_rand(1000,9999);
      $numero.="-";
	}
	$numero.=mt_rand(1000,9999);
	connecte();
	$query ="INSERT  autorisations (numero, type) VALUES (\"$numero\",\"inscription\")";
	requete($query);
    echo "<P align=center>Le numéro d'autorisation est<H2 align=center>$numero</H2></P><hr>";
  break;
}
?>
<p> <H1>Module de gestion des paramètres du jeu </H1></p>

<H2>Change de mode de gestion des cookies</H2>
<P>En utilisant un cookie de session, la compatiblité est maximale mais l'identification des doublons est plus
 difficile car le cookie est effacée lorsque toutes les fenêtres du navigateur sont fermée. En revanche,
 en mettant une durée de vie au cookie, leur identification est plus efficace. En contrepartie certains
 joueurs ne peuvent pas se connecter.</P>
<B>
 <?
   if (parametre("cookie1h")=="ok")
      echo("choix 1 : Les cookies survivent à la fermeture des fenêtre du navigateur (non recommandé)");
   else
      echo ("choix 2 : Les cookies disparaissent à la fermeture des fenêtre du navigateur (recommandé)");
 ?>
<FORM Method="POST" Action="adm_jeu.php3">
    <INPUT type=hidden name=cmd value="cookie">
	<SELECT name="arg1">
		     <OPTION NAME="cookie1h">1-cookie persistant</OPTION>
		 	 <OPTION NAME="cookiesession">2-cookie de session</OPTION>
	</SELECT>
    <INPUT type=submit value="Changer">
  </FORM>
</B>
<hr>

<H2>Changer le mot de passe de l'administrateur</H2>

<FORM Method="POST" Action="adm_jeu.php3">
    <INPUT type=hidden name=cmd value="pass_adm">
	ancien pass
    <INPUT type=password size=10 name=arg1><BR>
	nouveau pass 
	<INPUT type=password size=10 name=arg2>
	resaisie : <INPUT type=password size=10 name=arg3>
    <INPUT type=submit value="Changer pass">
  </FORM>

<hr>
<H2>Gérer les technologies</H2>

<FORM Method="POST" Action="adm_jeu.php3">
    <INPUT type=hidden name=cmd value="technos">
	<TABLE border =1>
	<TR>
	  <TH> </TH>
	  <TH>Actuel</TH>
	  <TH>prochaine partie</TH>
	</TR>
	<TR>
	  <TD>Vortex</TD>
	  <TD><INPUT type=texte size=5 name=vor_act value=<? echo '"'.SEUIL_VORTEX.'"'; ?> > </TD>
	  <TD><INPUT type=texte size=5 name=vor_nex value=<? echo '"'.NEXT_SEUIL_VORTEX.'"'; ?> > </TD>
	</TR>
	<TR>
	  <TD>Terraformage</TD>
	  <TD><INPUT type=texte size=5 name=ter_act value=<? echo '"'.SEUIL_TERRA.'"'; ?> > </TD>
	  <TD><INPUT type=texte size=5 name=ter_nex value=<? echo '"'.NEXT_SEUIL_TERRA.'"'; ?> > </TD>
	</TR>
	<TR>
	  <TD>Hyperformage</TD>
	  <TD><INPUT type=texte size=5 name=hyp_act value=<? echo '"'.SEUIL_HYPER.'"'; ?> > </TD>
	  <TD><INPUT type=texte size=5 name=hyp_nex value=<? echo '"'.NEXT_SEUIL_HYPER.'"'; ?> > </TD>
	</TR>
	<TR>
	  <TD>Rail stellaire</TD>
	  <TD><INPUT type=texte size=5 name=rail_act value=<? echo '"'.SEUIL_RAIL.'"'; ?> > </TD>
	  <TD><INPUT type=texte size=5 name=rail_nex value=<? echo '"'.NEXT_SEUIL_RAIL.'"'; ?> > </TD>
	</TR>
	<TR>
	  <TD>Atomisation</TD>
	  <TD><INPUT type=texte size=5 name=ato_act value=<? echo '"'.SEUIL_ATOM.'"'; ?> > </TD>
	  <TD><INPUT type=texte size=5 name=ato_nex value=<? echo '"'.NEXT_SEUIL_ATOM.'"'; ?> > </TD>
	</TR>
	<TR>
	  <TD>Capitale</TD>
	  <TD><INPUT type=texte size=5 name=cap_act value=<? echo '"'.SEUIL_CAPITALE.'"'; ?> > </TD>
	  <TD><INPUT type=texte size=5 name=cap_nex value=<? echo '"'.NEXT_SEUIL_CAPITALE.'"'; ?> > </TD>
	</TR>
	<TR>
	  <TD>Protectorat</TD>
	  <TD><INPUT type=texte size=5 name=pro_act value=<? echo '"'.SEUIL_PROTEC.'"'; ?> > </TD>
	  <TD><INPUT type=texte size=5 name=pro_nex value=<? echo '"'.NEXT_SEUIL_PROTEC.'"'; ?> > </TD>
	</TR>
	</TABLE>
    <P>Attention, changer les technos actuelles en cours de partie peut perturber <B>GRANDEMENT</B> le déroulement de la partie
	 il est donc conseillé de ne pas modifier le niveau d'une techno qui à déjà été atteinte par un joueur. Voici a titre
	 informatif, le niveau maximal atteint par les premiers joueurs au classement économique :</P>
	<P>Les prolarch's mettent fin à la partie lorsque il reste moins de :
	<INPUT type=texte size=5 name=fin_act value=<? echo '"'.(P_ATOM*100).'"'; ?> > % des etoiles en jeu. 
	Pour la prochaine partie, ce seuil est fixé à 
	<INPUT type=texte size=5 name=fin_nex value=<? echo '"'.(NEXT_P_ATOM*100).'"'; ?> > %
	</P>
	 <?
	 connecte();
	 $query="SELECT pseudo, SUM(dev) s FROM systemes GROUP BY pseudo ORDER BY s DESC LIMIT 3";
	 $result=requete($query);
	 echo "<TABLE border=1>";
	 echo "<TR><TH>perso</TH><TH>Developpement</TH></TR>";
	 while($row = mysql_fetch_row($result)){
	   $pseudo= $row[0];
       $dev= $row[1];
       echo "<TR><TD>$pseudo</TD><TD>$dev</TD></TR>";
	 }
	 echo "</TABLE>";
	 ?>
	 <BR>
    <INPUT type=submit value="Changer technos">
  </FORM>
<HR>
<H2>Changer le mail du mj</H2>

<FORM Method="POST" Action="adm_jeu.php3">
    <INPUT type=hidden name=cmd value="mail">
	l'ancien email est <? include "mail.php3";  ?>
    le nouveau mail est <INPUT type=text size=30 name=arg1><BR>
	Une fois le mail changé toutes les pages seront instantanement mises à jour avec ce nouvel email.<BR>
    <INPUT type=submit value="Changer mail">
  </FORM>
<hr>
<H2>Gestion du mode d'inscription</H2>
<P>Actuellement, les inscriptions sont : <B>
<?
if (parametre("inscript")=="ouvertes")
      echo("ouvertes");
   else
      echo ("fermées et réalisables uniquement sur accord du mj");
?> </B> .La prochaine partie débutera avec les inscriptions : <B>
<?
if (parametre("next_inscript")=="ouvertes")
      echo("ouvertes");
   else
      echo ("fermée et réalisables uniquement sur accord du mj");
?>
</B></P>
<FORM Method="POST" Action="adm_jeu.php3">
    <INPUT type=hidden name=cmd value="inscriptions">
	partie en cours : :
    <SELECT name="arg1">
		     <OPTION NAME="ouvert">1-inscriptions ouvertes </OPTION>
		 	 <OPTION NAME="ferme">2-inscriptions fermées(réalisées par le mj seulement)</OPTION>
	</SELECT>
	<BR>
	Prochaine partie :
	<SELECT name="arg2">
		     <OPTION NAME="ouvert">1-inscriptions ouvertes </OPTION>
		 	 <OPTION NAME="ferme">2-inscriptions fermées(réalisées par le mj seulement)</OPTION>
	</SELECT>
	<BR><BR>
    <INPUT type=submit value="Changer mode inscription">
  </FORM>
<hr>
<H2>Donner un n° d'autorisation pour une inscription</H2>
<P>Cette fonction vous permet de produire un numéro d'autorisation qui permettra à quelqu'un d'inscrire 
un personnage lors d'une partie fermée. Un numéro d'autorisation n'est valable qu'une seule fois.<BR>
Tous les numéros d'autorisation sont invalidés lors du redémarrage d'une partie.</P>
<FORM Method="POST" Action="adm_jeu.php3">
    <INPUT type=hidden name=cmd value="autorisation">
	<INPUT type=submit value="demander numéro">
  </FORM>
<hr>
<a href="admin.php3"> Revenir à la page d'accueil de l'administration </a>
Return current item: Anomalie4