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 18/08/2006, 12h12   #1
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
Par défaut PHP + Session

bonjour
j'insère dans ma variable session les résultats d'une requete pour les récupéré dans une seconde pas
le problème c'est que juste la première ligne du résultat de ma requete est inséré dans ma session
de plus il est inséré plusieurs fois

j'ai vérifier ma requete

voila le code pour inséré le resultat de ma requete
Code :
1
2
3
 
$ligne5=mysql_fetch_row(mysql_query($ReqSelec2));
	$_SESSION['GPAS']=serialize($ligne5);
voici le code dans ma seconde page pour récupéré mes données et les visualiser
Code :
1
2
3
 
$tab_GPAS =($_SESSION['GPAS']);
var_dump($tab_GPAS);
et voila ce ke j'obtient
string(78) "a:3:{i:0;s:1:"5";i:1;s:8:"new gpas";i:2;s:29:"juste pour tester pour le pdf";}"
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 12h15   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Sachant que mysql_fetch_row() (au passage, je te recommande plutôt fetch_array ou fetch_assoc) retourne un tableau, tu peux tout à fait mettre ce tableau directement dans la variable de session. Tu n'as pas besoin de serialize() dans ce cas.

Concernant les sessions elles-mêmes, je peux t'indiquer ces articles : http://php.developpez.com/cours/
Si tu ne trouves pas malgré tout, merci de donner davantage de détails.

[Edit] Vu que tu as modifié ton message, je fais de même.
Cela semble fonctionner, il ne te reste plus qu'à unserialize() ta variable de session (ou à ne pas la serialize() du tout...).
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 12h32   #3
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
voila j'ai tester en utilisant mysql_fetch_assoc et sans serialiser donc ca ne renvoie rien du tout
donc j'ai repris avec mysql_fetch_rox et seraliser puis unserialiser mais ca m'affiche deux fois la meme ligne
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 12h37   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Nous avons besoin de davantage de détails pour comprendre l'origine du doublon.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 12h42   #5
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
voila ma requete et l'insertion des résultats dans ma session
Code :
1
2
3
4
 
$ReqSelec2="Select id_gpas, titre_GpAS, description_GpAS from groupeas where id_pas=$id order by titre_gpas";
$ligne5=mysql_fetch_row(mysql_query($ReqSelec2));
$_SESSION['GPAS']=serialize($ligne5);
ce code se situe dans une première pgae
dans une seconde page je veu récupéré ces données
donc je fai
Code :
1
2
3
4
 
if( isset($_SESSION['GPAS'])) {
	$tab_GPAS =unserialize($_SESSION['GPAS']);
}
puis j'affiche mes résultat a l'aide d'une boucle for
Code :
1
2
3
4
5
6
7
8
 
for($i=0 ; $i < count($tab_GPAS) ; $i++){
	$pdf->SetFont('Arial','',10);
	$pdf->Cell(20,7,"Titre : ");
	$pdf->Cell(100,7,stripcslashes($tab_GPAS[1]),0,1);
	$pdf->Cell(25,7,"Description : ");
	$pdf->Cell(100,7,stripcslashes($tab_GPAS[2]),0,1);
}
mais il m'affiche trois fois la meme chose
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 12h59   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
En effet, tu te trompes dans ta boucle, il faut utiliser ton offset $i...
Une autre méthode (que je trouve plus pratique) consiste à utiliser foreach :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
$users = array(38506 => 'cell', 30724 => 'Yogui');
 
foreach($users as $user)
{
   echo $user.'<br />';
}
 
 
foreach($users as $id => $user)
{
  echo "$id - $user<br />";
}
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 13h55   #7
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
cela ne fonctionne pas mieu
il m'affiche que des lettres
Code :
1
2
3
4
5
6
7
8
 
