je souhaiterai vous faire part d'un problème que je rencontre avec les session avec la derniere version de wampserver.
je developpe actuellement un logiciel de gestion d'appel téléphonique, l'accès se fait par la saisie d'un identifiant et d'un mot de passe jusqu'a la aucun soucie particulier j'arrive à verifier la validité du compte et à enregistrer les information dans des variables de session de la façon suivante :
$_SESSION['name'] = $nom;
bien evidement j'oubli pas d'ouvir la session en tou début de page <? session_start() ; ?>
le problème qui se pose ensuite c'est que j'arrive à afficher la valeur que prend ma variable de session sur la page ou je l'enregiste cependant il m'est impossible de récuperer les informations sur les pages suivantes ce qui me bloque dans mon avancé.(jouvre bien sur la session)
dans une precedente expérience de développement avec une version 4 de php aucun soucie est ce que quelqu'un aurait la solution.
sa affiche le bon nom de session si je suis ce que tu m'a di et sur la deuxieme sa ne marche pas voici le code de la premiere qui me permet de verifier :
<? session_start() ; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[www.w3.org]; <html xmlns="[www.w3.org]; <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title>
</head> <body bgcolor="#99FFCC">
<?php
$host = localhost;
$user = root;
$bdd = projet;
$passwd = "";
// Connexion au serveur $connect = mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur" mysql_select_db($bdd,$connect) or die("erreur de connexion a la base de donnees" print("<br>"
//requete control acces $loga = $_POST['login']; $coda = $_POST['pass'];
print("<BR> <br> <br> <br> <br> <br>"
$req="select * from utilisateur where login='$loga' and mpass='$coda' ;"; $result=mysql_query($req) or die ('ERREUR '.$req.' '.mysql_error()); $ligne=mysql_fetch_row($result); // si l'utilisateur n'existe pas ou erreur de mot de passe ou erreur login $page = ""; if ($ligne=="" { print ( "Entrez correctement votre login et votre mot de passe"
} //si le login et le mot de passe sont corrects alors chargement menu et connexion else { $nom = $ligne[1]; $num = $ligne[0]; $service = $ligne[3]; //varible de session $_SESSION['name'] = $nom;
print ("variable login $_SESSION[name]" print ("<br>" print ("Vous etes connecté en tant que $nom votre groupe est $service" ); print("<BR>" print("Accès.. <img src=connexion.gif>" print("<BR>" print('<META HTTP-EQUIV="refresh" CONTENT="3; URL=listeannuaire.php">'); }
?> </html>
la deuxieme page listeannuaire si la personne est bien identifié :
// Connexion au serveur $connect = mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur" mysql_select_db($bdd,$connect) or die("erreur de connexion a la base de donnees" print("<br>"
$req="select * from annuaire;"; $result2=mysql_query($req) or die ('ERREUR '.$req.' '.mysql_error()); //recherche la liste des groupes d'appel print ("variable login $_SESSION[name]" //ne marche pas meme avec echo // initialisation
print("<br>" // tester la présence de la variable 'name' dans la session if ( ! isset( $_SESSION['name'] ) ) {
il est à savoir aussi que l'enregistrement des sessions pose un problème. c'est l'impasse pour moi, mon script marche com même, mais un warning persistant ne cesse de s'afficher
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
j'ai essayé, j'ai active register_globals dans php.ini, puis mis en Off les autres, et ça donne rien.
Merci beaucoup pour ta solution c'était simple mais fallait y penser d'autant plus que sous une ancienne version de php 4 sa posé aucun pb.
Je suis malgré tout d'accord qu'il est de problème de parametrage car j'ai souvent des messages qui s'affiche surtout si j'utilise cette forme de language pour incrementer qui était àmon avis l'ancetre des sessions :
echo "je suis la var de session___: ".$_SESSION["name"]; ou remettre les variables de session dans des variables mieux car syntaxe plus légère si elles sont utilisés 10 fois dans la même page
$nom=$_SESSION["name"];
de ce fait la syntaxe est allégée puis echo "je suis la var de session___: ".$nom;
ne pas oublier les [ " " ] dans les crochets ou les apostrophes attention il y a un point avant le dollar il fait la concaténation (colle bout à bout)