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 ('/&/', '&', $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 ('/&/', '&', $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.' ' ; |
$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 ('/&/', '&', str_replace ('&', '&', $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().'&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().'&action=modifier&form_structure='.$ligne[INS_CHAMPS_EST_STRUCTURE].'">'.INS_MODIFIER_INSCRIPTION.'</a></li>'."\n" ; |
$res .= '<li><a href="'.$GLOBALS['ins_url']->getURL().'&action=supprimer&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().'&action=supprimer&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().'&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 == ' ')) { |
return '<dt> </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 |
* |