foreach($tab_GPAS as $GPAS){
	$pdf->SetFont('Arial','',10);
	$pdf->Cell(20,7,"Titre : ");
	$pdf->Cell(100,7,stripcslashes($GPAS[1]),0,1);
	$pdf->Cell(25,7,"Description : ");
	$pdf->Cell(100,7,stripcslashes($GPAS[2]),0,1);
}
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 14h12   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Ahhh, boulet que je suis... Tu n'as pas récupéré tous les tuples de ta BDD, tu n'en as qu'un seul dans ta variable de session.
Voici comment faire : Comment débuter avec MySQL et PHP
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 14h18   #9
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
j'ai regardé ton lien mais je ne vois pas trop le rapport avec mon problème d'insertion de données dans ma session
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 14h20   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Peut-être n'as-tu pas regardé ce paragraphe : IV-B. Récupération d'un tableau
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 14h29   #11
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
si je sais me servir d'une boucle while
sauf ke mettre
while ($tab_GPAS) {
echo $tab_GPAS[0];
}
cela ne fonctionne pas du tout
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 14h53   #12
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Visiblement, tu as encore quelques progrès à faire, sans vouloir t'offenser.

Code :
1
2
3
4
5
6
7
8
9
$result = mysql_query($ReqSelec2);
 
$tab_GPAS = array($result);
while($ligne = mysql_fetch_row($result))
{
   $tab_GPAS[] = $ligne;
}
 
$_SESSION['GPAS'] = $tab_GPAS;
Puis ta boucle :

Code :
1
2
3
4
5
6
7
foreach($tab_GPAS as $GPAS){
    $pdf->SetFont('Arial','',10);
    $pdf->Cell(20,7,"Titre : ");
    $pdf->Cell(100,7,stripcslashes($GPAS[1]),0,1);
    $pdf->Cell(25,7,"Description : ");
    $pdf->Cell(100,7,stripcslashes($GPAS[2]),0,1);
}
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 15h11   #13
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
voila j'ai réussi
merci pour l'aide voila ce ke donne mon code pour mon pdf
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
<?php
/* on récupère les données stockées dans la session*/
session_start();
if(isset ($_SESSION['PAS']) && isset($_SESSION['GPAS']) && isset($_SESSION['AS'])) {
	$tab_PAS =unserialize($_SESSION['PAS']);
	$tab_GPAS =unserialize($_SESSION['GPAS']);
	$tab_AS =unserialize($_SESSION['AS']);
}
 
/* appel de la bibliothèque pdf */
require('../fpdf/fpdf.php');
 
/* appel de la page de connexion à la base de données */
include "../ConnexionBdd.php";
 
/* création du pdf */
$pdf=new FPDF();
$pdf->AddPage();
 
/* cadre du titre*/
$pdf->SetFont('Arial','B',15); // style de la police
$pdf->Cell(190,10, "Plan d'action : ".stripcslashes($tab_PAS[1]),0,0,'C');
 
/* cadre pour les informations sur le plan d'action */
$pdf->SetXY(5,25);
$pdf->Cell(200,20,"",0);
$pdf->SetXY(5,25); // position dans la page
$pdf->SetFont('Arial','B',10);
$pdf->Cell(200,5,"Informations sur le plan d'action",1,1,'C');
$pdf->SetFont('Arial','',10);
$pdf->Cell(25,7,"Responsable : ");
$pdf->Cell(50,7,stripcslashes($tab_PAS[3]),0,1);
$pdf->Cell(25,7,"Description : ");
$pdf->Cell(100,7,stripcslashes($tab_PAS[2]));
 
 
/* cadre pour les groupes d'actions */
$pdf->SetXY(5,50);
$pdf->Cell(200,20,"",0);
 
