Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2006, 11h12   #1
Nouveau Membre du Club
 
Inscription : janvier 2005
Messages : 198
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 198
Points : 32
Points : 32
Par défaut [Sécurité] test d'un mot de passe et creation compte

Bonjour,

Voilà mon problème : J'ai un script ajout_compte.php qui permet de saisir un mot de passe et de tester sa validité . Je voudrais, quand le mot de passe est bien sécurisé (vert), déclencher dans ce même programme un script php ou une fonction,qui va créer un compte dans l'annuaire ldap.

Code Javascript :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function evalPwd(mdp)
{
	var cmpx = 0;
 
	if (mdp.length >=6 )
	{
		cmpx++;
 
		if (mdp.search("[A-Z]") != -1)
		{
			cmpx++;
		}
 
		if (mdp.search("[0-9]") != -1)
		{
			cmpx++;
		}
 
		if (mdp.length >= 8 || mdp.search("[\x20-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]") != -1)
		{
			cmpx++;
		}
 
	}
 
	if (cmpx == 0)
	{
		document.getElementById("weak").className = "nrm";
		document.getElementById("medium").className = "nrm";
		document.getElementById("strong").className = "nrm";
	}
	else if (cmpx == 1)
	{
		document.getElementById("weak").className = "red";
		document.getElementById("medium").className = "nrm";
		document.getElementById("strong").className = "nrm";
	}
	else if (cmpx == 2)
	{
		document.getElementById("weak").className = "yellow";
		document.getElementById("medium").className = "yellow";
		document.getElementById("strong").className = "nrm";
	}
	else
	{
		document.getElementById("weak").className = "green";
		document.getElementById("medium").className = "green";
		document.getElementById("strong").className = "green";
 
	}	
}
Code HTML :
1
2
3
4
5
6
7
8
9
10
11
 
<body bgcolor="#FFFFFF" text="#000000">
<form>
  <p>Veuillez saisir un mot de passe comprenant des lettres, chiffres et carat&egrave;res 
    sp&eacute;ciaux (8c) 
    <input type="password" size="8" onkeyup="evalPwd(this.value);"  name="mdp" maxlength="8" />
    <input type="hidden" name="test" value="0">
    <br />
  </p>
  <div id="sm"><ul><li id="weak" class="nrm">Faible</li><li id="medium" class="nrm">Moyen</li><li id="strong" class="nrm">Fort</li></ul></div>
  </form>

Je ne vois pas comment je peux faire . Si je fais une fonction avec le script ci-dessous
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
function ajout_compte(Submit)
{
 <?php
 
echo $test;
// Génération du mot de passe (4 1ere lettre uid + nombre aléatoire sur 4 chiffres) 
 
//		  $nb_aleatoire=rand(1000, 9999);
//		  $mdp = substr($uid,0,4).$nb_aleatoire;
 
// crypter le mot de passe
 
          $mdp_crypt=crypt("$mdp");
 
// Conversion 1ère lettre en majuscule  
 
          $nom_usuel = ucfirst($nom_usuel);
          $prenom=ucfirst($prenom);
 
// transfert d'informations 
 
          $info["objectClass"][0]="iufmpcPerson";
		  $info["objectClass"][1]="inetorgPerson";
		  $info["objectClass"][2]="eduPerson";
//          $info["objectClass"][3]="organizationalUnit";
//		  $info["objectClass"][4]="supannPerson";
//		  $info["objectClass"][5]="person";
	  	  $info["eduPersonAffiliation"]="student";
//		  $info["supannCivilite"]="$civilite";
		  $info["sn"]="$nom_usuel";
		  $info["givenname"]="$prenom";
		  $info["cn"]="$nom_usuel $prenom";
		  $info["displayname"]="$prenom $nom_usuel";
		  $info["uid"]="$uid";
          $info["birthdate"]="$datenaiss";
          $info["userPassword"]="{crypt}$mdp_crypt";
		  $info["title"]="$formation$annee $discipline";
          $info["datecreation"]="$date_saisie";
          $info["datefermeture"]="31062007";
		  $info["enservice"]="TRUE";
		  $info["validcharte"]="FALSE";
          $rdn="uid=".$info ["uid"].",ou=people,dc=poitou-charentes,dc=iufm,dc=fr"; 
 
// Ajout d'un enregistrement dans l'annuaire LDAP
 
          $r = ldap_add($ldapconn,$rdn,$info);
 
// Récapitulatif avec envoi par mail
 
          if ($r) 
			   print ("Votre compte a été crée. Informations à conserver : ");
			   print ("uid= $uid "); 
			   print ("mot de passe =  $mdp ");
}}
 
?>
}
</script>
Dès que je saisie le mdp le script ajout_compte se fait dans la foulée.
J'ai essayé de le mettre dans le esle (cas ou le mdp est vert)... ça marche pas.

J'ai essayé un onclick(mdp) exécuter lla fonction ajout_compte... ça marche pas.

Au secours ... ça fait plusieurs jours que je suis là dessus et je ne vois pas comment m'en sortir
pascale86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 17h38   #2
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Je ne comprends pas tres bien...
On dirait que tu essaie de lancer une fonction php avec du javascript...
Mais cela n'est pas possible directement...

Ta fonction javascript teste si le mot de passe est valide et lui attribue un green. Donc dans ce cas, tu changes la valeur d'un élément du formulaire et le tour est joué....

En gros tu rajoute dans ton formulaire cet élément :

Code HTML :
<input type="hidden" name="mdpgreen" value="0">

Quand ta fonction javascript evalue ton mot de passe et si il est a green, tu change la valeur de mdpgreen en 1...

Ainsi dans ton script PHP lorsque tu fera un check sur mdpgreen tu pourras lancer ta fonction :

Code :
1
2
3
if ($mdpgreen) {
$r = ldap_add($ldapconn,$rdn,$info);
}
Et le tour est joué....
J'espère que c'est bien ce que tu souhaitais

@+
cadou
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h08.


 
 
 
 
Partenaires

Hébergement Web