PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-01-2011 16:29:01

ziko
Membre
Inscription : 22-12-2010
Messages : 43

[Résolu] Sessions PHP

Bonjours à tous, je reviens vers vous pour un nouveau problème.
J'ai une liste de client que je récupère de ma bdd, et je voudrais qu'en cliquant sur le nom d'un des clients, cela me redirige vers son profil.

Voici mon code :


//listeclient.php

<?php
session_start();
?>

...

<?php
    $save='';
    mysql_connect("localhost", "root", "") or die ("connexion impossible");
    mysql_select_db("joomla") or die ("pas de connection");
    $result = mysql_query( "SELECT username, id, password FROM `jos_users` GROUP BY username");
    while($data = mysql_fetch_assoc($result))
    {
     
      // on affiche les informations de l'enregistrement en cours
     
      $id = $data['id'];
 
      $lettre=substr($data['username'] , 0, 1); //selectionne la 1ere lettre du nom des clients
   
      if($save!=$lettre)
      {
        ?><p class="grand"><?php echo '<br>'.$lettre;?></p>
        <?php
      }
       
     
      ?><p style="text-align: center";><a href="http://127.0.0.1/joomla/index.php?option=com_content&view=article&id=55&id_client=<?php echo $id?>&Itemid=89"><?php echo '<b>'.$data['username'];?></a></p><?php
        $_SESSION['id'] = $id;
        $_SESSION['login'] = $data['username'];
     
           
      $save=$lettre;   
    }
  ?>
 


//profil.php

<?php
session_start();
?>

...

<?php
  $id=$_SESSION['id'];
  echo $id;
 
  $name=$_SESSION['login'];
  echo $name;
?>
 

Ici c'est toujours le dernier id et le dernier nom de ma table qui sont affichés, ce qui est logique d'après moi.
Ce que je sais pas, c'est comment, au clic sur le nom d'un client, récupérer les informations le concernant et les transmettre à une autre page ?

Voila j'espère que j'ai été assez clair et que vous pourrez m'aider.

Je vous remercie d'avance.

Ps : je ne me soucie pas du passage de paramètres en clair dans l'adresse.

Dernière modification par ziko (18-01-2011 16:34:43)

Hors ligne

#2 18-01-2011 17:17:13

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Sessions PHP

C'est le tableau $_GET qui t'intéresse dans ce cas là. wink

Hors ligne

#3 18-01-2011 17:53:37

ziko
Membre
Inscription : 22-12-2010
Messages : 43

Re : [Résolu] Sessions PHP

Merci xTG pour ta réponse rapide et efficace smile

J'ai maintenant un autre problème ^^ ben oui sinon c'est pas drôle.
Dans profil.php j'organise les informations sur le client sous forme d'onglets

Voici le code :


<body>
<div id="content">
<?php
  $id=$_GET['id_client'];
  $_SESSION['id_client'] = $id;
 
  echo $id;
?>

<div id="tabs">
<ul>
     <li><a href="#" rel="tab-general.php" class="selected"  onclick="loadit(this)">Infos gen</a></li>
   <li><a href="#" rel="tab-serveur.php" onclick="loadit(this)">Serveur</a></li>
   <li><a href="#" rel="tab-poste.php" onClick="loadit(this)">Poste</a></li>
   <li><a href="#" rel="tab-mco.php" onClick="loadit(this)">Materiel commun</a></li>
   <li><a href="#" rel="tab-abonnement.php" onClick="loadit(this)">Abonnement</a></li>
   <li><a href="#" rel="tab-imn.php" onClick="loadit(this)">Imprimante</a></li>
   <li><a href="#" rel="tab-interventions.php" onClick="loadit(this)">Interventions</a></li>
</ul>
<iframe id="container"></iframe>
</div>
 

Donc ici s'affiche dans ma page l'id du client c'est impecable, mais le même code php dans un onglet ne marche pas

affichage.th.png

As tu une idée ?

Hors ligne

#4 18-01-2011 19:31:10

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Sessions PHP