foreach($tab_GPAS as $GPAS){
	$pdf->SetX(5);
	$pdf->SetY($pdf->GetY()+10); // position dans la page
	$pdf->SetFont('Arial','B',10);
	$pdf->Cell(190,5,"Groupe d'action : ".$GPAS[1],1,1,'C');
	$pdf->SetFont('Arial','',10);
	$pdf->Cell(25,7,"Description : ");
	$pdf->Cell(100,7,$GPAS[2],0,1);
	foreach($tab_AS as $AS){
		if ($GPAS[0]==$AS[7]) {
			$pdf->SetX(15);
			$pdf->SetY($pdf->GetY()+5);
			$pdf->Cell(150,20,"",0);
			$pdf->SetY($pdf->GetY()+5); // position dans la page
			$pdf->SetFont('Arial','B',10);
			$pdf->Cell(80,5,"Action : ".stripcslashes($AS[0]),0,1,'C');
			$pdf->SetFont('Arial','',10);
 
			$pdf->Cell(25,7,"Responsable : ");
			$pdf->Cell(100,7,stripcslashes($AS[1]),0,1);
			$pdf->Cell(45,7,"Date de fin prévisionnelle : ");
			$pdf->Cell(50,7,stripcslashes($AS[4]),0,1);
			$pdf->Cell(45,7,"Date de fin réelle : ");
			$pdf->Cell(50,7,stripcslashes($AS[3]),0,1);
			$pdf->Cell(25,7,"Cotation : ");
			$pdf->Cell(50,7,stripcslashes($AS[5]),0,1);
			$pdf->Cell(25,7,"Thème : ");
			$pdf->Cell(50,7,stripcslashes($AS[6]),0,1);
			$pdf->Cell(25,7,"Commentaire : ");
			$pdf->Cell(50,7,stripcslashes($AS[2]),0,1);
		}
	}
}
 
 
$pdf->Output();
 
?>
merci
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 15h12   #14
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
Ah oui j'ai juste une petite kestion est ce ke les retour charriot sont géré automatiquement
ou faut il les traitées en coupant la chaine?
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2006, 15h15   #15
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Aucune idée, il va falloir que tu fasses des tests.
Pour avoir un code + propre, je te recommande vivement d'utiliser _assoc plutôt que _row. De même, je te rappelle que serialize() est complètement inutile.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2006, 13h41   #16
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
Par défaut pdf + session

voila j'ai utilisé la méthode précédente pour faire tout mes formulaire mais là j'ai un nouveau problème
le pdf n'affiche pas mes données
donc voila mon envoie de donnée dans ma page php
Code :
1
2
3
4
5
6
7
8
9
10
11
 
$ResPAD=mysql_query($ReqSelec1);
	while($lignePAD=mysql_fetch_row($ResPAD)){
		$resultPAD[] = $lignePAD;
	}
	$_SESSION['PAD']=$resultPAD;
	$ResGPAD=mysql_query($ReqSelec2);
	while($ligneGPAD=mysql_fetch_row($ResGPAD)){
		$resultGPAD[] = $ligneGPAD;
	}
	$_SESSION['GPAD']=$resultGPAD;
et dans la page de création du pdf voila ma récupération de données ainsi que l'affichage des données
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
session_start();
$tab_PAD =$_SESSION['PAD'];
$tab_GPAD =$_SESSION['GPAD'];
/* appel de la bibliothèque pdf */
require('../fpdf/fpdf.php');
 
/* création du pdf */
$pdf=new FPDF();
$pdf->AddPage();
 
/* cadre du titre*/
$pdf->SetFont('Arial','B',15);
$pdf->Cell(190,10, "Plan d'action : ".stripcslashes($tab_PAD[1]),0,0,'C');
donc cela n'affiche pas la données mais reste si
j'ai donc utilisé la fonction var_dump pour voir ce que contenait ma variable $tab_AD et cela m'affiche bien les bonnes données
Que dois je faire?
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 14h06   #17
Membre du Club
 
Inscription : mai 2004
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 199
Points : 59
Points : 59
j'ai revérifier et je crois avoir trouver le problème mais je ne sais pas le résoudre
il semblerai que lorsque que j'affiche les données avec la fonction var_dump chaque ligne de données correspond à un tableau qui serai ajouter dans un tableau
voila ci qu'il m'affiche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
array(1) {
  [0]=>
  array(7) {
    [0]=>
    string(1) "1"
    [1]=>
    string(4) "test"
    [2]=>
    string(3) "moi"
    [3]=>
    string(12) "bla bla"
    [4]=>
    string(38) "bla bla bla bla "
    [5]=>
    string(9) "bla bla bla "
    [6]=>
    string(1) "1"
  }
}
cell est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2006, 14h35   #18
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Un conseil se présentation, parce que là le débogage est plutôt illisible : met print_r() et var_dump() dans un tag <pre></pre>
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui 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 16h23.


 
 
 
 
Partenaires

Hébergement Web