19,7 → 19,7 |
// | 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.class.php,v 1.15 2006-12-01 13:23:16 florian Exp $ |
// CVS : $Id: inscription.class.php,v 1.16 2007-03-22 15:58:35 alexandre_tb Exp $ |
/** |
* Inscription |
* |
31,7 → 31,7 |
*@author Alexandre GRANIER <alexandre@tela-botanica.org> |
//Autres auteurs : |
*@copyright Tela-Botanica 2000-2004 |
*@version $Revision: 1.15 $ $Date: 2006-12-01 13:23:16 $ |
*@version $Revision: 1.16 $ $Date: 2007-03-22 15:58:35 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
146,12 → 146,12 |
function construitFormulaire($url) |
{ |
$squelette =& $this->defaultRenderer(); |
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'<table style="border:0;width:100%;">'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n"); |
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'<table class="inscription_table">'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n"); |
$squelette->setElementTemplate( '<tr>'."\n". |
'<td style="font-size:12px;width:140px;text-align:right;">'."\n".'{label}'. |
'<td class="inscription_cellule_gauche">'."\n".'{label}'. |
'<!-- BEGIN required --><span class="symbole_obligatoire"> *</span><!-- END required -->'."\n". |
' :</td>'."\n". |
'<td style="text-align:left;padding:5px;"> '."\n".'{element}'."\n". |
'<td class="inscription_cellule_droite"> '."\n".'{element}'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
'</td>'."\n". |
'</tr>'."\n"); |
169,11 → 169,78 |
$this->addElement('text', 'email', INS_EMAIL) ; |
$this->addRule('email', INS_EMAIL_REQUIS, 'required','', 'client') ; |
$this->addRule('email', INS_MAIL_INCORRECT, 'email', '', 'client') ; |
$this->addElement('password', 'mot_de_passe', INS_MOT_DE_PASSE, array('size' => '10')) ; |
|
// Le mot de passe |
$this->addElement('html', '<tr><td colspan="2"><span class="commentaire">'.INS_LAIUS_MOT_DE_PASSE.'</span></td></tr>'); |
$this->addElement('password', 'mot_de_passe', INS_MOT_DE_PASSE, array('size' => '10', 'onkeyup' => 'test_robustesse()')) ; |
$this->addElement('password', 'mot_de_passe_repete', INS_REPETE_MOT_DE_PASSE, array('size' => '10')) ; |
$this->addRule('mot_de_passe', INS_MOT_DE_PASSE_REQUIS, 'required', '', 'client') ; |
$this->addRule('mot_de_passe_repete', INS_MOT_DE_PASSE_REQUIS, 'required', '', 'client') ; |
$this->addRule(array ('mot_de_passe', 'mot_de_passe_repete'), INS_MOTS_DE_PASSE_DIFFERENTS, 'compare', '', 'client') ; |
|
// Un template special pour la ligne de mot de passe |
// avec le niveau de securite |
$squelette->setElementTemplate('<tr>'."\n". |
'<td class="inscription_cellule_gauche">'."\n".'{label}'. |
'<!-- BEGIN required --><span class="symbole_obligatoire"> *</span><!-- END required -->'."\n". |
' :</td>'."\n". |
'<td class="inscription_cellule_droite"> '."\n".'{element}'."\n". |
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n". |
' '.INS_LAIUS_ROBUSTESSE.' <span id="histo_robustesse" style="font-weight:bold;"></span>'. |
'</td>'."\n". |
'</tr>'."\n", 'mot_de_passe'); |
// Le javascript pour gérer la sécurité |
GEN_stockerCodeScript(' |
function test_robustesse() { |
msg=""; |
cchi=1;cmaj=1;cmin=1;cdiv=1;cspe=1 |
pw = document.formulaire_inscription.mot_de_passe.value; |
if (document.getElementById) { |
robustesse = document.getElementById(\'histo_robustesse\'); |
} else if (document.all) { |
robustesse = document.all[\'histo_robustesse\']; |
} else { |
robustesse = document.layers[\'histo_robustesse\']; |
} |
|
pw = pw.replace(/(^\s+)|(\s+$)/g,\'\'); |
lpw = pw.length; |
for (i = 0; i < lpw; i++) { |
ac=pw.charCodeAt(i); |
if(ac<128){ |
// Code ascii de 48 a 57 : les chiffres |
if(ac>47 && ac<58){cchi+=1} |
// de 65 a 90 lettres majuscules |
else if(ac>64 && ac<91){cmaj+=1} |
// 97 a 122 lettres minuscules |
else if(ac>96 && ac<123){cmin+=1} |
else cdiv+=1 |
} // les caracteres speciaux > 122 |
else {cspe+=1} |
} |
// Formule de calcul de la robustesse |
cx = cchi * cmaj * cmin * cdiv * cspe; |
cx= Math.round(Math.log(cx*cx)); |
|
if (lpw < 4) { |
robustesse.style.color = "#FF0000"; |
msg = "Trop court" ; |
} else { |
switch (cx) { |
case 3: msg = "Faible"; |
robustesse.style.color = "#AA00AA"; |
break; |
case 4: |
case 5: msg = "moyen"; |
robustesse.style.color = "#5500CC"; |
break; |
default : msg = "élevé"; |
robustesse.style.color = "#0000FF"; |
} |
} |
robustesse.innerHTML = msg; |
} |
'); |
$this->addElement('text', 'nom', INS_NOM) ; |
$this->addRule('nom', INS_NOM_REQUIS, 'required', '', 'client') ; |
$this->addElement('text', 'prenom', INS_PRENOM) ; |