FrameBeurk File
Fmbk/Module/Uzers/User/Maj/modifieUser.php
<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
if (! Uzers_estLogue())
Beurk_messageEtape("Vous n'êtes pas habilités", true);
else if (! isset($_REQUEST['adresseEmail']) || $_REQUEST['adresseEmail'] == '')
Beurk_messageEtape('Adresse E-mail obligatoire', true, 'adresseEmail');
else if (preg_match ("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/", $_REQUEST['adresseEmail']) != true)
Beurk_messageEtape('Adresse E-mail invalide', true, 'adresseEmail');
else if (isset($_REQUEST['NouveauMotDePasse']) && $_REQUEST['NouveauMotDePasse'] != '' && preg_match ('#^[a-zA-Z0-9_-]+$#', $_REQUEST['NouveauMotDePasse']) != true)
Beurk_messageEtape('Mot de passe invalide', true, 'NouveauMotDePasse');
else if ($_REQUEST['NouveauMotDePasse'] != $_REQUEST['ConfirmMotDePasse'])
Beurk_messageEtape('Mot de passe de confirmation différent', true, 'NouveauMotDePasse');
else if (! Uzers_estUserLogue($IdMaj) && ! Uzers_estAdmin())
Beurk_messageEtape("Vous n'êtes pas habilités", true);
else if (! Uzers_estAdmin() && Uzers_verifiePassword($IdMaj, $_POST['MotDePasseActuel']) != 0)
Beurk_messageEtape("Mot de passe actuel erroné", true, 'MotDePasseActuel');
else {
$adresseEmail = $_REQUEST['adresseEmail'];
// adresse e-mail modifiée ?
$result = db_QUERY("SELECT User, adresseEmail, IdEtat, NoVersion FROM Uzers_User WHERE IdUser = '" . Beurk_Request2DB($IdMaj) . "'");
if (list($User, $adresseEmailActuelle, $IdEtatUser, $NoVersionCourante) = db_FETCH_ROW($result)) {
if ($adresseEmailActuelle != $adresseEmail) {
// le changement d'adresse e-mail se fait via une clef d'activation envoyée par mail
//création et stockage de la clef d'activation
$TRANSAC['ClefACreer'] = array('adresseEmail' => Beurk_Request2DB($adresseEmail),
'ActMaj' => 'active',
'IdMaj' => $IdMaj,
'Donnees' => '');
include(INSTALL_PATH . '/Module/' . $CONFIG['Entite']['Clef']['Module'] . '/Clef/Maj/creeClef.php');
if (! $TRANSAC['Maj']['Erreur']) {
//envoi mail d'activation
$mail = $User;
$donneesmail = Beurk_traduit("Vous voulez modifier l'adresse e-mail de votre compte sur le site")
. ' <a href="' . Beurk_cheminURL() . '" target="_blank">' . Beurk_cheminURL() . '</a><br />'
. Beurk_traduit('Pour ce faire, merci de suivre le lien suivant :')
. ' <a href="' . Beurk_URL(array('ActVue' =>'detail', 'IdVue' => $IdMaj, 'JetonMaj' => $TRANSAC['ClefACreer']['Clef'])) . '" target="_blank">'
. Beurk_traduit('Activer cette nouvelle adresse e-mail') . '</a><br />';
$donneesmail = wordwrap($donneesmail, 70, "\r\n");
$headersmail = "MIME-Version: 1.0\r\n"
. "Content-Type: text/html; charset=utf-8\r\n"
. 'From: noreply@' . $CONFIG['Param']['DomaineMail'] . "\r\n";
if (! mail($adresseEmail, $mail, $donneesmail, $headersmail))
Beurk_messageEtape("Erreur envoi message d'activation", true);
}
}
//modification du User
$requete = array('UPDATE' => 'Uzers_User',
'SET' => array('Donnees' => Beurk_Request2DB($_REQUEST["donnees$IdMaj"])),
'WHERE' => "IdUser = '$IdMaj'");
if ($_REQUEST['NouveauMotDePasse'] != '') // si changement de mot de passe
$requete['SET']['MotDePasse'] = Beurk_Request2DB(md5($_REQUEST['NouveauMotDePasse']));
Beurk_modifieEntite($requete, 'Utilisateur modifié', $IdEtatUser, $NoVersionCourante, $IdMaj);
} else Beurk_messageEtape('Utilisateur inconnu', true);
db_FREE($result);
}