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 21/09/2011, 17h14   #1
Invité de passage
 
Inscription : septembre 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 1
Points : 0
Points : 0
Par défaut index d'une variable de session inexsitante avec xajax

Salut,
j'ai un problème avec des fonctions php que j'utilise avec xajax dans un code html (un formulaire d'inscription). Quand je set une variable de session dans une fonction php appelée depuis un event onblur="mafonction()" et que j'essaie de la lire depuis une 2e fonction appelée aussi par l'event onblur="xajax_fonctionphp" firebug me dit que l'index de la variable de session n'existe pas.

Voilà le formulaire:
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
 
 <form id="formInsc" action="javascript:void(null);">
				 <fieldset>
				 	<legend>Votre compte</legend>
				 	<div>
				 		<label class="label_left" for="pseudo">Pseudo</label>
				 		<input class="input_right" id="pseudo" name="pseudo" value="" type="text" maxlength="20" tabindex="10"
				 			onfocus="xajax_waiting_check_value('pseudo');" onblur="xajax_check_pseudo(document.getElementById('pseudo').value);"/>
				 		<div class="image_value" id="image_pseudo"></div>
				 		<div class="clear"></div>
				 		<div class="info_input" id="info_pseudo"></div>
				 	</div><br />
 
				 	<div>
				 		<label class="label_left" for="mdp1">Mot de passe</label>
				 		<input class="input_right" id="mdp1" name="mdp1" value="" type="password" maxlength="40" tabindex="20"
				 			onfocus="xajax_waiting_check_value('mdp1');" onblur="xajax_check_mdp1(document.getElementById('mdp1').value);"/>
				 		<div class="image_value" id="image_mdp1"></div>
				 		<div class="clear"></div>
				 		<div class="info_input" id="info_mdp1"></div>
				 	</div><br />
				 	<div>
				 		<label class="label_left" for="mdp2">Mot de passe <i>(répeter)</i></label>
				 		<input class="input_right" id="mdp2" name="mdp2" value="" type="password" maxlength="40" tabindex="30"
				 			onfocus="xajax_waiting_check_value('mdp2');" onblur="xajax_check_mdp2(document.getElementById('mdp2').value);"/>
				 		<div class="image_value" id="image_mdp2"></div>
				 		<div class="clear"></div>
				 		<div class="info_input" id="info_mdp2"></div>
				 	</div><br />
				 	<div>
				 		<label class="label_left" for="email">Email</label>
				 		<input class="input_right" id="email" name="email" value="" type="text" maxlength="75" tabindex="40" />
				 		<div class="clear"></div>
				 	</div>
				 </fieldset>
				 <fieldset>
				 	<legend>Protection</legend>
				 	<p>/!\ Ce site est un site privé. Pour vous enregistré vous devez entrer une clé.</p><br />
				 	<div>
					 	<label class="label_left" for="key">Clé</label>
					 	<input class="input_right" id="key" name="key" value="" type="text" tabindex="100" />
					 	<div class="clear"></div><br />
					 	<div id="keyButton"><input type="button" value="Activer ma clé" id="key_button" onclick="xajax_test();" /></div>
				 	</div>
				 </fieldset>
				 <div id="submitButton">
				 	<input type="reset" value="Réinitialiser" />
				 	<input type="button" value="S'enregistrer" name="submit" id="submit" disabled="disabled" />
				 </div>
				 </form>
Et la page php qui contient les fonctions:
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
 
<?php
if (!defined('INC_FILE')) {
	echo '<h1>Erreur !</h1><p>Vous ne pouvez pas accéder à ce fichier directement.</p>';
	exit();
}
 
function waiting_check_value ($champ) {
	$xr=new xajaxResponse();
	$xr->assign('image_'.$champ, 'innerHTML', '<img src="images/waiting.gif" alt="" />');
	return $xr;
}
 
function check_pseudo ($str) {
	$xr=new xajaxResponse();
	if (preg_match('#^[a-zA-Z0-9]{3,20}$#', $str)) {
		global $db;
		$stmt=$db->prepare(SQL_INSC_CHECK_PSEUDO_USED);
		$stmt->bindValue(':pseudo', $str);
		$stmt->execute();
		$tab=$stmt->fetch();
		if ($tab['nbr'] == 0) {
			$xr->assign('image_pseudo', 'innerHTML', '<img src="images/fleche_ok.png" alt="pseudo ok" />');
			$xr->assign('info_pseudo', 'style.color', 'white');
			$xr->assign('info_pseudo', 'style.backgroundColor', 'green');
			$xr->assign('info_pseudo', 'innerHTML', 'Le pseudo est valide.');
			$xr->assign('info_pseudo', 'style.display', 'block');
		}
		else {
			$xr->assign('image_pseudo', 'innerHTML', '<img src="images/fleche_pasok.png" alt="pseudo invalide" />');
			$xr->assign('info_pseudo', 'style.color', 'white');
			$xr->assign('info_pseudo', 'style.backgroundColor', 'red');
			$xr->assign('info_pseudo', 'innerHTML', 'Le pseudo est déjà utilisé par un membre, veuillez en choisir un autre.');
			$xr->assign('info_pseudo', 'style.display', 'block');
		}
	}
	else {
		$xr->assign('image_pseudo', 'innerHTML', '<img src="images/fleche_pasok.png" alt="pseudo invalide" />');
		$xr->assign('info_pseudo', 'style.color', 'white');
		$xr->assign('info_pseudo', 'style.backgroundColor', 'red');
		$xr->assign('info_pseudo', 'innerHTML', 'Le pseudo doit contenir entre 3 et 20 caractères, ceux ci pouvant être les lettres de a à z en minuscule et majuscule et les chiffres de 0 à 9.');
		$xr->assign('info_pseudo', 'style.display', 'block');
	}
	return $xr;
}
 
function check_mdp1 ($str) {
	if (session_id()=='')
		session_start();
	$xr=new xajaxResponse();
	if (isset($_SESSION['tryRegister']['mdp2']) && $_SESSION['tryRegister']['mdp2'] != false) {
		if ($_SESSION['tryRegister']['mdp2'] == $str) {
			$_SESSION['tryRegister']['mdp1']=$str;
			$xr->assign('image_mdp1', 'innerHTML', '<img src="images/fleche_ok.png" alt="mot de passe valide" />');
			$xr->assign('info_mdp1', 'style.color', 'white');
			$xr->assign('info_mdp1', 'style.backgroundColor', 'green');
			$xr->assign('info_mdp1', 'innerHTML', 'Les mots de passe correspondent.');
			$xr->assign('info_mdp1', 'style.display', 'block');
		}
		else {
			$_SESSION['tryRegister']['mdp1']=false;
			$xr->assign('image_mdp1', 'innerHTML', '<img src="images/fleche_pasok.png" alt="mot de passe invalide" />');
			$xr->assign('info_mdp1', 'style.color', 'white');
			$xr->assign('info_mdp1', 'style.backgroundColor', 'red');
			$xr->assign('info_mdp1', 'innerHTML', 'Les mots de passe ne correspondent pas.');
			$xr->assign('info_mdp1', 'style.display', 'block');
		}
	}
	else {
		$len=strlen($str);
		if ($len <= 40 && $len >= 7) {
			$_SESSION['tryRegister']['mdp1']=$str;
			$xr->assign('image_mdp1', 'innerHTML', '<img src="images/fleche_ok.png" alt="mot de passe valide" />');
			$xr->assign('info_mdp1', 'style.color', 'white');
			$xr->assign('info_mdp1', 'style.backgroundColor', 'green');
			$xr->assign('info_mdp1', 'innerHTML', 'Le mot de passe est valide.');
			$xr->assign('info_mdp1', 'style.display', 'block');
		}
		else {
			$_SESSION['tryRegister']['mdp1']=false;
			$xr->assign('image_mdp1', 'innerHTML', '<img src="images/fleche_pasok.png" alt="mot de passe invalide" />');
			$xr->assign('info_mdp1', 'style.color', 'white');
			$xr->assign('info_mdp1', 'style.backgroundColor', 'red');
			$xr->assign('info_mdp1', 'innerHTML', 'Le mot de passe doit contenir au minimum 7 caractères, et au maximum 40.');
			$xr->assign('info_mdp1', 'style.display', 'block');
		}
	}
	session_write_close();
	return $xr;
}
 
function check_mdp2 ($str) {
	if (session_id()=='')
		session_start();
	$xr=new xajaxResponse();
	$len=strlen($str);
	$xr->assign('email', 'innerHTML', $_SESSION['tryRegister']['mdp1']); return $xr;
	if (isset($_SESSION['tryRegister']['mdp1']) && $_SESSION['tryRegister']['mdp1'] != false) {
		if ($_SESSION['tryRegister']['mdp1'] == $str) {
			$_SESSION['tryRegister']['mdp2']=$str;
			$xr->assign('image_mdp2', 'innerHTML', '<img src="images/fleche_ok.png" alt="mot de passe valide" />');
			$xr->assign('info_mdp2', 'style.color', 'white');
			$xr->assign('info_mdp2', 'style.backgroundColor', 'green');
			$xr->assign('info_mdp2', 'innerHTML', 'Les mots de passe correspondent.');
			$xr->assign('info_mdp2', 'style.display', 'block');
		}
		else {
			$_SESSION['tryRegister']['mdp2']=false;
			$xr->assign('image_mdp2', 'innerHTML', '<img src="images/fleche_pasok.png" alt="mot de passe invalide" />');
			$xr->assign('info_mdp2', 'style.color', 'white');
			$xr->assign('info_mdp2', 'style.backgroundColor', 'red');
			$xr->assign('info_mdp2', 'innerHTML', 'Les mots de passe ne correspondent pas.');
			$xr->assign('info_mdp2', 'style.display', 'block');
		}
	}
	else {
		if ($len <= 40 && $len >= 7) {
			$_SESSION['tryRegister']['mdp2']=$str;
			$xr->assign('image_mdp2', 'innerHTML', '<img src="images/fleche_ok.png" alt="mot de passe valide" />');
			$xr->assign('info_mdp2', 'style.color', 'white');
			$xr->assign('info_mdp2', 'style.backgroundColor', 'green');
			$xr->assign('info_mdp2', 'innerHTML', 'Le mot de passe est valide.');
			$xr->assign('info_mdp2', 'style.display', 'block');
		}
		else {
			$_SESSION['tryRegister']['mdp2']=$str;
			$xr->assign('image_mdp2', 'innerHTML', '<img src="images/fleche_pasok.png" alt="mot de passe invalide" />');
			$xr->assign('info_mdp2', 'style.color', 'white');
			$xr->assign('info_mdp2', 'style.backgroundColor', 'red');
			$xr->assign('info_mdp2', 'innerHTML', 'Le mot de passe doit contenir au minimum 7 caractères, et au maximum 40.');
			$xr->assign('info_mdp2', 'style.display', 'block');
		}
	}
	session_write_close();
	return $xr;
}
?>
Quand je set une variable de session dans un fichier php qui génère le formulaire, et que j'essais de l'afficher dans une fonction appelée depuis un event onfocus d'un champ du formulaire, la valeur est bien existante

Voilà si quelqu'un pouvait m'aider svp ? D'avance merci pour votre aide.
@+
Hiak06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h27.


 
 
 
 
Partenaires

Hébergement Web