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 31/12/2010, 15h31   #1
Futur Membre du Club
 
Inscription : juin 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 69
Points : 18
Points : 18
Envoyer un message via MSN à christophe_s46
Par défaut session_is_registered

Bonjour
J'ai le même problème depuis passage à PHP 5.3.0,

Dans la page ou je m'authentifie, je rentre le login et le mot de passe et j'arrive sur une page ou j'ai encore laissé "session_is_registered", la session s'ouvre sans problème sauf le message précisant "Deprecated: Function session_is_registered() is deprecated " ce qui est normal car je l'ai laissé sur cette page "session_is_registered"
Par contre si je vais sur la page ou j'ai remplacé "session_is_registered" par $_SESSION, ca ne fonctionne pas car message "erreur d'authentification"

Pouvez vous m'aider ?

Code avec session_is_registered
Code :
1
2
3
4
5
6
7
8
9
 
<?php
session_start();
if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin"){  
}
else {
header("Location:index.php?erreur=intru");
}
?>
remplacé par:

Code :
1
2
3
4
5
6
7
8
9
 
<?php
session_start();
if (!isset($_SESSION['authentification'] && $_SESSION['privilege'])) == "admin"){    
}
else {
header("Location:index.php?erreur=intru");
}
?>
Dans la pge ou on doit s'authentifier on retrouve le code:

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
 
<?php
 
session_start(); 
 
if (isset($_POST['login'])){
	$login = $_POST['login']; 
	$pass = md5($_POST['pass']);
 
mysql_select_db($base, $connexion);
$verif_query=sprintf("SELECT * FROM users_info WHERE login='$login' AND pass='$pass'"); 
$verif = mysql_query($verif_query, $connexion) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
 
 
	if ($utilisateur) {	
	    session_register("authentification"); 
 
		$_SESSION['privilege'] = $row_verif['privilege'];  
		$_SESSION['nom'] = $row_verif['nom']; 
		$_SESSION['prenom'] = $row_verif['prenom']; 
		$_SESSION['login'] = $row_verif['login']; 
		$_SESSION['pass'] = $row_verif['pass']; 
 
		header("Location:accueil.php?login=".$row_verif['login']);
}
	else {
		header("Location:index.php?erreur=login");
 
     }
 
}
 
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ 
$prenom = $_SESSION['prenom']; 
session_unset("authentification");
header("Location:index.php?erreur=delog");
}
?>
Pouvez vous m'aider à résoudre mon problème ?
merci
christophe_s46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 15h37   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
$authentification n'existe pas, donc session_register("authentification"); ne peux pas fonctionner
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 15h56   #3
Futur Membre du Club
 
Inscription : juin 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 69
Points : 18
Points : 18
Envoyer un message via MSN à christophe_s46
Merci pour votre réponse,
Je dois donc mettre $authentification à la place ?

Code :
1
2
3
4
5
6
7
8
9
 
<?php
session_start();
if (!isset($_SESSION[$authentification] && $_SESSION['privilege'])) == "admin"){    
}
else {
header("Location:index.php?erreur=intru");
}
?>
christophe_s46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 18h14   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par christophe_s46 Voir le message
Merci pour votre réponse,
Je dois donc mettre $authentification à la place ?

Code :
1
2
3
4
5
6
7
8
9
 
<?php
session_start();
if (!isset($_SESSION[$authentification] && $_SESSION['privilege'])) == "admin"){    
}
else {
header("Location:index.php?erreur=intru");
}
?>
faire un

$_SESSION['authentification'] = true;
a la place de
session_register("authentification");
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 20h26   #5
Futur Membre du Club
 
Inscription : juin 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 69
Points : 18
Points : 18
Envoyer un message via MSN à christophe_s46
avec ce code la session s'ouvre:
Code :
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
if ($_SESSION['authentification'] && $_SESSION['privilege'] = TRUE) 
  { 
  echo "OK";
  }
else {
header("Location:index.php?erreur=intru");
}
?>
mais les droits admin ne fonctionnent pas, comment je dois faire pour rajouter les droits admin ?
Merci
christophe_s46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 14h14   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
ton expression n'est pas bonne:
Code :
$_SESSION['authentification'] && $_SESSION['privilege'] = TRUE
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 13h55   #7
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Deux choses :
- la comparaison d'égalité c'est == (voire ===) Si tu utilises = true (à la place de == true) dans une condition, ta condition sera toujours validée

- l'équivalent de session_is_registered c'est isset et pas !isset

Donc :
Code :
1
2
3
4
5
6
if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin")
//devient 
if (isset($_SESSION['authentification']) && $_SESSION['privilege'] == "admin")
 
//voire si on veut être rigoureux :
if (isset($_SESSION['authentification']) && isset($_SESSION['privilege']) && $_SESSION['privilege'] == "admin")
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2011, 10h56   #8
Futur Membre du Club
 
Inscription : juin 2005
Messages : 69
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 69
Points : 18
Points : 18
Envoyer un message via MSN à christophe_s46
Par défaut Merci

Bonjour et merci ca fonctionne
merci beaucoup
christophe_s46 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 16h11.


 
 
 
 
Partenaires

Hébergement Web