Deprecated: Function session_is_registered()

Fermé
bugs2010 - 16 déc. 2010 à 15:02
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 17 déc. 2010 à 09:08
Bonjour,

je créer actuellement mon site et j'ai un message d'erreur : "Deprecated: Function session_is_registered() is deprecated in" qui a la base n'apparais pas sur mon serveur free.
enfaite cette page et un volet qui et en include dans ma page index.php.

voici le script :

<div id="volet">
<?php
if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin"){ ?>
<div id="volet1">
<a href="index.php?page=2">- menu1</a><br />
<a href="index.php?page=5">- menu1</a><br />
</div>
<div id="volet2">
<a href="index.php?page=30">- menu1</a><br />
<a href="index.php?page=13">- menu1</a><br />
<a href="index.php?page=12">- menu1</a><br />
<a href="index.php?page=35">- menu1</a><br />
</div>
<?php
}
else {
?>
<div id="identif">
<form method="post" action="traitement1.php">
<p>
<input type="text" name="login" id="login" value="Identifiant" onfocus="if(this.value=='Identifiant')this.value='';" onblur="if(this.value=='')this.value='Identifiant';"/>
<input type="password" name="pass" id="pass" value="Mot de passe" onfocus="if(this.value=='Mot de passe')this.value='';" onBlur="if(this.value=='')this.value='Mot de passe';"/>

<input type="submit" value="s'identifier" /></p>
</form>
</div>
<div id="volet1">
<a href="index.php?page=2">- menu1</a><br />
<a href="index.php?page=5">- menu1</a><br />
</div>
<div id="volet2">
<a href="index.php?page=30">- menu1</a><br />
<a href="index.php?page=13">- menu1</a><br />
<a href="index.php?page=12">- menu1</a><br />
<a href="index.php?page=35">- menu1</a><br />
</div>
<?php } ?>
</div>

merci pour votre aide

20 réponses

Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 15:14
Bonjour,
Deprecated signie que la "fonction" utilisée est obsolète,
Maintenant il faut utiliser ceci :
<?php
session_start();
$_SESSION['bidule'] = "Bidule";
?>

0
en effectuant cela j'ai cette erreur :
Notice: A session had already been started - ignoring session_start() in

Notice: Undefined index: privilege in

<?php
session_start();

if ($_SESSION['privilege'] == "admin"){ ?>
<div id="volet">
<div id="volet1">
<a href="index.php?page=2">- menu1</a><br />
<a href="index.php?page=5">- menu1</a><br />
</div>
<div id="volet2">
<a href="index.php?page=30">- menu1</a><br />
<a href="index.php?page=13">- menu1</a><br />
<a href="index.php?page=12">- menu1</a><br />
<a href="index.php?page=35">- menu1</a><br />
</div>
</div>
<?php
}
else {
?>
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 15:23
Cela signifie qu'un session_start() est déjà ouvert, donc tu l'ouvres deux fois...
Cette page est-elle apellé dans une autre page ? (ce qui pourrait causé le souci de deux session_start() ouvert
0
oui effectivement sur la page index.php j'include cette page.
donc je supprime session_start
0
apres suppression de session_start je me retrouve avec l'erreur suivant :
Notice: Undefined index: privilege in
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 15:32
Apparement il ne retrouve pas ta session appellé privilege,
Sur quelle page lui donnes-tu une valeur ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je donne une valeur sur la page index.php

<?php require ("include/connexion.php"); ?>
<?php

session_start();

if (isset($_POST['login'])){
$login = $_POST['login'];
$pass = md5($_POST['pass']);


mysql_select_db($base, $db);
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'");
$verif = mysql_query($verif_query, $db) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);


if ($utilisateur) {
session_register("authentification");

$_SESSION['niveau'] = $row_verif['niveau'];
$_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:index.php?page=11");
}
else {
header("Location:index.php?page=7");
}
}


if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){
$prenom = $_SESSION['prenom'];
session_unset("authentification");
header("Location:index.php?page=10");
}
?>
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 15:50
Tu as deux fois l'ouverture de la balise php
Sinon sur cette page essayes de faire un echo de ta session ;)
0
comment faire cette echo de session
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 15:56
Tout simplement :
echo $_SESSION['privilege'];

