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/05/2006, 11h37   #1
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 111
Points : 30
Points : 30
Par défaut Problème de session

salut à tous,
voilà j'ai exactement le meme problème en faite lorsque je verifie le mot de passe c bon et je fais :
Code :
1
2
3
 
	$_SESSION['id_utilisateur'] = $listing['id_utilisateur'];
	$_SESSION['droit'] = $listing['droit_utilisateur'];
quand j'affiche no prob mais c'est quand je redirige c'est là le probleme. Lorsque je suis sur la page ou j'ai redirigé l'utilisateur , la j'ai un probleme.Plus rien ds ma session pourtant quand j'affichais sur la page avant j'avais bien mes valeurs ds la session.
je vous montre ce que je fais.
page login.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
 
if(isset($_POST['valider'])){
  if(isset($_POST['login'])&&isset($_POST['pwd'])){
   //Connection à la base de données MySQL
    tep_db_connect();
    $listing_query = tep_db_query('SELECT id_utilisateur,droit_utilisateur FROM '.TABLE_UTILISATEUR.' WHERE login_utilisateur ="'.$_POST['login'].'" AND pwd_utilisateur="'.md5($_POST['pwd']).'"');
	if(!($listing = tep_db_fetch_array($listing_query))){
	?>
	<SCRIPT language=javascript>
		  alert("Paramètres d'entrés non valide");
		  window.location= "login.php";
	  </SCRIPT>
	  <?php
    }else{
    if ( !isset ( session_id() ) )
    {
    session_start() ;
    }	
//echo "------------------------------";
	$_SESSION['id_utilisateur'] = $listing['id_utilisateur'];
	$_SESSION['droit'] = $listing['droit_utilisateur'];
	print_r($_SESSION);
	?>
	<SCRIPT language=javascript>
	  window.location= "general.php";
	</SCRIPT>
	   <?php
	}
  }else{
  ?>
    <SCRIPT language=javascript>
		alert("Veuillez saisir votre login et votre mot de passe");
		window.location= "login.php" ;
	</SCRIPT>
	<?php
  }
}
page general.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
print_r($_SESSION);
?>
<table width="1000" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td>
		<?php require("include/entete.php");?>
	</td>
  </tr>
<tr>
  <td height="75" >&nbsp;</td>
</tr>
<?php
tep_db_connect();
  $query_select = tep_db_query('SELECT id_utilisateur,droit_utilisateur FROM '.TABLE_UTILISATEUR.' WHERE id_utilisateur='.$_SESSION['id_utilisateur']);
  if($user =  tep_db_fetch_array($query_select)){
?>
et dans la page general.php plus rien??????

alors si vous comprenez, vos explications seront les bien venu.
tit_oune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2006, 11h45   #2
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 111
Points : 30
Points : 30
c'est bizarre j'ai rien j'ai de particulier et ca remarche, etonnant mais ma question reste toujours.
Si quelqu'un sait pourquoi ca ne marchais pas, dites moi.
tit_oune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2006, 12h33   #3
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Salut,

tu ne fais pas de session_start dans general.php.

Effectivement, c'est bizarre qu'ensuite ca fonctionne alors que tu n'as rien changé...
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2006, 13h35   #4
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
qqs remarques en vrac

Code :
1
2
3
4
5
$listing_query = tep_db_query('
SELECT id_utilisateur,droit_utilisateur 
FROM '.TABLE_UTILISATEUR.' 
WHERE login_utilisateur ="'.$_POST['login'].'" 
AND pwd_utilisateur="'.md5($_POST['pwd']).'"');
Code :
1
2
3
4
5
6
 
$listing_query = tep_db_query('
SELECT id_utilisateur,droit_utilisateur 
FROM '.TABLE_UTILISATEUR.' 
WHERE login_utilisateur =\''.mysql_real_escape_string($_POST['login']).'\' 
AND pwd_utilisateur=\''.md5($_POST['pwd']).'\'');
Code :
1
2
3
4
<SCRIPT language=javascript>
		  alert("Paramètres d'entrés non valide");
		  window.location= "login.php";
	  </SCRIPT>
Evite le JS pour une redirection lors d'une authentification


Code :
1
2
3
4
5
6
7
8
if(!($listing = tep_db_fetch_array($listing_query))){
	?>
	<SCRIPT language=javascript>
		  alert("Paramètres d'entrés non valide");
		  window.location= "login.php";
	  </SCRIPT>
	  <?php
    }
utilise simplement mysql_num_rows() , c'est plus simple et fait pour

Code :
1
2
3
4
if ( !isset ( session_id() ) )
    {
    session_start() ;
    }
ça c'est plus un avis personnel, mais je prefere démarrer tjs la session en haut de page.
Tu demarres 1 et 1 seule fois et tout en haut.
Vaut mieux eviter les boucles/conditions.. avec le session_start(), ça finit toujours en erreur header already send....
wamania 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 15h33.


 
 
 
 
Partenaires

Hébergement Web