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 :

Probleme dans le passage des variables dans URL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Par défaut Probleme dans le passage des variables dans URL
    Bonjour,

    J'ai un petit problème que je n'arrive pas à comprendre.

    Le contexte :

    J'ai 2 pages en PHP.
    La première permet de visualiser des dossiers dans un tableau.
    Dans ce tableau il y a une colonne qui permet en cliquant sur un lien d'orienter l'utilsiateur vers la deuxième page avec en passage de variable (méthode GET) des paramètres :
    - Le numéro du dossier
    - Le type de dossier (archiver ou dossiers)

    La deuxième page permet en récupérant les 2 variables par la méthode GET de générer un PDF qui affiche toutes les informations du dossier.


    Mon problème le voici : Il est sur le lien de la première page qui oriente vers la deuxième page.

    Voici le code qui génére le lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // --- POUR ACCES PDF DOSSIER
    if((isset($_SESSION['num_index'])) && (isset($_SESSION['tech'])))
    {
    	echo $tech;
    	echo " <a href='GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=$num_index&table=$tech target=_blank>Consulter PDF</a>";
    	unset($_SESSION['num_index']);
    	unset($_SESSION['tech']);
    }
    Quand je passe le paramètre dossiers pour la variable table j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EHPAD/GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=44&table=dossiers
    Mais avec le paramètre archiver, j'ai un problème avec le paramètre table.
    Au lieu d'avoir ce lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EHPAD/GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=44&table=archiver
    J'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EHPAD/GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=44&table=a
    Il me manque un bout du mot "archiver".
    Je n'arrive pas à comprendre pourquoi.

    Pouvez-vous m'aider à résoudre le problème?

    Merci d'avance pour votre aide,

    .Matt

  2. #2
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Est-ce que le "echo $tech" que tu met avant d'afficher le lien renvoie bien archiver ?

    Sinon je ferais une petite modification au niveau de l'echo du lien ( de plus tu n'avais pas complètement fermer l'attribut href) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if((isset($_SESSION['num_index'])) && (isset($_SESSION['tech'])))
    {
    	echo $tech;
    	echo ' <a href="GEST_DOSSIER/pdf_dossier_resume.php?num_dossier='.$num_index.'&table='.$tech.'" target="_blank">Consulter PDF</a>';
    	unset($_SESSION['num_index']);
    	unset($_SESSION['tech']);
    }

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Par défaut
    Bonjour à toi,

    Oui j'avais mis le echo pour voir ce que retourne le $tech et il me renvoit bien "archiver" et non "a".

    .Matt

    EDIT :
    J'ai fais la modification comme tu as mis et je le même problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ' <a href="GEST_DOSSIER/pdf_dossier_resume.php?num_dossier='.$num_index.'&table='.$tech.'" target="_blank">Consulter PDF</a>';

  4. #4
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Est-ce que tu peux nous montrer une portion du code HTML généré avec le problème ?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Par défaut
    Bonjour,

    Il doit y avoir un caractère dans ta variable qui "casse" le code HTML.

    Je pense qu'il doit s'agir d'un "\r" ou autre chose du genre qui ne s'affiche pas à l'écran lorsque du fais un echo.

    tu peux essayer ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo " <a href='GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=$num_index&table=".trim($tech)."' target=_blank>Consulter PDF</a>";
    La fonction trim enlève tous les caractères superflus (doubles espaces, \r\n, etc.).

    Si malgré tout ca ne fonctionne pas, il ya un caractère dans ta variable.
    Il faudra isoler le problème en utilisant plusieurs techniques (htmlentities, utf8_encode, etc.).


    J'espère que tout ca pourra t'aider

  6. #6
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    Un copier coller du code source HTML, nous montrerais si ce qu'indique anthony89 se produit (ou quelque chose de similaire).

    En attente de ton retour.
    Courrage

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 467
    Par défaut
    Bonjour,

    Avec ceette ligen c'est pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo " <a href='GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=$num_index&table=".trim($tech)."' target=_blank>Consulter PDF</a>";
    ça me met que "a" dans la variable $tech.

    Donc je m'explique sur le cheminement.

    L'affichage de ce lien ce fait lorsque j'archive un dossier.
    Mon fichier s'appele generer_archiver_dossier.php.

    Dans son code à la fin j'initialise les variables de session num_index et tech
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // --- DOSSIER ARCHIVER AVEC SUCCES - INDEX MESSAGE A AFFICHER
    $_SESSION['message_ope_index'] = 61;
    // --- PASSAGE DU NUMERO DE DOSSIER + TABLE A TAPER
    $_SESSION['num_index'] = $num_dossier;
    $_SESSION['tech'] = "archiver";
    Aprés celà dans ce même fichier j'ai un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: operation_dossier.php");
    Celui-ci me redirige vers le tableau (operation_dossier.php) initial qui m'affiche la liste des dossiers existants avec des opérations qui peuvent être faites (suppression, modification, archivage ou consultation).

    Et en fait dans pratiquement toutes mes pages, j'ai ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // --- INSERTION DU FICHIER PHP D'AFFICHAGE DU MESSAGE D'OPERATION
    include("../php/affichage_message_ope.php");
    Celui ci me permet d'afficher un message à l'utilisateur en fonction d'une variable de session créé au même que celle du num_index et de tech.

    Et en fait c'est dans le fichier affichage_message_ope.php que ce trouve ce lien qui n'affiche pas archiver en entier.
    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
    // --- AFFICHAGE DU MESSAGE D'OPERATION	
    IF (ISSET($_SESSION['message_ope_index']))
    {
    	echo "<u>Message</u> : <b>"; echo $message_tab[$_SESSION['message_ope_index']]; 
    	// --- POUR ACCES PDF DOSSIER
    	if((isset($_SESSION['num_index'])) && (isset($_SESSION['tech'])))
    	{
    		// --- AFFICHAGE DU LIEN POUR CONSULTATION PDF
    		echo " <a href='GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=$num_index&table=$tech' target=_blank>Consulter PDF</a>";
    		// --- SUPPRESION DES VARIABLES DE SESSION AU CAS OU
    		unset($_SESSION['num_index']);
    		unset($_SESSION['tech']);
    	}
    	echo"</b>";
    	echo '<br /><br />';
    	// --- SUPPRESION DE LA VARIABLE DE SESSION
    	unset($_SESSION['message_ope_index']);
    }
    .Matt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/10/2013, 11h36
  2. [Javascript][get]Enlevez des variables dans une url
    Par bouba83 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/12/2006, 14h31
  3. passage de variables dans l'url
    Par pimpmyride dans le forum Langage
    Réponses: 1
    Dernier message: 26/03/2006, 16h35
  4. Réponses: 4
    Dernier message: 30/12/2005, 11h07
  5. Réponses: 6
    Dernier message: 19/12/2005, 13h41

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