IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

PHP + Session


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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";}"

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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...).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    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

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Nous avons besoin de davantage de détails pour comprendre l'origine du doublon.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    voila ma requete et l'insertion des résultats dans ma session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 />";
    }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    cela ne fonctionne pas mieu
    il m'affiche que des lettres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    }

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    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

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Peut-être n'as-tu pas regardé ce paragraphe : IV-B. Récupération d'un tableau

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    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

  12. #12
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Visiblement, tu as encore quelques progrès à faire, sans vouloir t'offenser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
    }

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    voila j'ai réussi
    merci pour l'aide voila ce ke donne mon code pour mon pdf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    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?

  15. #15
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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"
      }
    }

  18. #18
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    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>

Discussions similaires

  1. Probleme PHP , SESSION
    Par marie4449 dans le forum Langage
    Réponses: 11
    Dernier message: 31/05/2006, 11h32
  2. Erreur php session() dans error.log serveur
    Par JoN28fr dans le forum Langage
    Réponses: 3
    Dernier message: 30/05/2006, 21h34
  3. [AJAX] Ajax, Php, Sessions, OScommerce
    Par Florent08800 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/05/2006, 10h57
  4. Réponses: 18
    Dernier message: 11/05/2006, 10h32
  5. [SOAP / PHP] Sessions et Timeout
    Par Geomaster dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 09/12/2005, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo