Session php qui fonctionne pas

drogba7213 Messages postés 1550 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

Voila j'essaye de faire passer une info de ma base par une session et hélas je n'y arrive pas je ne comprend pas trop pourquoi.

la j'ai mon fichier save_user.php

dedans j'ouvre la session et je la défini

session_start();

$cession = "	SELECT ID_USERS
  			FROM USERS
  			WHERE MAIL = '$mail'";
  
  $req = mysql_query($cession) or die('Erreur SQL !<br>'.$cession.'<br>'.mysql_error()); 
  
   while($data = mysql_fetch_assoc($req))
	 {
	 $_SESSION['id'] = $data['ID_USERS'];
	 }


quand dans un autre fichiers php je réouvre la session et que je l'apelle elle semble vide du coup je n'avance pas

session_start();

$id = $_SESSION['id'];
														
$soordonee = "	SELECT *
			FROM USERS
			WHERE ID_USERS = '$id'";
							
$req = mysql_query($soordonee) or die('Erreur SQL !<br>'.$soordonee.'<br>'.mysql_error());

while($data = mysql_fetch_assoc($req))
{ 						    							
echo $data['sexe']." ". $data['nom'];
}


voila est ce que vous voyeez une erreur quelque part car je m'arrache les cheveux lol
merci de m'aider svp
A voir également:

17 réponses

rescue Messages postés 1047 Statut Contributeur 136
 
Bonjour,

Je n'ai pas testé mais je verrai plus quelque chose comme ça, vérifies si ta variable existe et tu l'affiches. :

if (isset($_SESSION['id'])) {
$id= $_SESSION['id'] ;

echo $id;
}

Une question : Comment fais tu circuler ta session d'une page à l'autre ?

@+
0
Camuke Messages postés 227 Statut Membre 88
 
Je viens de tester ton code en local (sous wamp), personnellement ton code marche.

Je te met le code que j'ai :

index.php :
<?php
session_start();
$Serveur = "localhost";
$Utilisateur = "root";
$Mdp = "";
$Bdd = "User";

/* connection a la base*/
$connect = mysql_connect($Serveur,$Utilisateur,$Mdp);
/* sélection de la base */
mysql_select_db($Bdd, $connect);

$mail= "a.z@e.r";
$cession = "SELECT ID_USERS
FROM USERS
WHERE MAIL = '$mail'";

$req = mysql_query($cession) or die('Erreur SQL !<br>'.$cession.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req))
{
$_SESSION['id'] = $data['ID_USERS'];
}
?>
<a href="test.php">test</a>

test.php :
<?php
session_start();

$Serveur = "localhost";
$Utilisateur = "root";
$Mdp = "";
$Bdd = "User";

/* connection a la base*/
$connect = mysql_connect($Serveur,$Utilisateur,$Mdp);
/* sélection de la base */
mysql_select_db($Bdd, $connect);

$id = $_SESSION['id'];
$soordonee = " SELECT *
FROM USERS
WHERE ID_USERS = '$id'";

$req = mysql_query($soordonee) or die('Erreur SQL !<br>'.$soordonee.'<br>'.mysql_error());

while($data = mysql_fetch_assoc($req))
{
echo $data['sexe']." ". $data['nom'];
}

?>
0
drogba7213 Messages postés 1550 Statut Membre 21
 
ouais en fait j'avais oublié le session start de la deuxième page par contre j'ai un soucis

dans la deuxième page je veux ressortir les infos préalablement enregistrer

$id = $_SESSION['id'];
							
$coordonee = "	SELECT *
			FROM USERS
			WHERE ID_USERS = '$id'";
							
