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 24/04/2007, 15h03   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 67
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2007
Messages : 67
Points : 11
Points : 11
Par défaut Afficher ma session

Bonjour, je souhaiterai afficher ce qu'il y à dans ma session mais je n'y parviens pas; Il m'affiche Array ... ca m'avance ... Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$sql = "select * from langue";
	$req = mysql_query($sql);
 
	echo "<div class='ligne'>";
	while($langue=mysql_fetch_array($req)){
	    if($_SESSION["donnee"]!= null && in_array($langue['NOM'],$_SESSION["donnee"]))
	        $chk = "checked='checked' ";
	    else 
	        $chk = "";
	    echo "<label for='".$langue['NOM']."'>".$langue['NOM']."</label>";
	    echo "<input type=\"checkbox\" id= '".$langue['NOM']."' value= '".$langue['NOM']."' name='langParlee[]' ".$chk."/>";
	}
	echo "</div>";
En gros ce code représente un menu rempli de checkbox. Je voudrais connaitre la methode, voir le code afin qu 'il me dise :
Voici les langues : langue 1 langue 2 ... parlées .
Les langues parlées seraient bein evidemment les langues cochées
Merci d'avance
lynxxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 16h05   #2
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 426
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 426
Points : 2 813
Points : 2 813
Une petite fonction debug qui affiche le contenu de n'importe quoi
syntaxe
Code :
Debug::show('un message', $misc);
cette chose prend en compte une constante DAPCFG_DEBUG_SHOW et n'affiche les debug que lorsque la constante est à true.

cela permet de mettre des traces dans son code et de les enlever d'un coup partout.

elle fait partie de mon framework mais peut être utilisé n'importe ou

fichier : Debug.class.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
<?php
/*
 
            ----------------------------------------------
            |   CE FICHIER EST LIVRE PAR LE FRAMEWORK.   |
            |        IL NE DOIT PAS ETRE MODIFIE         |
            |     POUR LES BESOINS DE L'APPLICATION.     |
            ----------------------------------------------
 
*/
 
/*
   $Id: Debug.class.php,v 1.3 2007/01/30 14:27:34 sekaijin Exp $ 
*/
 
/** 
   @package debug
   @class Debug
   @brief Affichage formatté de n'importe quel objet ou variable.
 
	L'appel de la méthode Debug::show() provoque un affichage. Etant donné
	qu'après tout affichage il n'est plus possible d'envoyer des entêtes 
	Http et que cela est fortement préjudiciable au fonctionnement général 
	du framework (largement basé sur les sessions), show offre au besoin
	un lien pour poursuivre l'action ainsi interrompue.
 
   @section usage Mise en oeuvre par l'exemple
	<code>Debug::show("Nom de l'objet : ", $obj);</code>
	Affichage de la variable $obj précédé d'un laïus explicatif plus 
	ou moins verbeux à votre sauce. Il est possible d'utiliser le paramètre
	de commentaire pour afficher la valeur d'une autre variable de type 
	simple (int, string).
 
	La constante DAPCFG_DEBUG_SHOW, si elle est définie dans le fichier 
	de config et positionnée à false, permet de bloquer ces affichages 
	(souhaitable en production). L'affichage est donc activé par défaut.
 
	@remark Les méthodes obsolètes ont été retirées depuis la version 1.2.1.
 
   @author Jean Yves Terrien
   @author Patrick Dubois
 
*/
class Debug {
 
   /**
   Fournit la version de cette classe.
   */
   function getVersion() {
      return "1.4";
   }
 
