Fichier FrameBeurk
Fmbk/Module/Uzers/User/Maj/creeUser.php
<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
if (! isset($_REQUEST["titre$IdMaj"]) || $_REQUEST["titre$IdMaj"] == '')
Beurk_messageEtape('Code utilisateur obligatoire', true, "titre$IdMaj");
else if (preg_match ('#^[a-zA-Z0-9_-]+$#', $_REQUEST["titre$IdMaj"]) != true)
Beurk_messageEtape('Code utilisateur invalide', true, "titre$IdMaj");
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['MotDePasse']) || $_REQUEST['MotDePasse'] == '')
Beurk_messageEtape('Mot de passe obligatoire', true, 'MotDePasse');
else if (preg_match ('#^[a-zA-Z0-9_-]+$#', $_REQUEST['MotDePasse']) != true)
Beurk_messageEtape('Mot de passe invalide', true, 'MotDePasse');
else if ($_REQUEST['MotDePasse'] != $_REQUEST['ConfirmMotDePasse'])
Beurk_messageEtape('Mot de passe de confirmation différent', true, 'ConfirmMotDePasse');
else {
$User = Beurk_Request2DB($_REQUEST["titre$IdMaj"]);
$MotDePasse = Beurk_Request2DB(md5($_REQUEST['MotDePasse']));
$adresseEmail = Beurk_Request2DB($_REQUEST['adresseEmail']);
$result = db_QUERY("SELECT IdUser FROM Uzers_User WHERE User = '$User'");
if (list($IdUser) = db_FETCH_ROW($result))
Beurk_messageEtape('Code utilisateur déjà attribué', true, "titre$IdMaj");
else {
if (Uzers_estAdmin()) //si création par Admin, c'est lui le créateur jusqu'à activation du User.
$IdCreateur = $DIALOG['IdUser'];
else
$IdCreateur = '';
//création du User à l'état 'T' : attente de validation
$requete = array('INSERT' => 'Uzers_User',
'VALUES' => array('User' => $User,
'MotDePasse' => $MotDePasse,
'IdStyle' => Beurk_id($DIALOG['Style']),
'adresseEmail' => $adresseEmail,
'Donnees' => Beurk_Request2DB($_REQUEST["donnees$IdMaj"])));
// éxécute l'insert, positionne le message OK ou KO, mets à jour le User qui a réalisé l'action (éventuellement l'admin), et renvoie l'insert Id
if ($IdUser = Beurk_creeEntite($requete, 'Utilisateur à activer créé', 'T', $CONFIG['Entite']['Site']['Id'])) {
//création et stockage de la clef d'activation
$TRANSAC['ClefACreer'] = array('adresseEmail' => Beurk_Request2DB($adresseEmail),
'ActMaj' => 'active',
'IdMaj' => $IdUser,
'Donnees' => '');
include(INSTALL_PATH . '/Module/' . $CONFIG['Entite']['Clef']['Module'] . '/Clef/Maj/creeClef.php');
if (! $TRANSAC['Maj']['Erreur']) {
//envoi mail d'activation
$mail = Beurk_Request2DB($_REQUEST["titre$IdMaj"]);
$donneesmail = Beurk_traduit('Félicitation pour avoir créé votre compte "%s" sur le site', 'Uzers', $User)
. ' <a href="' . Beurk_cheminURL() . '" target="_blank">' . Beurk_cheminURL() . '</a><br />'
. Beurk_traduit("Pour l'activer, merci de suivre le lien suivant :")
. ' <a href="' . Beurk_URL(array('ActVue' =>'detail', 'IdVue' => $IdUser, 'JetonMaj' => $TRANSAC['ClefACreer']['Clef'])) . '" target="_blank">' .
Beurk_traduit('Activer le compte "%s"', 'Uzers', $User) . '</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);
}
}
}
db_FREE($result);
}