$req = mysql_query($coordonee) or die('Erreur SQL !<br>'.$coordonee.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
echo $data['MAIL'];


$sexe = $data['SEXE'];
                                  
if ($sexe == 0)
																				{
																				$sexe = 'Mr';
																				}
																				elseif ($sexe == 1)
																				{
																				$sexe = 'Mme';
																				}
																				elseif ($sexe == 2)
																				{																				$sexe = 'Mlle';
}
							    												echo $sexe." ".$data['NOM'];


et dans mes trois echo j'en ai un seul qui fonctionne et c'est le $sexe les autres ne s'affiche pas pourquoi svp?
0
Camuke Messages postés 227 Statut Membre 88
 
Je viens de tester et moi tout marcher sauf $data['NOM'] car dans ma base, la table s'appelle "nom" et pas "NOM". Après modification, tout marche niquel!!!

Vérifie si la casse(majuscule, minuscule) de ta table et des nom de tes variables est bien la même
0

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

Posez votre question
drogba7213 Messages postés 1550 Statut Membre 21
 
bah oui en fait jai tout mi en Majuscule donc oui c'est bizarre quand meme vous auriez pas une solution?
0
Camuke Messages postés 227 Statut Membre 88
 
sa peut venir que deux chose :
- la requête sql qui ne fonctonne pas
- tu recupere aucun id de session.

Tu arrive a afficher le $sexe car $sexe aura toujours une valeurs.

Essai de faire un echo $id; juste en dessous de $id = $s_session['id']; et dit moi si tu arrive à afficher quelque chose

Si l'id ne s'affiche pas, c'est l'option 2 sinon le problème viens de ta connexion a la base de données
0
drogba7213 Messages postés 1550 Statut Membre 21
 
echo $id

fonctionne
ma requete est bonne je l'ai testé.

je comprend pas ce qui bloque
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Salut,

si dans ta table ID est de type INT alors il me semble qu'il ne faut pas les ' dans la requette:

$coordonee = "	SELECT *	FROM USERS	WHERE ID_USERS = $id ";
0
drogba7213 Messages postés 1550 Statut Membre 21
 
alors mon id est structuré comme ca :

Champ Type Interclassement Attributs Null Défaut Extra
ID_USERS int(11) Non aucune auto_increment

j'ai fait les deux rien ne fonctionne
0
Alain_42 Messages postés 5413 Statut Membre 894
 
essayes pour voir ce que tu trouves comme enr:

$id = $_SESSION['id'];
							
$coordonee = "	SELECT *
			FROM USERS
			WHERE ID_USERS = '$id'";
							
$req = mysql_query($coordonee) or die('Erreur SQL !<br>'.$coordonee.'<br>'.mysql_error());
 echo " Nbr enr trouves avec l'id : ".$id." = "."mysql_num_rows($req);
......


et dis nous ce qu'il t'affiche
0
drogba7213 Messages postés 1550 Statut Membre 21
 
38 Nbr enr trouves avec l'id : 38 = mysql_num_rows(Resource id #9)
0
Alain_42 Messages postés 5413 Statut Membre 894
 
je crois que j'ai fait une erruer de frappe essayes

echo " Nbr enr trouves avec l'id : ".$id." = ".mysql_num_rows($req);
0
drogba7213 Messages postés 1550 Statut Membre 21
 
Nbr enr trouves avec l'id : 41 = 1
0
drogba7213 Messages postés 1550 Statut Membre 21
 
Alors j'essaye de faire des tests en même temps et il s'avère que j'arrive a faire ca :

<table width="100%" border="0" cellspacing="0" cellpadding="0" height="29">
    <tr> 
        <td valign="top" width="145"><b>E-mail : </b></td>
        <td valign="top"> 
		<?php $data = mysql_fetch_assoc($req); echo $data['MAIL'];echo $data['NOM']; ?>                                          
<input type="hidden" name="email" id="email" value="" />
         </td>
    </tr>
 </table>


Quand je dit j'arrive il me retourne $data['MAIL'] et $data['NOM']

par contre si je rouvre une balise PHP plus loin dans mon code la je n'y arrive pas est ce normal?
0
Alain_42 Messages postés 5413 Statut Membre 894
 
par contre si je rouvre une balise PHP plus loin dans mon code la je n'y arrive pas est ce normal?

quel code mets tu plus loin ?

si tu remets un mysql_fetch_array c'est normal que tu n'ai rien
0
drogba7213 Messages postés 1550 Statut Membre 21
 
non par exemple je remet un echo $data['NOM']
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Bizarre, il faudrait que tu nous mettes le code
0