Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 605 → Rev 606

/trunk/client/bottin/bibliotheque/inscription.fonct.php
19,8 → 19,8
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: inscription.fonct.php,v 1.4 2005-11-17 18:48:02 florian Exp $
// CVS : $Id: inscription.fonct.php,v 1.4 2005-11-17 18:48:02 florian Exp $
// CVS : $Id: inscription.fonct.php,v 1.5 2005-11-18 16:04:15 florian Exp $
// CVS : $Id: inscription.fonct.php,v 1.5 2005-11-18 16:04:15 florian Exp $
/**
* Fonctions du module inscription
*
32,8 → 32,8
//Autres auteurs :
*@author Aucun
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.4 $ $Date: 2005-11-17 18:48:02 $
*@version $Revision: 1.4 $ $Date: 2005-11-17 18:48:02 $
*@version $Revision: 1.5 $ $Date: 2005-11-18 16:04:15 $
*@version $Revision: 1.5 $ $Date: 2005-11-18 16:04:15 $
// +------------------------------------------------------------------------------------------------------+
*/
 
58,7 → 58,7
* @return
*/
 
function demande_inscription ($valeurs) {
function demande_inscription($valeurs) {
// On stocke les informations dans un variable de session
// On coupe l'identifiant de session pour ne prendre que les 8 premiers caractères
// afin d'éviter d'obtenir une url trop longue
112,7 → 112,6
* @param array un tableau de valeur avec en clé les noms des champs du formulaire
* @return void
*/
 
function AUTH_formulaire_login($msg = '') {
//--------------------------------------------------------------------------
// Le formulaire
120,7 → 119,6
$res = '';
if ($msg!='') {$res .= $msg.'<br /><br />';}
$res .= '<h2>'.INS_DEJA_INSCRIT.'</h2>'."\n" ;
$res .= '<p class="info">'.INS_TEXTE_PERDU.'</p>'."\n" ;
$GLOBALS['ins_url']->removeQueryString('action') ;
$form = new HTML_QuickForm('inscription_identification', 'post', preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL())) ;
$squelette =& $form->defaultRenderer();
140,41 → 138,25
return $res;
}
 
/** message_erreur () - Renvoie le code HTML d'un message d'erreur
 
/** formulaire_envoi_passe() - Renvoie le code HTML d'un formulaire d'envoi de mot de passe par mail
*
* @return string HTML
*/
 
function message_erreur() {
$res = '';
$url = preg_replace ('/&amp;/', '&', $GLOBALS['ins_url']->getURL()) ;
$res .= "<div class=\"inscription_erreur\">".INS_ERREUR_LOGIN."</div>\n" ;
$res .= "<div>".INS_SI_PASSE_PERDU."</div>\n" ;
$res .= '<div>' ;
$res .= '<form action="'.$url.'&action=sendpasswd" method="post">'."\n" ;
$res .= INS_EMAIL.'&nbsp;' ;
$res .= '<input type="text" value="'.$_POST['username'].'" name="mail" size="32" /></li></ul>'."\n" ;
$res .= "<input type=\"submit\" value=\"".INS_ENVOIE_PASSE."\" />" ;
$res .= "</form></div>\n" ;
 
// On remet le formulaire d'inscription mais un peu réduit
$res .= '<br /><h3 class="titre2_inscription">'.INS_DEJA_INSCRIT.'</h3>' ;
$form = new HTML_QuickForm ('inscription', 'post', $url) ;
$form->addElement ('text', 'username', INS_EMAIL) ;
$form->addElement ('password', 'password', INS_MOT_DE_PASSE) ;
$form->addElement('submit', 'valider', INS_VALIDER);
$res .= $form->toHTML() ;
$res .= '<h3 class="titre2_inscription">'.INS_PAS_INSCRIT.'</h3>' ;
$GLOBALS['ins_url']->addQueryString('action', 'inscription') ;
$form = new HTML_QuickForm('inscription', 'post', preg_replace ('/&amp;/', '&', str_replace ('&amp;', '&', $GLOBALS['ins_url']->getURL()))) ;
$form->addElement('submit', 'Inscription', INS_INSCRIPTION) ;
if (INS_FORMULAIRE_STRUCTURE) $form->addElement('submit', 'form_structure', INS_INSCRIPTION_STRUCTURE) ;
$res .= "<br /><div>".INS_LAIUS_INSCRIPTION_2."</div>\n" ;
$res .= $form->toHTML() ;
function formulaire_envoi_passe() {
$res = '<h2>'.INS_SI_PASSE_PERDU.'</h2>'."\n" ;
$res .= '<form action="'.$GLOBALS['ins_url']->getURL().'&amp;action=sendpasswd" method="post">'."\n" ;
$res .= '<p class="label100">'.INS_EMAIL.' : </p>'."\n" ;
$res .= '<input type="text" value="';
if (isset($_POST['username'])) $res .= $_POST['username'];
$res .= '" name="mail" size="32" />'."\n" ;
$res .= '<input type="submit" value="'.INS_ENVOIE_PASSE.'" />' ;
$res .= '</form><br />'."\n" ;
$res .= AUTH_formulaire_login() ;
return $res;
}
 
 
function insertion($valeur) {
// =========== Insertion dans l'annuaire gen_annuaire ===================
// Génération du nom wikini à partir du nom et du prénom
211,6 → 193,7
}
 
 
/**
* Réalise une mise à jour dans la base de donnée
*
240,41 → 223,45
*/
 
function requete_annuaire($valeur) {
$req = INS_CHAMPS_NOM.'="'.$valeur['nom'].'", ';
$req = INS_CHAMPS_NOM.'="'.addslashes($valeur['nom']).'", ';
if (isset($valeur['prenom'])) {
$req .= INS_CHAMPS_PRENOM.'="'.$valeur['prenom'].'", ';
if (INS_UTILISE_WIKINI) $req .= INS_CHAMPS_NOM_WIKINI.'="'.ucfirst(strtolower($valeur['prenom'])).ucfirst(strtolower($valeur['nom'])).'", ' ;
if (INS_UTILISE_WIKINI) $req .= INS_CHAMPS_NOM_WIKINI.'="'.genere_nom_wiki($valeur['prenom'],$valeur['nom']).'", ' ;
} elseif (INS_UTILISE_WIKINI) {
$req .= INS_CHAMPS_NOM_WIKINI.'="Structure'.ucfirst(strtolower($valeur['nom'])).'", ' ;
$req .= INS_CHAMPS_NOM_WIKINI.'="'.genere_nom_wiki('Structure',$valeur['nom']).'", ' ;
}
$req .= INS_CHAMPS_MAIL.'="'.$valeur['email'].'", ' ;
$req .= INS_CHAMPS_PASSE.'="'.md5 ($valeur['mot_de_passe']).'", '.
INS_CHAMPS_PAYS.'="'.$valeur['pays'].'", '.
INS_CHAMPS_ADRESSE_1.'="'.$valeur['adresse_1'].'", '.
INS_CHAMPS_ADRESSE_2.'="'.$valeur['adresse_2'].'", '.
INS_CHAMPS_DATE_INSCRIPTION.'=NOW(), '.
INS_CHAMPS_CODE_POSTAL.'="'.$valeur['cp'].'", '.
INS_CHAMPS_VILLE.'="'.$valeur['ville'].'", '.
INS_CHAMPS_EST_STRUCTURE.'="'.$valeur['est_structure'].'", '.
INS_CHAMPS_TELEPHONE.'="'.$valeur['telephone'].'", '.
INS_CHAMPS_FAX.'="'.$valeur['fax'].'", '.
INS_CHAMPS_SITE_INTERNET.'="'.$valeur['site'].'" ';
$req .= INS_CHAMPS_MAIL.'="'.addslashes($valeur['email']).'", ' ;
$req .= INS_CHAMPS_PASSE.'="'.md5($valeur['mot_de_passe']).'", '.
INS_CHAMPS_PAYS.'="'.addslashes($valeur['pays']).'", '.
INS_CHAMPS_ADRESSE_1.'="'.addslashes($valeur['adresse_1']).'", '.
INS_CHAMPS_ADRESSE_2.'="'.addslashes($valeur['adresse_2']).'", '.
INS_CHAMPS_DATE_INSCRIPTION.'=NOW(), '.
INS_CHAMPS_CODE_POSTAL.'="'.addslashes($valeur['cp']).'", '.
INS_CHAMPS_VILLE.'="'.addslashes($valeur['ville']).'", '.
INS_CHAMPS_EST_STRUCTURE.'="'.addslashes($valeur['est_structure']).'", '.
INS_CHAMPS_TELEPHONE.'="'.addslashes($valeur['telephone']).'", '.
INS_CHAMPS_FAX.'="'.addslashes($valeur['fax']).'", '.
INS_CHAMPS_SITE_INTERNET.'="'.addslashes($valeur['site']).'" ';
if (isset($valeur['visible'])) $req .= ', '.INS_CHAMPS_VISIBLE.'="'.$valeur['visible'].'"';
else $req .= ', '.INS_CHAMPS_VISIBLE.'=0';
if (INS_CHAMPS_LETTRE != '') {
if (isset($valeur['lettre'])) {
$req .= ', '.INS_CHAMPS_LETTRE.'="'.$valeur['lettre'].'"';
inscription_lettre('inscrire');
}
else $req .= ', '.INS_CHAMPS_LETTRE.'=0';
else {
$req .= ', '.INS_CHAMPS_LETTRE.'=0';
inscription_lettre('desinscrire');
}
}
if (isset($valeur['visible'])) {
$req .= ', '.INS_CHAMPS_VISIBLE.'="'.$valeur['visible'].'"';
} else $req .= ', '.INS_CHAMPS_VISIBLE.'=0';
if (isset($valeur['sigle_structure'])) {
$req .= ','.INS_CHAMPS_SIGLE_STRUCTURE.'="'.$valeur['sigle_structure'].'"' ;
if (isset($valeur['sigle_structure'])) {
$req .= ', '.INS_CHAMPS_SIGLE_STRUCTURE.'="'.addslashes($valeur['sigle_structure']).'"' ;
}
if (isset($valeur['num_agrement'])) {
$req .= ','.INS_CHAMPS_NUM_AGREMENT.'="'.$valeur['num_agrement'].'"' ;
$req .= ', '.INS_CHAMPS_NUM_AGREMENT.'="'.addslashes($valeur['num_agrement']).'"' ;
}
// traitement du numéro de département pour la france
if ($valeur['pays'] == 'FR') {
362,7 → 349,9
$res .= ligne_inscription (INS_NOM_WIKI, $ligne[INS_CHAMPS_NOM_WIKINI]) ;
}
$res .= ligne_inscription(INS_EMAIL, $ligne[INS_CHAMPS_MAIL]);
$res .= ligne_inscription(INS_SITE_INTERNET, '<a href="'.$ligne[INS_CHAMPS_SITE_INTERNET].'" onclick="javascript:window.open(this.href);return false;">'.$ligne[INS_CHAMPS_SITE_INTERNET].'</a>');
if ($ligne[INS_CHAMPS_SITE_INTERNET]!='') {
$res .= ligne_inscription(INS_SITE_INTERNET, '<a href="'.$ligne[INS_CHAMPS_SITE_INTERNET].'" onclick="javascript:window.open(this.href);return false;">'.$ligne[INS_CHAMPS_SITE_INTERNET].'</a>');
}
$res .= '</dl>'."\n";
$res .= '<br />'."\n";
$res .= '<ul>'."\n";
376,7 → 365,7
$res .= '<br />'."\n";
$res .= '<ul>'."\n";;
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=modifier&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'">'.INS_MODIFIER_INSCRIPTION.'</a></li>'."\n" ;
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=supprimer&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'" onclick="javascript:return confirm(\''.INS_SUPPRIMER_INSCRIPTION.'\' ?);">'.INS_SUPPRIMER_INSCRIPTION.'</a></li>'."\n" ;
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=supprimer&amp;form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'" onclick="javascript:return confirm(\''.INS_SUPPRIMER_INSCRIPTION.'?\');">'.INS_SUPPRIMER_INSCRIPTION.'</a></li>'."\n" ;
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&amp;action=deconnexion">'.INS_DECONNEXION.'</a></li>'."\n" ;
$res .= '</ul>'."\n";
return $res ;
393,7 → 382,11
if ($valeur == '') {
return;
}
return '<dt>'.$label.' : </dt>'."\n".'<dd>'.$valeur.'</dd>'."\n" ;
if (($label == '')or($label == '&nbsp;')) {
return '<dt>&nbsp;</dt>'."\n".'<dd>'.$valeur.'</dd>'."\n" ;
} else {
return '<dt>'.$label.' : </dt>'."\n".'<dd>'.$valeur.'</dd>'."\n" ;
}
}
 
 
424,31 → 417,40
}
 
 
function envoie_passe()
{
$headers['From'] = INS_MAIL_ADMIN_APRES_INSCRIPTION ;
$headers['Subject'] = INS_NOUVEAU_MOT_DE_PASSE;
 
$nouveau_passe = create_new_random(6) ;
 
$body = INS_NOUVEAU_MOT_DE_PASSE_2.$nouveau_passe ;
$body .= INS_NOUVEAU_MOT_DE_PASSE_LAIUS ;
 
// modification du mot de passe dans la base
$requete = "update ".INS_ANNUAIRE." set ".INS_CHAMPS_PASSE."=MD5(\"$nouveau_passe\") where ".INS_CHAMPS_MAIL."=\"".$GLOBALS['username']."\"" ;
function envoie_passe() {
$res='';
$requete = 'SELECT '.INS_CHAMPS_MAIL.' FROM '.INS_ANNUAIRE.' WHERE '.INS_CHAMPS_MAIL.'="'.$_POST['mail'].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
 
// création du mail
if (!mail ($GLOBALS['username'], $headers['Subject'], $body)) {
return 'erreur lors de l\'envoie de mail' ;
if ($resultat->numRows() == 0) {
$res .= '<p class="erreur">'.INS_MAIL_INCONNU_DANS_ANNUAIRE.'</p>'."\n" ;
} else {
include_once PAP_CHEMIN_RACINE.'api/pear/Mail.php' ;
$mail = & Mail::factory('smtp') ;
$headers ['Return-Path'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
$headers ['From'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
$headers ['Subject'] = INS_MOT_DE_PASSE_CHANGE ;
$headers ['Reply-To'] = "<".INS_MAIL_ADMIN_APRES_INSCRIPTION.">" ;
$headers ['To'] = "<".$_POST['mail'].">" ;
$nouveau_passe = create_new_random(6) ;
// modification du mot de passe dans la base
$requete = 'UPDATE '.INS_ANNUAIRE.' SET '.INS_CHAMPS_PASSE.'=MD5("'.$nouveau_passe.'") WHERE '.INS_CHAMPS_MAIL.'="'.$_POST['mail'].'"' ;
$resultat = $GLOBALS['ins_db']->query($requete) ;
if (DB::isError($resultat)) {
die ("Echec de la requete<br />".$resultat->getMessage()."<br />".$resultat->getDebugInfo()) ;
}
$body = INS_NOUVEAU_MOT_DE_PASSE_2.$nouveau_passe ;
$body .= INS_NOUVEAU_MOT_DE_PASSE_LAIUS ;
$mail->send($_POST['mail'], $headers, $body) ;
if (PEAR::isError($mail)) {
$res .= '<p class="erreur">'.INS_PROBLEME_ENVOI_MAIL.'</p>'."\n" ;
return $res ;
}
$res .= '<p class="info">'.INS_NOUVEAU_MOT_DE_PASSE_ENVOYE.'</p>'."\n" ;
}
 
return "<div class=\"titre1_inscription\">".INS_MOT_DE_PASSE_ENVOYE_1.': '.$GLOBALS['mail']."</div>\n".
"<div><br />".INS_MOT_DE_PASSE_ENVOYE_2."</div>\n";
 
return $res ;
}
 
/**
470,7 → 472,7
$mail -> send ($action, $headers, "") ;
if (PEAR::isError ($mail)) {
echo '<div class="erreur">Le mail n\'est pas partie...</div>' ;
echo '<p class="erreur">Le mail n\'est pas parti...</p>' ;
return false ;
}
return true ;
536,7 → 538,7
* @return string un nom wiki valide
*/
 
function genere_nom_wiki ($nom, $prenom) {
function genere_nom_wiki($prenom, $nom) {
// 1. suppression des espaces
$nom = trim ($nom) ;
$prenom = trim ($prenom) ;
546,7 → 548,7
$prenom = trim_non_ascii ($prenom) ;
// Vérification
$nom_wiki = $nom.$prenom ;
$nom_wiki = $prenom.$nom ;
if (!preg_match('/^[A-Z][a-z]+[A-Z,0-9][A-Z,a-z,0-9]*$/', $nom_wiki)) {
$nom_wiki = chr(rand(65, 90)).$nom_wiki.chr(rand(65, 90)) ;
}
647,6 → 649,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.4 2005/11/17 18:48:02 florian
* corrections bugs + amélioration de l'application d'inscription
*
* Revision 1.3 2005/10/03 09:45:21 alexandre_tb
* suppression d'un echo
*