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 12/06/2006, 11h54   #1
Invité de passage
 
Inscription : novembre 2004
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 23
Points : 4
Points : 4
Envoyer un message via MSN à atog
Par défaut session, détecter et fermer automatiquement une session

salut,
j'ai des soucis sur les sessions... je voudrais tester si une session existe afin de la tuer tout de suite... cas où un administrateur se connecte avec plusieurs sessions différentes

mon code prend les nouveaux paramètres, mais reste dans l'ancienne session à chaque fois

j'ai essayé ça (mais ça ne marche hélas pas) :
Code :
	if(!session_is_registered("login")) {session_destroy();  }
sinon mes codes sont comme ça, index.php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
	<form action="identit.php" method='post' name='identifier'>
	<fieldset>
	<legend>Identification</legend>	
	<table align="center" border="0">
	  <tr>
	    <td>Nom d utilisateur :</td>
	    <td><input type="text" name="login" maxlength="250"></td>
	  </tr>
	  <tr>
	    <td>Mot de Passe</td>
	    <td><input type="password" name="pass" maxlength="10"></td>
	  </tr>
	  <tr>
	    <td colspan="2" align="center"><br><br><input type="submit" value="se connecter"></td>
	  </tr>
	</table>
	</fieldset>
	</form>
et identit.php :
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
 
<?
include (connexions.php');
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);
  $sql = "select pwd, activite from user where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  $data = mysql_fetch_assoc($req);
 
  if($data['pwd'] != $pass) {
    echo '<p><font color="#ff0000">Mauvaise saisie de codes. Merci de bien vouloir recommencer</font></p>';
    include('index.php');
    exit;
  }
  else {
	session_start();
    $_SESSION['login'] = $login;
	$_SESSION['pass'] = $pass;
	session_register("login","pass");
	include ('presentation.php');
	echo '<font color="#3300ff">Bonjour <b>'.$login.'</b><br>domaine d\'activité : '.$data['activite'].'</font><br><br>';
	echo '<table border="0" summary="menu administration" align="center">
	<tr>
		<td align="center"><A href="hote/php/'.$login.'/index.php"><img src="../images/web_voir.jpg" width="177" height="181" border="2" alt="pour voir vos pages web actuelles"><br>Voir vos pages Web</A><br><br></td>
		<td align="center"><A href="hote/user_admin.php"><img src="../images/web_gerer.jpg" width="177" height="181" border="2" alt="pour créer ou modifier vos pages web"><br>Gérer vos pages Web</A><br><br></td>
		<td align="center"><A href="user_mail.php"><img src="../images/web_email.jpg" width="177" height="181" border="2" alt="pour envoyer un email à l administrateur du site"><br>Contacter l\'Administrateur</A><br><br></td>
	</tr>';
	if ($data['activite'] == 'administrateur')
	{echo '	<tr><td align="center"><A href="user_massivemail.php"><img src="../images/web_liste.jpg" width="177" height="181" border="2" alt="pour envoyer un message à la liste de diffusion"><br>Liste de diffusion<br>Administrateur seulement</A></td><td>&nbsp;</td><td align="center"><A href="usu.php"><img src="../images/super-utilisateur.jpg" width="177" height="181" border="2" alt="administrer les comptes d utilisateur"><br>CONSOLE<br>Super Administrateur</A><br><br></td></tr>';}
	echo '</table>';
	echo '</div>';
	echo '</td></tr></table>';
  }    
}
else {
  echo '<p><font color="#ff0000">Vous avez oublié de remplir un champ.</font></p>';
   include('index.php');
   exit;
}
?>

voilou... une idée qqn ?
atog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 13h45   #2
NoT
Membre confirmé
 
Inscription : février 2004
Messages : 237
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 237
Points : 261
Points : 261
lut,

Code :
if(!session_is_registered("login")) {session_destroy();  }
signifie "si la variable de session login n'existe pas, alors on détruit la session", or c'est l'inverse que tu veux faire il me semble.
NoT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2006, 16h04   #3
Invité de passage
 
Inscription : novembre 2004
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 23
Points : 4
Points : 4
Envoyer un message via MSN à atog
oui tu as raison, le ! m'a échappé... mais cela ne fait rien non plus... mon deuxième log+pwd me permet de passer, mais ça conserve toujours l'ancienne session

j'ai mis des 'echo' pour voir, ça ne passe pas le test visiblement, mauvaise syntaxe ? autre ?

ça me fait tourner en bourrique ce truc !
atog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2006, 12h40   #4
Membre confirmé
 
Avatar de spilliaert
 
Inscription : septembre 2005
Messages : 270
Détails du profil
Informations personnelles :
Âge : 20
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 270
Points : 227
Points : 227
et si tu utilisais plutôt le tableau super-global $_SESSION[] ? comme le dit la notice d'avertissement et 3eme commentaire de ceci
spilliaert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 11h01   #5
Invité de passage
 
Inscription : novembre 2004
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 23
Points : 4
Points : 4
Envoyer un message via MSN à atog
oui le troisième commentaire semble suggérer de n'utiliser que la super-globale $_session...

je vais aller voir comment ça fonctionne, mais si y'en a qui ont un tuyau ou deux, je suis preneur !
atog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 12h18   #6
Membre confirmé
 
Avatar de spilliaert
 
Inscription : septembre 2005
Messages : 270
Détails du profil
Informations personnelles :
Âge : 20
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 270
Points : 227
Points : 227
Citation:
Envoyé par atog
je vais aller voir comment ça fonctionne, mais si y'en a qui ont un tuyau ou deux, je suis preneur !
il n'y a qu'à faire
Code :
unset($_SESSION['blabla']);
spilliaert 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 12h39.


 
 
 
 
Partenaires

Hébergement Web