Quel est le code de ta page onglet ?

PS: vérification des champs qu'on récupère avant de les utiliser. wink
D'une part pour éviter les warnings et les notices.
Et d'autre part pour éviter tout simplement qu'un malin modifie l'url et puisse hacker ton site de cette façon.

Hors ligne

#5 19-01-2011 09:09:10

ziko
Membre
Inscription : 22-12-2010
Messages : 43

Re : [Résolu] Sessions PHP

Ma page onglet continent uniquement ceci :


<?php
session_start();
?>

...

<body>
<h1>mco</h1>
<p>Affichage de tous le materiel commun du cabinet</p>
<?php
  $id=$_GET['id_client'];
  $_SESSION['id_client'] = $id;
 
  echo $id;
?>
</body>
 

Mais je n'ai aucun champs, juste des urls sur ma page listclient.php et chaque liens me redirige vers le profil du client, ou la je veux faire un SELECT mes infos FROM ma table WHERE id=$id, pour pouvoir afficher des infos spécifique au client.

Ps : je ne sais pas si changer d'onglet revient à changer de page ?

Dernière modification par ziko (19-01-2011 09:17:20)

Hors ligne

#6 19-01-2011 13:06:04

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Sessions PHP

Dans ton système d'onglet tu ne passes aucune variable par $_GET.
Donc récupères plutôt la variable id_session dans $_SESSION. wink

Changer d'onglet revient à recharger une page, donc en quelque sorte c'est un changement oui.

Dernière modification par xTG (19-01-2011 13:06:45)

Hors ligne

#7 19-01-2011 14:18:06

ziko
Membre
Inscription : 22-12-2010
Messages : 43

Re : [Résolu] Sessions PHP

Hmm, j'ai fais comme tu m'a dis mais j'obtiens toujours le notice undefined.


//profil.php

<?php
session_start();
?>


<body>
<div id="content">
<?php
  $id=$_GET['id_client'];
  $_SESSION['id_session'] = $id;
 
  echo $id;

?>
 

et l'onglet ou je veux recup l'id :


<?php
session_start();
?>


<body>
<h1>Info général</h1>
<p>Affichage info géneral : a définir
</p>
<?php
  $id=$_SESSION['id_session'];

  echo "id : ".$id;
?>
 

J'ai loupé quelque chose ?

Hors ligne

#8 19-01-2011 15:14:50

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Sessions PHP

Bizarre... Le php est exécuté côté serveur donc le javascript devrait pas charger la page avant que la session n'ai été évaluée...
Si tu rajoutes un print_r($_SESSION);
dans les deux pages(à la fin) cela donne quoi ?

Hors ligne

#9 19-01-2011 15:36:11

ziko
Membre
Inscription : 22-12-2010
Messages : 43

Re : [Résolu] Sessions PHP

