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 :

Variable _SESSION lors de l'export sur serveur


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut Variable _SESSION lors de l'export sur serveur
    Bonjour à tous,

    J'ai cherché sur le forum, mais apparemment mon problème n'a pas été abordé par ici.

    J'ai fait une application web, avec un MCV en PHP classique (sans framework), qui fonctionne parfaitement avec mon localhost. (sous MAMP)

    C'est un questionnaire, qui est réparti sur plusieurs pages et chaque page est une question avec 4 choix (en bouton radio). Et à chaque page, je remplis ma variable de session comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $idReponse = $_POST['group']; //mes boutons radio du formulaire html font parti du groupe 'group'
    $_SESSION['rep'][$idQuestion]=$idReponse;
    En local, j'affiche (pour tester) la variable de session à chaque page, et elle se remplit page par page.

    En revanche, lorsque j'exporte via FileZilla mon travail sur le serveur de la boîte dans laquelle je suis en stage, ma variable de session ne se rempli pas normalement, et elle ne garde en mémoire que la dernière valeur ajoutée.

    Avez-vous une idée d'où cela peut-il venir ?

    Merci d'avance à tous ceux qui se pencheront sur mon soucis.

    EDIT : En effet, sabotage, je suis allé un peu vite en besogne !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Avec le code que tu nous montres il ne peut pas y avoir incrementation.

    Ca serait plutot quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['rep'][mettre_ici_l_id_de_la_question]=$idReponse;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    Oui en effet, c'est une erreur d'inattention, mais mon code est correct (j'ai pas copié collé)

    De plus, ça fonctionne très bien en local, donc je ne pense pas que ça vienne du code.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu as pu vérifier avec des cas plus simples que les sessions fonctionnaient bien sur ton serveur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    Ouaip, j'ai une partie back-office de ce questionnaire qui fonctionne avec une connexion requise, et un stockage des identifiants en session.
    Sur chaque page, une vérification de l'ouverture de session est faite, et cette partie fonctionne très bien

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    est-ce que tu as le meme identifiant de session de page en page quand tu as le problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    J'ai le problème uniquement sur le questionnaire.
    La seule utilité de $_SESSION est pour stocker les réponses aux questions. Aucune identification n'est nécessaire pour répondre au questionnaire.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    oui mais ...
    est-ce que tu as le meme identifiant de session de page en page quand tu as le problème ?
    http://php.net/manual/fr/function.session-id.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    Ahhh, j'avais mal saisi ! Désolé

    Oui. Que ce soit en local ou sur le serveur de ma boîte, l'id de session est le même de pages en pages

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que $idQuestion est bien alimenté ? Est-ce que tu l'as bien dans ta session ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    Oui, tout fonctionne correctement en local.

    En local, ma session se remplit comme ceci :
    (c'est un exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    { [1]=> string(1) "3" }
    { [1]=> string(1) "3" [8]=> string(1) "9"}
    { [1]=> string(1) "3" [8]=> string(1) "9" [9]=> string(2) "14"}
    { [1]=> string(1) "3" [8]=> string(1) "9" [9]=> string(2) "14" [10]=> string(2) "17"}
    etc etc
    C'est ce que je souhaite.
    Je peux donc récupérer, à la fin, les question et les réponses.

    Mais une fois qu'il est en ligne, voici ce que ça donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    { [1]=> string(1) "3" }
    { [1]=> string(0) "" [8]=> string(1) "9"}
    { [1]=> string(0) "" [9]=> string(2) "14"}
    { [1]=> string(0) "" [10]=> string(2) "17"}
    etc etc
    En fait, le $_SESSION['rep'][1] est vidé, et les autres (sauf celui qui vient d'être ajouté) deviennent carrément inexistants.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Peux-tu nous montrer le code entier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    Bien sur,

    Voilà le code du controller "Question"

    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
     
    public function numAction() {
            $idQuestion = $this->getFc()->getParam('id');
            $Question = new Question;
            $Reponse = new Reponse;
     
     
     
            if (is_numeric($idQuestion) and !empty($idQuestion)) {
                echo 'is num';
                $getQuestion = $Question->getQuestion($idQuestion);
                $arrayReponse = $Reponse->getReponses($idQuestion);
     
                $arrayIdChemin = $Question->getCheminQuestion($idQuestion);
                $idChemin = $arrayIdChemin['idChemin'];
                $arrayQuestionsChemin = $Question->getQuestionsChemin($idChemin);
     
                foreach ($arrayQuestionsChemin as $q) {
                    if ($q['idQuestion'] > $idQuestion) {
                        $arrayQuestionsRestantes[] = $q;
                    }
                }
     
                if (isset($arrayQuestionsRestantes)) {
                    $idQuestionSuivante = $arrayQuestionsRestantes[0]['idQuestion'];
     
                    if (!empty($idQuestionSuivante)) {
                        $addQuestionSuivante = "question/num/id/" . $idQuestionSuivante;
                    }
                } else {
                    if($idChemin==3 or $idChemin==4){
                        $addQuestionSuivante = "module/";
                    }
                    else{
                        $addQuestionSuivante = "infos/";
                    }
                }
     
     
                if (isset($_POST['group']) and !empty($_POST['group'])) {
                    $_SESSION['rep'][$_POST['idQuest']] = $_POST['group'];
                }
     
                if (isset($_POST['siteweb']) and !empty($_POST['siteweb'])) {
                    $_SESSION['coord']['siteweb'] = $_POST['siteweb'];
                }
                if (isset($_POST['nom']) and !empty($_POST['nom'])) {
                    $_SESSION['coord']['nom'] = $_POST['nom'];
                }
            } else {
                $idQuestion = 1;
                $getQuestion = $Question->getQuestion($idQuestion);
                $arrayReponse = $Reponse->getReponses($idQuestion);
            }
     
            if (!isset($_SESSION['rep'][$idQuestion])) {
                $_SESSION['rep'][$idQuestion] = '';
            }
            var_dump(session_id());
            var_dump($_SESSION['rep']);
     
     
     
            require 'views/question/question.php';
        }
    Et voici l'html correspondant à ma vue "question.php"
    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
     
    <?php include 'assets/include/head.php'; ?>
    <body>
        <div>
            <form method="POST" action="<?php echo $addQuestionSuivante;?>">
                <input type="hidden" id="idQuest" name="idQuest" value="<?php echo $getQuestion['idQuestion'] ?>"/>
                <?php
                if($idQuestion==6 or $idQuestion==7){
                echo utf8_encode($getQuestion['libQuestion']) . "<br>Ok, " .$_POST['nom']. utf8_encode($getQuestion['texteQuestion']) . "<br>";
                }
     
                    elseif($idQuestion==4 or $idQuestion==5) {
                        echo utf8_encode($getQuestion['libQuestion']) . "<br>" . utf8_encode($getQuestion['texteQuestion']) . " '".$_POST['siteweb'] ."' ?<br>";
                    }
                else {
                echo utf8_encode($getQuestion['libQuestion']) . "<br>" . utf8_encode($getQuestion['texteQuestion']) . "<br>";
                }
                ?>
                <br/>    
                <?php
                foreach ($arrayReponse as $aR) {
                    if ($_SESSION['rep'][$getQuestion['idQuestion']] == $aR['idReponse']) {
                        echo "<input id='radio" . $aR['idReponse'] . "'type='radio' class='boutonRadio' checked='checked' name='group' value='" . $aR['idReponse'] . "'/> <label for='radio" . $aR['idReponse'] . "' class='picto'><img src='./assets/imgs/picto/".$aR['imgReponse']. "'/>" . utf8_encode($aR['libReponse']) . "</label><br>";
                    } else {
                        echo "<input id='radio" . $aR['idReponse'] . "'type='radio' class='boutonRadio' name='group' value='" . $aR['idReponse'] . "'/> <label for='radio" . $aR['idReponse'] . "' class='picto'><img src='./assets/imgs/picto/".$aR['imgReponse']. "'/>" . utf8_encode($aR['libReponse']) . "</label><br>";
                    }
                }
     
     
                if($idQuestion==2 or $idQuestion==3){
                    echo "<input required name='siteweb' type='url' placeholder='http://www.monsite.ca' size='30'/>";
                }
                elseif($idQuestion==4 or $idQuestion==5){
                    echo "<input required name='nom' type='text' placeholder='Prénom' size='30'/>";
                }
                elseif($idQuestion==6 or $idQuestion==7){
                    echo "<input required name='tel' type='tel' placeholder='Ex : 514-277-7747' size='30'/>";
                }
     
                ?>
                <input type="submit" id="submit" value="NEXT"/>
     
            </form>
        </div>
    </body>
    </html>

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ta session démarre dans head.php ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    Non, je n'ai pas mis de session_start(). Ni dans les controllers, ni dans les views

    ça fonctionnait très bien sans sur mon localhost. Ça me paraissait bizarre aussi, mais sur le MVC sur lequel on m'a formé au boulot, je n'en n'avais jamais vu, et ça fonctionnait bien

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il peut y avoir un démarrage automatique de session.
    Est-ce que tu affiches/log bien toutes les erreurs sur ton serveur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 9
    Par défaut
    Malheureusement, je n'administre pas le serveur, et je n'ai aucune erreur au chargement des pages. Et je n'ai pas accès aux logs :/

    Ai-je le droit de mettre le lien du site sur lequel c'est uploadé ?
    Si ça peut être d'une utilité quelconque, sinon pas la peine ^^

Discussions similaires

  1. Proc export sur serveur
    Par vbadev dans le forum SAS Base
    Réponses: 3
    Dernier message: 18/03/2010, 17h04
  2. Réponses: 1
    Dernier message: 18/05/2009, 16h07
  3. problem lors de l'export sur EXCEL
    Par caracas dans le forum Débuter
    Réponses: 2
    Dernier message: 16/04/2009, 13h40
  4. [Delphi for PHP] V2 Exportation sur serveur
    Par andreditdd dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 19/11/2008, 08h07
  5. [AJAX] Mise sur serveur
    Par mms_1983 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/07/2007, 22h15

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