   /**
      Affichage structuré d'une variable, quel que soit son type.
      Cet affichage embarque sa propre feuille de style mais qu'une seule
      fois pour l'ensemble des appels successifs à cette méthode. 
      Tous les styles sont gérés dans un DIV.Debug, aussi assurez-vous de 
      ne pas utiliser une classe de style nommée '.Debug' sur un 'DIV' de
      vos propres affichages.
 
      Notification de l'affichage au reste de l'application par une
      constante DEBUG_STARTED valorisée à true, car cet affichage va 
      bloquer les envois de header et donc le mécanisme de session. 
      Les méthodes qui gèrent ces mécanismes pourront en tenir compte.
 
      @param message (string) message à afficher avant la valeur
      @param value (any) variable (ou expression) à évaluer
   */
   function show($message, $value=NULL) {
      static $_styled = false;
 
      if (defined("DAPCFG_DEBUG_SHOW") and !DAPCFG_DEBUG_SHOW) return false;
      if (!defined('DEBUG_HTML')) define('DEBUG_HTML',true); //affiche pas les débug HML (false en commentaire)
 
      @define('DEBUG_STARTED', true);
 
      $trace = debug_backtrace();
      $fichier = basename($trace[0]["file"]);
      $ligne = $trace[0]["line"];
      $txt =  '<div class="file">Dans ' . $fichier . ":" . $ligne . "</div>";
      $print_trace = create_function('$trace', 
         'unset($trace[0]); //concerne myErrorHandler sans importance
         if (count($trace) > 0) {
            if (!DEBUG_HTML) echo "\n";
            echo "<ul class=\"caller\">";
            foreach ($trace as $entry) {
               if (!DEBUG_HTML) echo "\n";
               echo "<li class=\"caller\">Appel de : <b>";
               if (isset($entry["class"])) {
                  echo $entry["class"] . "::" . $entry["function"];
               } else {
                  echo $entry["function"];
               }
               echo "()</b>";
               if (isset($entry["file"])) {
                  echo "<br>dans <i>";
                  echo $entry["file"];
                  echo ":" . $entry["line"];
                  echo "</i>";
               }
               echo "</li>";
            }
            if (!DEBUG_HTML) echo "\n";
            echo "</ul>";
            if (!DEBUG_HTML) echo "\n";
         }');
      if (!$_styled&&DEBUG_HTML) {
         // on n'écrit une section style qu'une seule fois sur le flux courant
         // quel que soit le nombre d'appels à cette méthode.
         echo "\n<!-- STYLES pour DEBUG -->\n";
         echo "<style>\n";
         echo "   div.Debug {text-align:left; }\n";
         echo "   div.Debug pre {padding:3px; color:#333333; background-color:#DDDDDD; font-family: mono; font-size: 9pt; line-height:10pt;}\n";
         echo "   div.Debug .file {color:#666666; font-style:italic; padding-bottom:5px;}\n";
         echo "   div.Debug .message {color:#006600;}\n";
         echo "   div.Debug .stabilo {background-color:yellow; padding-left:3px; padding-right:3px;}\n";
         echo "   div.Debug .caller {color:#003399; list-style:square; margin:8px; line-height:9pt;}\n";
         echo "</style>\n";
         echo "<!-- fin STYLES pour DEBUG -->\n";
         $_styled = true;
      }
      echo "\n\n<!-- DEBUG";
      if (DEBUG_HTML) echo " -->";
      echo "\n";
      echo '<div class="Debug"><pre>';
      if (is_array($value) || is_object($value)) {
         echo $txt . '<span class="message">' . $message . '</span>' . " => ";
         print_r($value);
         $print_trace($trace);
      } elseif (@is_bool($value)){
         echo $txt . '<span class="message">' . $message . '</span>' . " => " . ucfirst(gettype($value)) . "\n";
         if ($value) {
            $value = "True";
         } else{
            $value = "False";
         }
         echo "{\n    [] => " . $value . "\n}";
         $print_trace($trace);
      } elseif (@is_null($value)){
         echo $txt . '<span class="stabilo">' . $message . '</span>';
         $print_trace($trace);
      } elseif (@is_string($value) && @is_file($value)) {
         echo $txt . '<span class="message">' . $message . '</span>' . " => File\n";
         echo "{\n    [] => " . $value . "\n}";
      } else {
         echo $txt . '<span class="message">' . $message . '</span>' . " => " . ucfirst(gettype($value)) . "\n";
         echo "{\n    [] => " . $value . "\n}";
         $print_trace($trace);
      }
      global $DAP;
      if (defined('DAPCFG_PERFORMANCE_SHOW') && DAPCFG_PERFORMANCE_SHOW) {
        print '<p style="color:#333333; font-family:monospace; font-size:8pt;"';
        print ' title="Pour supprimer cet affichage de performance, passez la clé de configuration DAPCFG_PERFORMANCE_SHOW à false.">';
        print 'Traitement:' . sprintf("%0.3f", @$DAP->chrono->read()) . 's';
        print '</p>';
      }
      echo "</pre>\n</div>\n";
      if (DEBUG_HTML) echo "<!-- ";
      echo "fin DEBUG -->\n";
      echo "\n";
   } // fin function show
 
} // fin class Debug
voilà
Code :
1
2
3
require_once 'Debug.class.php';
define('DAPCFG_DEBUG_SHOW', true);
Debug::show('Ma session', $_SESSION);
cet appel va afficher quelque chose comme
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
Dans RendezVousAction.class.php:319
Ma session => Array
(
    [messenger] => messenger Object
        (
            [messages] => Array
                (
                )
 
            [autoFormat] => 1
        )
 
    [forward] => forward Object
        (
            [subject] => RendezVousAction
            [action] => showForm
            [type] => Action
            [anchor] => 
        )
)
Appel de : rendezvousaction::showform()dans C:\Local\Htdocs\rdvboutique2\dap\controller\DapAction.class.php:116
Appel de : rendezvousaction::invoke()dans C:\Local\Htdocs\rdvboutique2\dap\controller\DapController.class.php:132
Appel de : dapcontroller::run()dans C:\Local\Htdocs\rdvboutique2\dap\controller\DapActionController.class.php:157
Appel de : dapactioncontroller::run()dans C:\Local\Htdocs\rdvboutique2\dap\controller\index.php:72
Traitement:0.324s
qui te dit que ton débug à été fait dans le fichier : RendezVousAction.class.php à la ligne 319
puis t'affiche le contenu et le type de ta varriable
et enfin d'affiche la pile d'exécution de tes fonctions avec le nom et la ligne des fichier de ses appels.
et enfin te donne le temps de traitement.
le tout avec une mise en forme basique lisible
sekaijin est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 16h25   #3
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
oui ... enfin, c'est bien beau de faire ça en POO, mais avec un petit
ça va quand même plus vite, non ?
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 16h38   #4
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 67
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2007
Messages : 67
Points : 11
Points : 11
Surtout que je n'ai pas encore commencé la POO, j'avoue que le premier message m'a un peu chamboulé .
je viens d'essayer ceci mais sans résultat
Code :
1
2
3
4
5
$tab = array ($_SESSION['donnee1']);
	foreach ($tab as $val)
	{
	print "$val<br/>";
	}
lynxxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 16h43   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 67
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2007
Messages : 67
Points : 11
Points : 11
Hervé Saladin, ta fonction fonctionne mais je souhaiterais l'afficher selon ma boucle. Lorsque je mets mon code, il ne m'affche que " array", comment résoudre cela?
lynxxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 16h52   #6
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
Code :
1
2
foreach($_SESSION as $element)
     print($element.'<br/>');
c'est bien ça que tu veux ?
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 16h58   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2007
Messages : 67
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : avril 2007
Messages : 67
Points : 11
Points : 11
Un grand merci Hervé Saladin, ca fonctionne
lynxxx 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 16h00.


 
 
 
 
Partenaires

Hébergement Web