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 22/12/2006, 12h13   #1
Membre confirmé
 
Inscription : mars 2003
Messages : 674
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 674
Points : 242
Points : 242
Par défaut Problème de session

Bonjour.

Voilà mon problème :
J'ai fait un site que je viens de mettre en ligne pour pouvoir le tester. http://fonphil.club.fr/index.php
Sur le site j'ai des pages privées auxquelles on a accès par un code personnel.
Sur mon pc ça fonctionne correctement mais chez club-internet ça ne marche pas.
sur ma page index j'ouvre une session et sur la page reseaux.php je contrôle si l'utilisateur a saisi son code
Code de la page index.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
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
<?php 
session_start();
if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page'];
if(isset($_POST['code']))     $code=$_POST['code'];
  else	$code = "";
if(isset($_POST['utilisateur']))     $utilisateur=$_POST['utilisateur'];
  else	$utilisateur = "";
if(isset($_POST['ecart']))     $ecart=$_POST['ecart'];
  else	$ecart = "";
if(isset($_POST['abonne']))     $abonne=$_POST['abonne'];
  else	$abonne = "";
require('connect.php');
if (!empty($_POST['code'])) { 
      $sql = mysql_query("SELECT * FROM r2sadmin WHERE code_perso='".$code."'",$connexion);
	if (mysql_num_rows($sql) > 0)
	{
	   $res = mysql_fetch_array($sql);
	   $abonne = $res['id_abonne'];
	   $code = $res['code_perso'];
	   $utilisateur = $res['utilisateur'];
	   $dateabont = $res['date_abo'];
	   $_SESSION['abonne'] = $abonne;
	   $_SESSION['code'] = $code;
	   $_SESSION['utilisateur'] = $utilisateur;
	}
}
function date_fran() { 
$mois = array("janvier", "fevrier", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "decembre"); 
$jours = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"); 
return $jours[date("w")]." ".date("j").(date("j") == 1 ? "er" : " "). $mois[date("n")-1]." ".date("Y")." - ".date("H")."h".date("i"); 
} 
?> 
<HTML>
<HEAD>
<title>Fili&egrave;res & R&eacute;seaux 2 Sant&eacute;</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="description" content="Fili&egrave;res & R&eacute;seaux 2 Sant&eacute;, ">
<meta name="keywords" content="r&eacute;seaux, sant&eacute;, dossier m&eacute;dical, r&eacute;gions, adolescents, sida, addictions, tabac, alcool, ob&eacute;sit&eacute;, toxicomanie, oncologie, g&eacute;rontologie, diab&egrave;te, p&eacute;rinatalit&eacute;, cancer">
<META NAME="Author" LANG="fr" CONTENT=""> 
<meta name="Robots" content="index, follow, all">
<META NAME="Revisit-after" CONTENT="5 days"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<LINK REL="stylesheet" HREF="style.css" TYPE="TEXT/CSS">
<script type="text/javascript">
function message(){
	alert("Merci de saisir votre code ou de vous identifer pour accéder au forum.");
}
function message1(){
	alert("Merci de vous identifier (cliquer sur le bouton 's'inscrire').");
}
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
	for (var i = 1; i<=10; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block';}
}
//-->
 
</script>
<script type="text/javascript">
 
</script>
</HEAD>
<BODY>
<div class="haut">
<form name="identite" method="Post">
<Table width=100% border="0" cellpadding="0" cellspacing="0">
	<tr>
		<td width= 13%><img border='0' src='images/logo.JPG'></a><font face="verdana"; size="4"; color="#808080"><b>.com</b></font>
		</td>
		<td width=65% valign="top"><font face="verdana"; color="#808080"; size="6"><B> FILI&Egrave;RES & R&Eacute;SEAUX 2 SANT&Eacute;</B><br>
			<font size="3"><b>Le 1er site et La 1&egrave;re revue enti&egrave;rement consacr&eacute;s aux r&eacute;seaux de sant&eacute;<br>
			<font size="1">édit&eacute; par les Editions de Sant&eacute;
		</td>
		<td valign="center" align="center"><font face="verdana"; size="1">Code d'accès <br><input type="text" name="code" value="" style="height:18px"><input type="submit" value="Go" style="height:18px; font-size=12">
			<br>
		<?php
		echo "<input type='hidden' name='ecart' value= $ecart>";
 
		if (isset($_SESSION['utilisateur'])){
			echo "<input type='hidden' name='abonne' value= $abonne>";
			?>Bonjour <b><?php echo $_SESSION['utilisateur']?></b>, vous êtes connecté(e)<br><?php ;
//			if (($ecart < 60) && ($ecart > 0)){
//				echo "<font color='red'><b>Votre abonnement arrive à échéance dans $ecart jours, pensez à le renouveler</b></font>";
//			}
//			else if (($ecart == 0) || ($ecart < 0)){
//				$ecart = $ecart * -1;
//				echo "<font color='red'><b>L'écheance de votre abonnement est dépassée depuis $ecart, vous n'avez plus d'accès.</b></font>";
//			}
		}
		else {
		   echo "Vous n'êtes pas connecté(e)";
		}
		?></td>
	</tr>
