

<?php
#=
/****************************************************************************
Copyright 2002, Daniel Deycard, Jacques Messines, Alain Pomirol
(CATICE Académie de Bordeaux)

This file is part of Gibii/Melia.

Gibii/Melia 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.

Gibii/Melia 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 Gibii/Melia; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

****************************************************************************/
include("../include/vars_adm.php");
include("../include/util.inc.php");
include("../include/utiljs.php");
$statut=$_REQUEST['statut'];
opensession($statut,true);
$PHP_SELF=basename($_SERVER['PHP_SELF']);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
   <title>Changement de mot de passe</title>
   <script language="javascript">
     function verif(mdpmin) {
       var ret=false;
       var formu=window.document.formmdp;
       var old=formu.ancien;
       var mdplen=formu.nouveau.value.length;
       var long_mdp=(mdplen>=mdpmin);
    ret=(formu.nouveau.value!=formu.ancien.value);
    if (!ret) alert('Invalide : nouveau mot de passe identique à l\'ancien !');
    else {
        ret=(formu.nouveau.value==formu.confirm.value);
        if (!ret)  alert('Nouveau mot de passe mal confirmé');
        else if (!long_mdp)
            {
            alert('Nouveau mot de passe trop court \(au moins '+mdpmin+' caractères\)');
            ret=false;
            }
        }
       //on ne peut faire mieux sans md5 (codage de mdp)
       return ret;
     }
   </script>

<?php
if ($statut=='Sadmin') $monstyle="../include/general.css";
else $monstyle="../themes/".$etab_theme."/b2i.css";
print "<link rel=\"stylesheet\" href=\"".$monstyle."\">";
print "</head>\n";

$classbody=($statut=='Sadmin') ? "arial_sadmin" : "arial";
if (isset($confirm)) { //passage 2
    $focus="document.chgt.et_hop.focus();";
    }
else { //passage 1
    $focus="document.formmdp.ancien.focus();";
    }

echo "<BODY class=\"$classbody\" onload=\"$focus\">";
print "<p class='sous_titre'>Changement de mot de passe</p>";
if ($sess_actif==0) print "<p class='sous_titre'>
                           <font size=-1>Imposé par le système !
                           </font>
                           </p>";
if (isset($tcourt) && ($tcourt!=""))
    print "<p class='sous_titre'><font size=-1>$tcourt</font></p>";
print "<p class='nom_prenom' align='center'>";
switch ($statut) {
    case "Sadmin" :
        print "Super-Administrateur : ".$sess_login;
        break;
    case "Admin" :
        print "Administrateur : ".$sess_login;
        break;
    case "Gest" :
        print "Gestion : ".$sess_login;
        break;
    default :
        print $sess_prenom." ".$sess_nom;
}

print "</p>";

if (!isset($confirm)) {  //variable représentant le nom du champ password du premier passage dans la page
    print "<br>\n";

//----------------  Passage 1  ---------------------
?>

<form name="formmdp"
      action='<?php print $PHP_SELF; ?>'
      method="post"
      onsubmit="return verif(<?php echo $MDP_MINI; ?>);">
<input type='hidden' name='suite' value='<?php print $suite; ?>'>
<input type='hidden' name='statut' value='<?php print $statut; ?>'>

<table border="0" width="70%" align=center>
    <tr>
        <td width="215"><p align="right">Ancien  mot de passe : </p></td>
        <td width="153"><p>&nbsp;&nbsp;
                      <input type="password" name="ancien" maxlength="16" size="16"></p>
               </td>
        <td width="215"><p>&nbsp;</p></td>
    </tr>
     <tr>
        <td width="215" height="20">&nbsp;</td>
        <td width="153" height="20">&nbsp;</td>
        <td width="215" height="20">&nbsp;</td>
     </tr>
    <tr>
        <td width="215"><p align="right">&nbsp;Nouveau mot de passe : </p></td>
        <td width="153">
            <p>&nbsp;&nbsp;
            <input type="password" name="nouveau" maxlength="16" size="16"></p>
            </td>
        <td width="215" rowspan="2"><p><i>&nbsp;<br>
        Conseil :
        Le mot de passe ne doit pas être personnel
        (prénom de la copine ou du chien) , ce ne doit pas être un mot du dictionnaire, et il doit avoir une longueur minimale de <?php echo $MDP_MINI; ?> caractères.</i></p>
        </p></td>
    </tr>
    <tr>
        <td width="215"><p align="right">&nbsp;Confirmation : </p></td>
        <td width="153">
              <p>&nbsp;&nbsp;
          <input type="password" name="confirm" maxlength="16" size="16"></p>
          </td>
    </tr>
        <tr>
        <td width="215" height="40"><p align="right"><br>Valider :<br>&nbsp; </p></td>
        <td width="153" height="40"><p align="center">&nbsp;<br>&nbsp;
              <input type="submit" class="coul" name="envoi" value='Enregistrer' accesskey='E'> <br>&nbsp;</p>
              </td>
            <td width="215" height="40"><p>&nbsp;</td>
     </tr>

</table>
</form>

<?php
//alert("en fin d'affichage page sess_actif=$sess_actif");
}
else {
	
	//--------------------  Passage 2  --------------------
    connecte($host,$user,$mdp,$db);
    //on revérifie en PHP par sécurité
    if ($etab_id>0) {
        $sqlcomp=" and etab_id=$etab_id;";   //attention : vaut -1 pour le sadmin
        //$suite a été passé par l'URL puis des champs cachés;
        $suiteerreur="../login/login.php?etab_id=$etab_id";
        }
    else {
        $sqlcomp="";
        if (!isset($suite)) $suite="../sadmin/sadmin_ut.php";
        $suiteerreur="../sadmin/index.php";
        }
    list($compte_id,$mdp)=mysql_fetch_array(query("SELECT compte_id, mdp
                                                     FROM comptes
                                                    WHERE login='$sess_login' $sqlcomp"));

    if ($nouveau!=$confirm) {
        alert('Les deux nouveaux mots de passe sont différents');
        $suite=$suiteerreur;
        }
    elseif ($mdp!=md5($ancien)) {
        alert("Ancien mot de passe incorrect !");
        $suite=$suiteerreur;
        }
    else {
        print "<p style=\"text-align:center;\">";
        $passwd=md5($nouveau);
        //on modifie le mdp dans la base ainsi que actif,
        //ce qui, dans la foulée, ne mange pas de pain
        query("UPDATE comptes
                  SET mdp='$passwd',
                      actif=1
                WHERE compte_id=".seci($compte_id));
        print "Mot de passe changé avec succès<br /><br />";
        if ($sess_actif!=1) {
            $sess_actif=1;
            session_puts("sess_actif");
        }
    }
    print "<form name=\"chgt\" method=\"post\" action=\"$suite\"> <p style=\"text-align:center;\">";
    print "<input type='submit' class='coul' name='et_hop' value='Continuer' accesskey='C' >";
    print "</form>";
    print "</p>";
}
?>

</body></html>