sur ta page index
0
mais en faite je ne comprends pas car en faite $_session privilége n'a pas de valeur car $utilisateur n'existe pas.
apres verification de l'ID et du passe $_session privilége et générer avec les infos dans la base MYSQL
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 16:01
Donne moi le lien entre les deux pages que tu viens de me donner
0
effectivement $_session privilége me renvoi cela : Notice: Undefined index: privilege in
0
mais comme je mets $_session privilége avec un if et puis un else donc normalement comme $_session privilége n'existe pas il devrait lancer le else.
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 16:07
Mysql_num_rows compte le nombre de résultat généré par une requête,
et toi tu fais
if($utilisateur)
Met lui une valeur !
0
enfaite je compte le nombre de résultat.
tu pense que je devrais mettre un mysql_fetch_assoc au lieu de mysql_num_rows??
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 16:18
mysql_num_rows compte le nombre de résultats d'une requete, tandis que le mysql_fetch_assoc te met les résultats dans un tableau assocatif,
Donc je ferais un truc du genre :
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'");
$verif = mysql_query($verif_query, $db) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif); 
if($utilisateur == 1)
{
echo "identifiants ok";
}
else
{
echo "identifiant pas ok";
}
Si ta requete dégage un résultat cela veut dire que l'utilisateur existe dans la base de données, si elle dégage aucun résultats cela veut dire que l'utilisateur n'existe pas
0
J'ai mis ce code dans mon volet :

if($utilisateur == 1)
{
echo "identifiants ok";
}
else
{
echo "identifiant pas ok";
}
mais il m'indique cette erreur :
Notice: Undefined variable: utilisateur in
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 16:28
Fais comme ceci :
$verif_query=("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'");
$verif = mysql_query($verif_query) or die(mysql_error());
$utilisateur = mysql_num_rows($verif); 
if($utilisateur == 1)
{
echo "identifiants ok";
}
else
{
echo "identifiant pas ok";
}


0
ok je mets quoi sur la page index.php :
<?php require ("include/connexion.php");


session_start();

if (isset($_POST['login'])){
$login = $_POST['login'];
$pass = md5($_POST['pass']);


mysql_select_db($database_dbprotect, $dbprotect);
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'");
$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);



if ($utilisateur) {
session_register("authentification");

$_SESSION['niveau'] = $row_verif['niveau'];
$_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:index.php?page=11");
}
else {
header("Location:index.php?page=7");
}
if(isset($_GET['erreur']) && ($_GET['erreur'] == "intru")) {
header("Location:index.php?page=8");
}
}


if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){
$prenom = $_SESSION['prenom'];
session_unset("authentification");
header("Location:index.php?page=10");
}
?>

et je mets quoi sur le volet ? :

<?php


if($utilisateur == 1)
{
echo "identifiants ok";
}
else
{
echo "identifiant pas ok";
}
?>

merci pour ton aide mais la je me perds dans le code ^^
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 16:37
tu vérifies pas si ta requete dégage un resultat !!
puis session_start(); doit etre la premiere ligne de code sur ta page !!!
0
J'ai modifier session_start(); et je verifie car j'ai inserer la verification dans le volet et reviens en : identifiant pas ok
mais c'est normal vue que je ne m'identifie pas avec mon login et passe
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 16:45
Donc cela fonctionne ?
0
ben non j'ai toujours une erreur :

Notice: Undefined variable: utilisateur in C:\EasyPHP5.3.0\www\bc\themes\volet.php on line 4
identifiant pas ok