</table>
<Table border="0" width=100% bgcolor="red">
	<TR class=tdr>
		<TD width=25%>&nbsp;<? echo (date_fran()); ?></td>
		<td><b>|</b></td><td class=tdh align="center" width=20%><a href="index.php?page=accueil"> ACCUEIL</a></td>
		<td><b>|</b></td><td class=tdh align="center" width=20%><a href="#" title="Disponible sur abonnement"> NEWSLETTER</a></td>
		<td><b>|</b></td><td class=tdh align="center" width=20%><a href="index.php?page=contacts"> CONTACTEZ-NOUS</a></td>
		<td><b>|</b></td><td class=tdh align="center" width=20%>
		<?php 
			if ((isset($_SESSION['code'])) && (isset($_SESSION['utilisateur']))){
				echo "<a href='upload/index.php'>FORUM</a></td>";
			}
			else if ((isset($_SESSION['code'])) && (!isset($_SESSION['utilisateur']))){ 
				echo "<a href='#' onclick='javascript:message1()'>FORUM</a></td>";
			}
			else {
				echo "<a href='#' onclick='javascript:message()'>FORUM</a></td>";
			}
		?>
	</TR>
</TABLE>
</div>
<div class="conteneur">
<div class="gauche">
<!-- Menu  -->
<dl id="menu">
	<dt><a href="index.php?page=accueil"><img src="images/menu/accueil.GIF" border="0" onMouseover="this.src='images/menu/accueilh.GIF'"; onMouseout="this.src='images/menu/accueil.GIF'"></a></dt>
	<dt><a href="index.php?page=code"><img src="images/menu/inscrip.GIF" border="0" onMouseover="this.src='images/menu/inscriph.GIF'"; onMouseout="this.src='images/menu/inscrip.GIF'"></a></dt>
	<dt><a href="index.php?page=compte"><img src="images/menu/compte.GIF" border="0" onMouseover="this.src='images/menu/compteh.GIF'"; onMouseout="this.src='images/menu/compte.GIF'"></a></dt>
	<dt><a href="abolog/abonnement.doc"><img src="images/menu/abonnement.GIF" border="0" onMouseover="this.src='images/menu/abonnementh.GIF'"; onMouseout="this.src='images/menu/abonnement.GIF'"></a></dt>
	<dt onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();"><img src="images/menu/archives.GIF" border="0" onMouseover="this.src='images/menu/archivesh.GIF'"; onMouseout="this.src='images/menu/archives.GIF'"></a></dt>
		<dd id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout="javascript:montre();">
			<ul>
				<li><a href="index.php?page=2006">&nbsp;&nbsp;2006</a></li>
				<li><a href="index.php?page=2005">&nbsp;&nbsp;2005</a></li>
			</ul>
		</dd></dt>
	<dt><a href="#"><img src="images/menu/newsletter.GIF" border="0" onMouseover="this.src='images/menu/newsletterh.GIF'"; onMouseout="this.src='images/menu/newsletter.GIF'"></a></dt>
		<dd id="smenu2" onmouseover="javascript:montre('smenu2');" onmouseout="javascript:montre();">
			<ul>
				<li><a href="newsletter/NL0906.pdf">&nbsp;&nbsp;Septembre 2006</a></li>
			</ul>
		</dd></dt>
	<dt><a href="index.php?page=reseaux_selection"><img src="images/menu/reseaux.GIF" border="0" onMouseover="this.src='images/menu/reseauxh.GIF'"; onMouseout="this.src='images/menu/reseaux.GIF'"></a></dt>
	<dt><a href="index.php?page=textes"><img src="images/menu/legislation.GIF" border="0" onMouseover="this.src='images/menu/legislationh.GIF'"; onMouseout="this.src='images/menu/legislation.GIF'"></a></dt>
 