Un truc infame, pour profil.php sa donne
Array ( [__default] => Array ( [session.client.browser] => Mozilla/5.0 (Windows; U; Windows NT 6.1; fr; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 [session.counter] => 26 [registry] => JRegistry Object ( [_defaultNameSpace] => session [_registry] => Array ( [session] => Array ( [data] => stdClass Object ( ) ) ) [_errors] => Array ( ) ) [user] => JUser Object ( [id] => 62 [name] => Administrator [username] => admin [email]=> test@test.com. [password] => 98bb9a9tytrzr0d012b4d16c60zr9fd2bdef8b4890:THOFWc4Z77FNJk3a8z47a89ze4um5yn9PXoShdwMD79 [password_clear] => [usertype] => Super Administrator [block] => 0 [sendEmail] => 1 [gid] => 25 [registerDate] => 2010-12-15 14:21:30 [lastvisitDate] => 2011-01-19 09:07:15 [activation] => fc5ed2663a8859d0fd9374d32f16f03e:jumi166127$ [params] => admin_language= language= editor=tinymce helpsite= timezone=0 [aid] => 2 [guest] => 0 [_params] => JParameter Object ( [_raw] => [_xml] => [_elements] => Array ( ) [_elementPath] => Array ( [0] => C:\wamp\www\joomla\libraries\joomla\html\parameter\element ) [_defaultNameSpace] => _default [_registry] => Array ( [_default] => Array ( [data] => stdClass Object ( [admin_language] => [language] => [editor] => tinymce [helpsite] => [timezone] => 0 ) ) ) [_errors] => Array ( ) ) [_errorMsg] => [_errors] => Array ( ) ) [session.timer.start] => 1295442330 [session.timer.last] => 1295447398 [session.timer.now] => 1295447438 [session.token] => 27b728c772b68ea92a951003d057b745 )  [id_client] => 3 [id_session] => 6  [id] => )

et pour l'onglet :
Array ( [id_client] => )

Hors ligne

#10 19-01-2011 18:05:51

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Sessions PHP

Totalement loufoque de voir ça... La session est correcte sur la page profil.php et elle a totalement disparue sur l'onglet...

Joomla doit gérer d'une façon bien propre à lui les sessions ce qui fait que dans l'onglet qui n'est pas géré à partir du système de Joomla la session est recréée.
Il faudrait que tu appelles l'onglet comme un page intégrée au système de Joomla, sinon tu n'arriveras à rien avec la session.
Malheureusement de ce côté là je ne peux t'aider n'ayant jamais utilisé ce CMS. Mais je suppose que tu dois savoir le faire vu que tu as déjà fait ta propre page profil intégrée à Joomla.

Sinon il reste la solution facile et totalement pas propre qui consisterai à passer l'id par $_GET dans l'onglet...

Hors ligne

#11 20-01-2011 09:07:19

ziko
Membre
Inscription : 22-12-2010
Messages : 43

Re : [Résolu] Sessions PHP

Ben pour pouvoir intégrer ma propre page a Joomla j'ai télécharger un plugin du nom de Jumi qui permet d'inclure une page .php dans un article.
Le problème c'est que je souhaite avoir un article avec plusieurs onglets.

Et si il faut que j'appel chaque onglet dans un article spécifique, ca va devenir trop "brouillon" (trop de lien dans tous les sens), c'est pour ca que le système d'onglet me convenais parfaitement.

Une page profil, sur se profil plusieurs onglet, sur chaque onglets des données sur l'utilisateur.

Peu tu me donner un petit exemple pour la solution facile ? Car j'ai déjà essayé par la méthode $_GET mais ca n'a pas marché.

Hors ligne

#12 20-01-2011 09:52:09

ziko
Membre
Inscription : 22-12-2010
Messages : 43

Re : [Résolu] Sessions PHP

A ce que j'ai compris Joomla 1.5 a son propre système de gestion de Session ( géré dans JSession), et quand joomla se lance les variables sessions "ordinaires" sont détruites au profit des objets de la classe JSession.

Je vais chercher de se coté la. Mais je suis toujours preneur pour la solution facile et pas propre smile

Hors ligne

#13 20-01-2011 11:22:04

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : [Résolu] Sessions PHP

Bah mettre un ?id=$_SESSION['id_client'] dans les urls de tes onglets, mais après cela dépend de comment fonctionne ton outil d'onglet.

Sinon tu peux travailler avec un chargement complet (donc avec des include()) mais les mettre dans des div dont certains sont cachés (display:none).
Une bête fonction javascript pour changer les propriétés et le tour est joué.

Hors ligne

#14 20-01-2011 11:54:44

ziko
Membre
Inscription : 22-12-2010
Messages : 43

Re : [Résolu] Sessions PHP

Ok ben je viens d'essayer ta solution et ca a l'air de marcher, j'arrive à récupérer id_client dans mon onglet.

Un gros MERCI à toi, car ça faisait un petit moment que j'étais bloqué sur se problème.

Pour xTG hip hip hip, HOURAAAA

Merci encore smile

si un admin peu passer le topic en résolu.

Hors ligne

Pied de page des forums