ligne 4 : if($utilisateur == 1){
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
16 déc. 2010 à 16:50
Montre ton code sinon je peux rien faire
0
la page volet.php

<?php


if($utilisateur == 1)
{
echo "identifiants ok";
}
else
{
echo "identifiant pas ok";
}
?>
<div id="volet">
<div id="volet1">
<a href="index.php?page=2">- menu1</a><br />
<a href="index.php?page=5">- menu1</a><br />
</div>
<div id="volet2">
<a href="index.php?page=30">- menu1</a><br />
<a href="index.php?page=13">- menu1</a><br />
<a href="index.php?page=12">- menu1</a><br />
<a href="index.php?page=35">- menu1</a><br />
</div>
</div>

<div id="identif">
<form method="post" action="traitement1.php">
<p>
<input type="text" name="login" id="login" value="Identifiant" onfocus="if(this.value=='Identifiant')this.value='';" onblur="if(this.value=='')this.value='Identifiant';"/>
<input type="password" name="pass" id="pass" value="Mot de passe" onfocus="if(this.value=='Mot de passe')this.value='';" onBlur="if(this.value=='')this.value='Mot de passe';"/>

<input type="submit" value="s'identifier" /></p>
</form>
</div>
<div id="volet1">
<a href="index.php?page=2">- menu1</a><br />
<a href="index.php?page=5">- menu1</a><br />
</div>
<div id="volet2">
<a href="index.php?page=30">- menu1</a><br />
<a href="index.php?page=13">- menu1</a><br />
<a href="index.php?page=12">- menu1</a><br />
<a href="index.php?page=35">- menu1</a><br />
</div>

</div>

-------------------------------------------------------------------------------------

la page index.php

<?php
session_start();

require ("include/connexion.php");

if (isset($_POST['login'])){
$login = $_POST['login'];
$pass = md5($_POST['pass']);


mysql_select_db($database_dbprotect, $dbprotect);
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'");
$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);



if ($utilisateur) {
session_register("authentification");

$_SESSION['niveau'] = $row_verif['niveau'];
$_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:index.php?page=11");
}
else {
header("Location:index.php?page=7");
}
if(isset($_GET['erreur']) && ($_GET['erreur'] == "intru")) {
header("Location:index.php?page=8");
}
}


if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){
$prenom = $_SESSION['prenom'];
session_unset("authentification");
header("Location:index.php?page=10");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>en développement</title>
<link href="css/styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="zoombox/jquery.js"></script>
<script type="text/javascript" src="zoombox/zoombox.js"></script>
<script type="text/javascript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>

</head>
<body>
<div id="page">

<?php
include("themes/header.php");
?>
<div id="conteneur">
<div id="contenu">
<?php

$page = (isset($_GET['page']) && $_GET['page'] != '' ? $_GET['page'] : '0');

if(isset($page)){
if(!is_numeric($page)){
echo "Erreur page inconu";
exit;
}
}
switch($page)
{
case'0': include("page/accueil.php");
break;
case '1': include("page/qsn.php");
break;
default: include("page/accueil.php");//page par défaut
break;
}
?>

</div>
<div id="voletlog">
<?php


include ("themes/volet.php");


?>
</div>
</div>
<?php
include ("themes/pied.php");
?>
</div>

</body>
</html>

--------------------------------------------------------------------------------------------
merci pour ton aide
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
Modifié par Melooo le 16/12/2010 à 17:00
Normal que sur ta page volet.php il ne connait pas $utilisateur étant donné que la variable est déclaré sur index.php !!
Le test que je t'ai donné est à faire sur la page index
0
excuse moi mais je comprends pas bien ce que tu me dit car enfaite le code normalement devrait marcher

if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin"){
j'execute cela
}
else {
j'execute cela
}
?>

car si session privilége n'existe pas il execute le else ? non ?
0
Bon les mecs j'ai trouver une solution, biensur c'est pas le top mais l'erreur n'apparait plus.

if ($_SESSION['authentification'] = TRUE){

}

merci pour vos avis sur ce rajout.
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
17 déc. 2010 à 09:08
" les mecs " loupé j'suis une gonzesse ! :)
Sinon quand on fait un if la syntaxe c'est comme sa :
if ($_SESSION['authentification'] == TRUE){

} 
0