<?php
if (((isset($_SESSION['code'])=="frsph100000") || (isset($_SESSION['code'])=="frsdd100001") || (isset($_SESSION['code'])=="frsjp100002"))){
?>
	<dt onmouseover="javascript:montre('smenu3');" onmouseout="javascript:montre();"><a href="#">&nbsp;Abonnés</a></dt>
		<dd id="smenu3" onmouseover="javascript:montre('smenu3');" onmouseout="javascript:montre();">
			<ul>
				<li><a href="index.php?page=nouvel_abo">&nbsp;saisie nouvel abonné</a></li>
				<li><a href="index.php?page=modifier_abo">&nbsp;modifications abonné</a></li>
				<li><a href="index.php?page=supprimer_abo">&nbsp;suppression abonné</a></li>
			</ul>
		</dd>
	<dt onmouseover="javascript:montre('smenu4');" onmouseout="javascript:montre();"><a href="#">&nbsp;Réseaux</a></dt>
		<dd id="smenu4" onmouseover="javascript:montre('smenu4');" onmouseout="javascript:montre();">
			<ul>
				<li><a href="index.php?page=maj_themes">&nbsp;Thèmes (ajout etc..)</a></li>
				<li><a href='index.php?page=reseaux_new'>&nbsp;Ajouter un réseau</a></li>				
				<li><a href='index.php?page=reseaux_modif'>&nbsp;Modifier un réseau</a></li>
				<li><a href='index.php?page=reseaux_suppress'>&nbsp;Supprimer un réseau</a></li>
			</ul>
		</dd>
	<dt onmouseover="javascript:montre('smenu5');" onmouseout="javascript:montre();"><a href="#">&nbsp;Listes</a></dt>
		<dd id="smenu5" onmouseover="javascript:montre('smenu5');" onmouseout="javascript:montre();">
			<ul>
				<li><a href="index.php?page=list1">&nbsp;Liste des abonnés</a></li>
				<li><a href='index.php?page=list2'>&nbsp;Liste par échéance</a></li>				
			</ul>
		</dd>
<?php
}
?>
</dl>
</div>
<div class="frame">
<?php 
if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page'];  
 switch($page)
{
//menu horizontal
case 'accueil': include ('accueil.php');break;
case 'contacts': include ('contacts.php');break;
 
//menu vertical
case 'accueil': include ('accueil.php');break;
case 'code': include ('abolog/codepersonnel.php');break;
case 'perdu': include ('abolog/perdu.php');break;
case 'compte': include ('abolog/compte.php');break;
case 'reseaux': include ('reseaux/reseaux.php');break;
case 'mapage2': include ('reseaux/reseau_detail.php');break;
case 'reseaux_selection': include ('reseaux/reseaux_selections.php');break;
case 'textes': include ('lois/textes.php');break;
//liens de la page texte
case '2002-303': include ('lois/2002-303.php');break;
case 'd2002_1463': include ('lois/d2002_1463.php');break;
case '2004-810': include ('lois/2004-810.php');break;
case '2004-810-2': include ('lois/2004-810-2.php');break;
case '2005_377': include ('lois/2005_377.php');break;
case 'mentions': include ('mentions.php');break;
....
le début du code où je vérifie si l'utilisateur a saisi son 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
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
<?php
if(empty($_SESSION['code'])){
	echo "<p align='center'><font face='verdana' size='2>'<br><br>Saisissez votre code d'accès ci-dessus à droite ou identifiez-vous !";
	exit();
}
require ('connect.php');
?>
<p align = center><br>
<script type="text/javascript">
function affiche()
{
	document.letri.tout.value="tt";
	document.letri.submit();
}
function tri(id)
{
	document.letri.tout.value="tt";
	document.letri.tri.value=id;
	document.letri.submit();
}
function affect(id)
{
	document.selection1.monchoix.value=id;
	document.selection1.pagesel.value="ressel";
	document.selection1.submit();
}
 
 
</script>
<form name="tableau" method="POST">
<table border="0" style="text-align:center; font-family:verdana, tahoma; font-size:11px">
	<colgroup width="210px">
	<colgroup width="210px">
	<colgroup width="210px">
	<colgroup width="40px">
	<colgroup width="210px">
	<tr>	<td align="center" colspan="5" style="color:'blue'">Pour rechercher un réseau, vous pouvez sélectionner :</td>
	<tr>
		<td><a href="#" onclick="affiche()" style="text-decoration:none">Tous les r&eacute;seaux</a></td>
		<td><a href="index.php?page=reseaux" style="text-decoration:none">La carte des r&eacute;gions</a></td>
		<td>Un thème <SELECT name="theme" style="width:170px; font-family:tahoma, verdana; font-size:11px">
				<OPTION value=""></option>
<?php
			$result_sql = mysql_query('SELECT * FROM r2sthemes ORDER BY theme',$connexion);
			while ($row = mysql_fetch_array($result_sql))
			{ 
?>
			<option value='<?php echo $row['id_theme']?>'><?php echo $row['theme']?></option>
<?php
			}
			echo '</select>&nbsp;';
?>
		</td>
		<td> et / ou</td>
		<td>Un département <SELECT name="depart" style="width:175px; font-family:tahoma, verdana; font-size:11px">
				<OPTION value=""></option>
<?php
			$result_sql = mysql_query('Select * From r2sdepartements',$connexion);
			while ($row = mysql_fetch_array($result_sql))
			{ 
?>
			<option value='<?php echo $row['code_depart']?>'><?php echo $row['code_depart']; echo " &nbsp;&nbsp;"; echo htmlentities($row['nom_depart'])?></option>
<?php
			}
			echo '</select>
		<tr></td><td></td><td></td><td colspan="3"><input type="submit" name="bouton2" value="Rechercher" style="height:20px; font-size:10px"></td>
	</tr>
</table>';
.....
Sur mon pc, quel que soit la page affichée, le nom de l'utilisateur reste affiché mais pas sur le site.

si vous voulez tester voici le code qu'il faut saisir : frsph100000

Merci de m'aider à résoudre ce problème.
philippef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2006, 13h40   #2
Candidat au titre de Membre du Club
 
Inscription : mars 2004
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 19
Points : 10
Points : 10
Salut philippef,

Tu n'aurais pas oublié un petit "session_start();" au debut de ton deuxieme code ?
freesurfer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2006, 11h21   #3
Membre confirmé
 
Inscription : mars 2003
Messages : 674
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 674
Points : 242
Points : 242
Citation:
Envoyé par freesurfer
Tu n'aurais pas oublié un petit "session_start();" au debut de ton deuxieme code ?
Si je mets SESSION_START(); sur la page privée j'ai un message d'erreur m'annonçant que la session est déjà active.
Je pense que probléme est ailleurs!!!
philippef est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2006, 12h08   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Comment votre deuxième code est-il utilisé ? Car un session_start est effectivement nécessaire pour récupérer cette session. Vous pouvez utiliser la fonction session_id() pour savoir si la même session est propagée de page en page.

Dans votre deuxième code toujours :
Code :
if(empty($_SESSION['code'])){
Il me semble à priori plus adapté de faire un test avec isset (remarque qui ne devrait pas changer le résultat sauf si l'affichage des notices est activé ).


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2006, 13h59   #5
Membre confirmé
 
Inscription : mars 2003
Messages : 674
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 674
Points : 242
Points : 242
En fait je ne comprends pas. Le site fonctionne sur mon pc et chez-internet il faut ressaisir le code quand on veut avoir accès aux pages privées..
Lorsque l'utilisateur renseigne son code dans la page index.php, je controle que le code existe dans la table et ensuite. Lorsqu'il clique sur le bouton "réseaux", je vérifie que le code est renseigné pour donner l'accès.

Sur mon pc, le nom de l'utilisateur est toujour apparent (page index en haut à droite). Chez club-internet, le nom de l'utilisateur ne reste pas affiché. Il faut le ressaisir.

Est -l possible d'inclure un "if" dans un "case" du genre
Code :
1
2
3
4
5
case 'reseaux_selection':
    if (isset(SESSION['code'])){
         include ('reseaux/reseaux_selections.php');break;
    }
    break;
philippef 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 00h00.


 
 
 
 
Partenaires

Hébergement Web