Partage
  • Partager sur Facebook
  • Partager sur Twitter

Garder données obtenues en get

    20 janvier 2018 à 14:47:17

    Bonjour, j'essaie de faire un outil de gestion de tickets incidents. J'ai un problème lorsque je veux saisir une réponse pour mon ticket j'ai des problèmes pour récupérer l'id de mon ticket, pourtant je le stock bien dans une variable de session, et j'ai bien une session ouverte.

    Je pense qu'il s'agit d'un problème avec mon url quand je clique sur mon lien pour avoir la page de dialogue j'ai ça dans l'url dialogueTicket.php?id=15 et quand je clique sur mon bouton envoyé j'ai ça dialogueTicket.php. Et comme je récupère l'id de mon ticket en get cela ne trouve pas mon id et donc ne le stocke pas dans ma variable de session. Donc j'aimerai savoir comment fixer mon attribut pour ne pas le perdre et ainsi pouvoir bien insérer mes données ?

    Voilà mon code

    <?php
    
    //Requiere navbar + style
    
    require_once 'includes/head.php';
    require_once 'includes/navbar.php';
    require_once 'includes/footer.php';
    
    //Requiere des classes
    
    require_once 'mesClasses/Csalarie.php';
    require_once 'mesClasses/Cticket.php';
    require_once 'mesClasses/CticketRep.php';
    require_once 'mesClasses/Cvisiteur.php';
    
    
    $idTic = $_GET['id']; //On récupère l'id du ticket sur lequel on a cliqué dans la page d'historique des tickets
    $_SESSION['idTicket'] = $idTic; //On met l'id du ticket en variable de session pour pouvoir le récupérer
    $oTickets = new Ctickets();
    
    //Trie entre les salariés bureau et les visiteurs afin d'exécuter la bonne requête
    
    if(isset($_SESSION['visiteur'])){
        $id = unserialize($_SESSION['visiteur'])->id; //On récupère l'id du visiteur qui est connecté
        $ticket = $oTickets->getTicketByIdTicketAndByIdVis($_SESSION['idTicket'], $id); //On récupère les infos du ticket par rapport à l'id du ticket et par rapport à l'id de la personne connectée ici un visiteur
    }
    elseif(isset ($_SESSION['salarieBureau'])){
        $id = unserialize($_SESSION['salarieBureau'])->id; //On récupère l'id du salarie bureau connecté
        $ticket = $oTickets->getTicketByIdTicketAndByIdSal($_SESSION['idTicket'], $id);
    }
    //Si l'utilisateur est un admin on récupère son id, cela sera utile pour la partie saisie de réponse au ticket
    elseif (isset($_SESSION['adminReseau'])){
        $id = unserialize($_SESSION['adminReseau'])->id;
    }
    //var_dump($ticket);
    
    ?>
    
    <div class="containerDialogueTicket">
        <p class="h4 text-center mb-4">Dialogue autour du ticket numéro : <?php echo $_SESSION['idTicket']; ?></p>
        <div class="row">
            <div class="col-md-4">
                <p>Informations sur le ticket : </p>
                <?php
    
                    foreach ($ticket as $tic) {
    
                        echo "<p>Auteur : " . strtoupper($tic->nom) . " " . $tic->prenom . "</p>";
                        $date = strtotime($tic->dateTic); //$tic->dateTic est converti en int afin de changer le format de la date 
                        if (isset($_SESSION['adminReseau'])){
                            echo "Reçu le : " . date('d/m/Y', $date); //Affichage de la date au format dd-mm-aaaa
                        }
                        else{
                            echo "Envoyé le : " . date('d/m/Y', $date); //Affichage de la date au format dd-mm-aaaa
                        }
    
                        echo "<p>Dernière réponse le : </p>";
                        echo "<p>Par : </p>";
    
    
                    }
    
                ?>
            </div>
            <div class="col-md-8">
                <p class="h6 mb-4">Dernier message :</p>
                
            </div>   
        </div>
    </div>
    
    <?php
    echo $_SESSION['idTicket'];
    if(isset($_POST['btnSubmit'])){
        
        $oTicketReps = new CticketReps();
        
        //On vérifie que le ticket possède des réponses 
        $tableauRep = $oTicketReps->getCollReponseForOneTicket($idTic);
        $existRep = empty($tableauRep);
    
        
        //Cas 1 : L'admin n'a pas répondu au ticket et le visiteur ou le salarié saisie une réponse
        if(isset($_SESSION['visiteur']) || isset($_SESSION['salarieBureau']) && $existRep == 1){
            $oTicketReps->insertNewTicketRep($_POST['reponse'], 'NULL', $_SESSION['idTicket'], $id, 'NULL');
            echo 'ok';
        }
        
        //Cas 2 : L'admin répond en premier et le visiteur ou le salarié bureau reponde ensuite
    }
    
    ?>
    
    <div class="containerRepTic">
        <form action="dialogueTicket.php" method="post">
        <p class="h6 text-center mb-4">Saisir votre réponse</p>
        <br>
        <div class="md-form">
            <i class="fa fa-align-left prefix grey-text"></i>
            <textarea id="form10" class="md-textarea" name="reponse" rows="7.25"></textarea>
            <label for="form10">Votre réponse</label>
        </div>
        <br>            
        <center><input type="file" name="file_inc" /></center>
        <br>
        <div class="text-center">
            <div class="boutonCouleur">
                <button class="btn btn-default" name="btnSubmit" type="submit">Envoyer la réponse</button>
            </div>
        
    </div>
    
    
    
    

    Et le code ma classe CticketRep

    <?php
    
    require_once 'mesClasses/Cdao.php';
    
    class CticketRep {
        
        public $id;
        public $reponse;
        public $dateRep;
        public $screen;
        public $idTic;
        public $idAuteurTic;
        public $idAdmin;
    }
    
    class CticketReps {
        
        public $ocollTicketRepById;
        public $ocollTicketRepByIdTicket;
        
        public function __construct() {
            
            try{
                
                $dao = new Cdao();
                $query = "SELECT * FROM ticket_rep";
                $oTicketReps = $dao->getTabObjetFromSql($query, 'CticketRep');
                
                $this->ocollTicketRep = array();
                
                foreach ($oTicketReps as $oTicketRep){
                    
                    $this->ocollTicketRepById[$oTicketRep->id] = $oTicketRep;
                    $this->ocollTicketRepByIdTicket[$oTicketRep->idTic] = $oTicketRep;
                }
                
                unset($dao);
                
            }
            catch(PDOException $e) {
                
                $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
                die($msg);
            }
        }
            
        public function insertNewTicketRep($sReponse, $sScreen, $sIdTic, $sIdAuteurTic, $sIdAdmin){
                
            $dao = new Cdao();
            $query = "INSERT INTO ticket_rep (reponse, dateTicRep, screen, idTic, idAuteurTic, idAdmin) VALUES ('" . addcslashes(htmlspecialchars($sReponse), "'") . "', '" . date("Y-m-d") . "', '" . $sScreen . "', '" . $sIdTic . "', '" . $sIdAuteurTic . "', '" . $sIdAdmin . "')";
                
            $dao->insertion($query);           
            unset($dao);
        }
        
        public function getCollReponseForOneTicket ($sidTicket){
            
            return $this->ocollTicketRepByIdTicket[$sidTicket];
        }
    }
    
    
    ?>
    
    




    • Partager sur Facebook
    • Partager sur Twitter
      20 janvier 2018 à 19:52:05

      Salut,

      Soit tu fais :

       <form action="dialogueTicket.php?id=<?php echo $_SESSION['idTicket'] ?>" method="post">


      Sinon tu fais :

      if( isset( $_GET['id'] )) {
      	$idTic = $_GET['id'];
      	$_SESSION['idTicket'] = $idTic;
      } else {
      	$idTic = $_SESSION['idTicket'];
      }

      Mais ton problème vient de là en tous cas ^^ .

      • Partager sur Facebook
      • Partager sur Twitter
      Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

      Garder données obtenues en get

      × 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