Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème de session

free?

Sujet résolu
    7 avril 2007 à 19:53:24

    Je precise quand même que j'ai bien créé un dossier "sessions" à la racine.

    Mes sessions marchent quasiment très bien, mais certaines variables ne se transmettent pas d'une page à l'autre alors que d'autres oui... :(



    première, pourquoi ceci :

    //bla bla bla qui donne lieu au resltat requete_debut qui marche très bien...
    $_SESSION['id'] = $requete_debut['id'];
                    $_SESSION['pseudo'] = $pseudo;
                    $_SESSION['active'] = 1;
                    $_SESSION['famille'] = $requete_debut['famille'];
                    $_SESSION['rang'] = $requete_debut['rang'];
                    $_SESSION['pa'] = $total;

    $req_objets = mysql_query("SELECT bonus_objet FROM neo_objets WHERE possesseur='".$_SESSION['pseudo']."'") or die(mysql_error());
            $i=1;
            while($resultat_objets = mysql_fetch_array($req_objets))
            {
                    $_SESSION['perso']['bonus_caracs'][$i] = $resultat_objets['bonus_objet'];
                    $i++;
            }
    //
    echo '<pre>';
    echo print_r($_SESSION);
    echo '</pre>';


    qui me donne comme resultat :
    Array
    (
        [id] => 16
        [pseudo] => finalbob
        [active] => 1
        [famille] => 1
        [rang] => 4
        [pa] => -30
        [perso] => Array
            (
                [bonus_caracs] => Array
                    (
                        [1] => charisme:-2|esprit:+50
                        [2] => spiritisme:+5|charisme:+10
                    )

            )

    )




    se transmet bien d'une page à l'autre, mais disparait subitement ecrasé par ceci :


    <?php
    session_start();
    /* debut de la fonction de calcul du temps d'execution...*/
    $temps_debut = microtime(true);
    if(!$_SESSION['pseudo']){header('location: ../index.php?erreur=1');}
    mysql_connect('xxx', 'xxx', 'xxx');
    mysql_select_db('xxx');

    $requete_perso = mysql_query("SELECT * FROM neo_persos WHERE id='".$_SESSION['id']."'") or die(mysql_error());
    $perso = mysql_fetch_assoc($requete_perso);

    $_SESSION['posx'] = $perso['posx'];
    $_SESSION['posy'] = $perso['posy'];
    $_SESSION['perso']['pa'] = $perso['pa'];
    $_SESSION['perso']['force'] = $perso['forc'];
    $_SESSION['perso']['endurance'] = $perso['endurance'];
    $_SESSION['perso']['chasse'] = $perso['chasse'];
    $_SESSION['perso']['combat'] = $perso['combat'];
    $_SESSION['perso']['vie'] = $perso['vie'];
    $_SESSION['perso']['posx'] = $perso['posx'];
    $_SESSION['perso']['posy'] = $perso['posy'];
    $_SESSION['perso']['pseudo'] = $perso['pseudo'];
    echo '<pre>';
    echo print_r($_SESSION);
    echo '</pre>';


    et là il me balance :
    <pre>Array
    (
        [id] => 16
        [pseudo] => finalbob
        [active] => 1
        [famille] => 1
        [rang] => 4
        [pa] => -32
        [perso] => Array
            (
                [id] => 16
                [pseudo] => finalbob
                [pass] => xxx
                [mail] => finalbobcorp@hotmail.com
                [last_first_connexion] => 1175956180
                [temps_pa] => 1175966800
                [sexe] => 0
                [naissance] => 1144521514
                [famille] => 1
                [skin] => 2
                [vie] => 206
                [forc] => 463
                [endurance] => 2341
                [esprit] => 705
                [charisme] => 1304
                [chasse] => 3026
                [cueillette] => 2928
                [scout] => 840
                [combat] => 457
                [artisanat] => 10
                [professeur] => 10
                [spiritisme] => 10
                [rang] => 4
                [nom_rang] => chef de famille
                [posx] => 4
                [posy] => 6
                [pa] => -32
                [force] => 463
            )

        [posx] => 4
        [posy] => 6
    )
    1</pre>



    Pourquoi le champ $_SESSION['perso'] contient_il tout les champ de ma requete alors que je n'en veut que certains.... o_O'
    Et pourquoi la partie $_SESSION['perso'][bonus_caracs] a subitement disparue ????



    Est-on limités dans les sous tableaux sur les variables de sessions ?
    • Partager sur Facebook
    • Partager sur Twitter
      8 avril 2007 à 1:39:08

      Utilise un autre nom que $perso pour ton mysql_fetch_assoc()

      Car chez free le register_global est à on, donc $_SESSION['perso'] == $perso.
      • Partager sur Facebook
      • Partager sur Twitter
        8 avril 2007 à 18:12:44

        je crois que ça viens de foutre mon site en l'air là... faut que je me recogne toutes les pages.... :(

        Mais merci de l'info strucky ! :D
        • Partager sur Facebook
        • Partager sur Twitter

        problème de session

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown