begin process at 2012 05 31 12:15:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

problème avec variable de session et boucle while


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème avec variable de session et boucle while

lundi 29 novembre 2010 à 15:05:58 | problème avec variable de session et boucle while

indutec

Bonjour j'ai un souci avec une variable de session qui ne veut pas passer dans une boucle while

voici mon code:
La personne s'identifie via un formulaire 'login.php' lequel envoie les login et pwd dans une variable de session
<?php
session_start();

$login=$_POST['login'];
$_SESSION['login']=$login;
$pwd=$_POST['pwd'];
$_SESSION['pwd']=$pwd;

//echo 'Votre login est '.$_SESSION['login'].' et votre mot de passe est '.$_SESSION['pwd'].'.<br/>';
// On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
// On teste nos variables de session
if (isset($_SESSION['login']) && isset($_SESSION['pwd']))
{

include "connection.php";
$sql = mysql_query("SELECT * FROM bb_membres WHERE email = '$login' AND password = '$pwd' ");
// On fait la recherche du couple login/password directement :)
// Ensuite, on regarde si il existe un membre avec ce login et ce pass
if (mysql_num_rows($sql) == 0)
{echo 'erreur'; //aucun utilisateur n'existe avec ces informations
}
else
{//login et pwd sont ok
while($row = mysql_fetch_array($sql))
{
//echo $row['id_m'];
$identifiant=$row['id_m'];
$prenom=$row['prenom'].' '.$row['nom'];
session_register("prenom");
session_register("identifiant");
}
echo ("<script language = \"JavaScript\">");
echo ("location.href = '../index2.php';");
echo ("</script>");
}}
else {echo 'Les variables de sessions ne sont pas déclarées.';}
?>
sur ma page index2 j'ai session_start();
depuis cette page index2.php je peux aller vers 2 pages (profil, project discussion)
jusque là tout est ok
maintenant je veux afficher tous les projets (confidentiels ou pas) dans lequel mon visiteur peut aller ainsi que leur détails

<?php
include '../fonctions/connection.php';
$id_p=$_GET['id_p'];
?>
<table width="979 px" border="0">
<tr valign="top">
<td>
<?php //pour la liste des projets non confidentiels
$project=mysql_query("SELECT id_p, bb_membres.id_m, titre, descr, teammate1, teammate2, teammate3, bb_projets.p_comm, bb_projets.p_techn, bb_projets.p_artist, confidential, nom, prenom FROM bb_projets, bb_membres WHERE (bb_membres.id_m = bb_projets.id_m AND actif=1) AND confidential='no'");

while($row = mysql_fetch_array($project))
{if($id_p==$row[id_p])
{
$prenom=ucwords($row[prenom]); //met une majuscule à la première lettre du mot
$nom=ucwords($row[nom]); //met une majuscule à la première lettre du mot
echo "<span class='title_h2'><b><a href='chat.php?id_p=".$row[id_p]."'><img src='../img/arrow.gif'>".$row[titre]."</span>, ".$prenom." ".$nom."</a></b><br /><br />";
include 'details.php';
}
else
{
$prenom=ucwords($row[prenom]); //met une majuscule à la première lettre du mot
$nom=ucwords($row[nom]); //met une majuscule à la première lettre du mot
echo "<span class='title_h2'><a href='chat.php?id_p=".$row[id_p]."'><img src='../img/arrowdn.gif'>".$row[titre]."</span>, ".$prenom." ".$nom."</a><br /><br />";
}
}



//pour la liste des projets confidentiels
$project_conf=mysql_query("SELECT id_p, bb_membres.id_m as id_m, titre, descr, teammate1, teammate2, teammate3, bb_projets.p_comm, bb_projets.p_techn, bb_projets.p_artist, confidential, nom, prenom FROM bb_projets, bb_membres WHERE (bb_membres.id_m = bb_projets.id_m AND actif=1) AND confidential='yes'");

while($row = mysql_fetch_array($project_conf))
{ if(($_SESSION[id]=$row[teammate1])||($_SESSION[id]=$row[teammate2])||($_SESSION[id]=$row[teammate])||($_SESSION[id]=$row[id_m]))
{//echo 'vous avez le droit de le voir';
if($id_p==$row[id_p])
{
$prenom=ucwords($row[prenom]); //met une majuscule à la première lettre du mot
$nom=ucwords($row[nom]); //met une majuscule à la première lettre du mot
echo "<span class='title_h2'><b><a href='chat.php?id_p=".$row[id_p]."'><img src='../img/arrow.gif'>".$row[titre]."</span>, ".$prenom." ".$nom."</a></b><br /><br />";
include 'details.php';
}
else
{
$prenom=ucwords($row[prenom]); //met une majuscule à la première lettre du mot
$nom=ucwords($row[nom]); //met une majuscule à la première lettre du mot
echo "<span class='title_h2'><a href='chat.php?id_p=".$row[id_p]."'><img src='../img/arrowdn.gif'>".$row[titre]."</span>, ".$prenom." ".$nom."</a><br /><br />";
}
}
else{
//echo 'vous ne pouvez pas le voir';
}

}
?> </td>
</tr>
</table>
à ce moment là il perd l'identifiant $_SESSION[id] et prend par défaut l'id 1.
Pouvez-vous me dire où est ma faute svp?
lundi 29 novembre 2010 à 20:17:10 | Re : problème avec variable de session et boucle while

cod57

bonsoir

while($row = mysql_fetch_array($project_conf))
{ if(($_SESSION[id]=$row[teammate1])||($_SESSION[id]=$row[teammate2])||($_SESSION[id]=$row[teammate])||($_SESSION[id]=$row[id_m]))
{//echo 'vous avez le droit de le voir';
if($id_p==$row[id_p])
...

$_SESSION[id] tu l'as crée ou car elle n'existe pas
donc la boucle et le test ? ...

mais une valeur par défaut pour tester
$_SESSION[id]="quelquechose???";

a++
mardi 30 novembre 2010 à 15:27:00 | Re : problème avec variable de session et boucle while

indutec

effectivement ça fonctionne il garde la $_SESSION[id]
pourtant je pensais l'avoir définie
session_register("identifiant");
en fait j'ai changé avant je l'avais appelé $_SESSION[id] mais comme ça ne fonctionnait pas j'ai essayé en l'appelant $_SESSION[identifiant] mais ça ne marche pas non plus.
Comment puis-je faire passer la variable définie via le fichier verif.php dans ma boucle? car sur cette page il garde pourtant $_SESSION[prenom] qui est définie au même endroit et de la même façon.
est-ce que je dois la redéfinir pour la boucle? si oui comment?
merci d'avance pour ton aide.
mardi 30 novembre 2010 à 15:39:34 | Re : problème avec variable de session et boucle while

indutec

avant j'avais mis ceci avant de faire une distinction entre les projets confidentiels et les autres
<?php
//pour la liste des projets
$project=mysql_query("SELECT id_p, bb_membres.id_m, titre, descr, teammate1, teammate2, teammate3, bb_projets.p_comm, bb_projets.p_techn, bb_projets.p_artist, confidential, nom, prenom FROM bb_projets, bb_membres WHERE (bb_membres.id_m = bb_projets.id_m AND actif=1)");

while($row = mysql_fetch_array($project))
{
if($id_p==$row[id_p])
{
$prenom=ucwords($row[prenom]); //met une majuscule à la première lettre du mot
$nom=ucwords($row[nom]); //met une majuscule à la première lettre du mot
echo "<span class='title_h2'><b><a href='chat.php?id_p=".$row[id_p]."'><img src='../img/arrow.gif'>".$row[titre]."</span>, ".$prenom." ".$nom."</a></b><br /><br />";
include 'details.php';
}
else
{
$prenom=ucwords($row[prenom]); //met une majuscule à la première lettre du mot
$nom=ucwords($row[nom]); //met une majuscule à la première lettre du mot
echo "<span class='title_h2'><a href='chat.php?id_p=".$row[id_p]."'><img src='../img/arrowdn.gif'>".$row[titre]."</span>, ".$prenom." ".$nom."</a><br /><br />";
}
}
et là je n'ai aucun problème d'identifiant.
Le but est de n'afficher que les projets confidentiels uniquement si la personne appartient au groupe (teammate 1, 2 ou 3) ou est le propriétaire du projet (bb_projects.id_m).
Peut-être qu'il existe une manière de coder plus simple? mais pour l'instant je ne vois pas laquelle...


Cette discussion est classée dans : session, id, echo, row, prenom


Répondre à ce message

Sujets en rapport avec ce message

Paginations [ par slhuilli ] bonjourje ne sais pas apres de longues recherches comment je pourrais paginer 10 par 10 mes réponses issues d'une select * .Voici ce que j'ai :     se variable de sessions [ par fatatra ] Bonjour a tous;Je veux me servir des variables globales pour identifiez les visiteurs, et j'ai un comportement bizarre de cette dernier.Quand je la me problème de session php [ par oriviera ] Bonjour,Voilà gros problme avec les sessions je sais ce n'est pas nouveau, mais je ne comprend rien car dans un cas de figure ca fonctionne très bien lien et requete sql [ par oceane751 ] bonjour à tous !!   je voudrais creer une page administration pour un projet. un transformer un code php en code html pour une question de mise en page [ par fabrice88 ] Bonjour,j'ai un code en php (qui fonctionne tres bien) que je souhaiterai transformer en html pour des question de mise en page.j'ai essayé plusieurs debutant probleme de session! [ par jimmy69 ] bonjour a tous,voila je debute en php et je suis en train de realiser un espace menbresou ceux ci peuvent poster des news un truc tout simple!j'ai don espace membre en PHP [ par silendus ] je vais essayé d'être clair :)Donc je suis en train de faire un site en PHP avec gestion de membres.le problème que je rencontre est le suivant: je n' problème de session [ par guendouf ] Bonjour,je poste 2 scripts, j'aimerai qu'on m'aide et qu'on m'explique pourquoi j'arrive pas à me connecter:1)session.php// On inclut le fichier de co Session_start() et list déroulante ne vont pas ensemble? [ par MVTNV ] Bonjour,J'ai un probème que même avec "session_start()". J'ai lu toutes (ou presque) les pages qui se trouve sur votre site concernant le problème mai Problème de connexion avec les sessions [ par slum_411 ] Bonjour à tous (et à toutes), Je développe actuellement un site avec un formulaire de connexion. Chaque page est protégée par un fichier qui est l


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales