|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
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 :
Code :
EHPAD/GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=44&table=dossiers Au lieu d'avoir ce lien : Code :
EHPAD/GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=44&table=archiver Code :
EHPAD/GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=44&table=a Je n'arrive pas à comprendre pourquoi. Pouvez-vous m'aider à résoudre le problème? Merci d'avance pour votre aide, .Matt |
||
|
|
00
|
|
|
#2 | ||
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : mars 2007 Messages : 274 ![]() |
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 :
__________________
Smiley de Plomb 2009 Anciennement FrancoisIT |
||
|
|
10
|
|
|
#3 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
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 :
echo ' <a href="GEST_DOSSIER/pdf_dossier_resume.php?num_dossier='.$num_index.'&table='.$tech.'" target="_blank">Consulter PDF</a>'; |
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : mars 2007 Messages : 274 ![]() |
Est-ce que tu peux nous montrer une portion du code HTML généré avec le problème ?
__________________
Smiley de Plomb 2009 Anciennement FrancoisIT |
|
|
10
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : avril 2009 Messages : 83 ![]() |
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 :
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 |
||
|
|
10
|
|
|
#6 |
|
Membre éclairé
![]() Ingénieur développement logiciels Inscription : mars 2007 Messages : 274 ![]() |
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
__________________
Smiley de Plomb 2009 Anciennement FrancoisIT |
|
|
10
|
|
|
#7 | ||||||
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
Bonjour,
Avec ceette ligen c'est pareil : Code :
echo " <a href='GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=$num_index&table=".trim($tech)."' target=_blank>Consulter PDF</a>"; 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 :
Code :
header("Location: operation_dossier.php"); Et en fait dans pratiquement toutes mes pages, j'ai ce bout de code : Code :
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 :
|
||||||
|
|
00
|
|
|
#8 | |||||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 702 ![]() |
Salut
Code :
Théoriquement, ce sont les variables de sessions qu'il faudrait exploiter : Code :
Citation:
Il serait bon de faire afficher ces messages d'erreurs, ça aide à comprendre, donc à corriger si tel est le cas. Voir la directive display_errors du php.ini, la mettre à On (au moins lorsqu'on code).
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|||||
|
|
10
|
|
|
#9 | ||
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
Bonjour à toi,
En fait pour les variables $num_index et $tech, au dessus de mon IF j'ai une attribution de variables de sessions à ces variables : Code :
.Matt |
||
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
C'est dingue car ce bout de code est utilisé pour 2 type de dossier que ce soit du dossier en cours pour le type "dossier" et les dossiers archivés pour le type "archivé".
Et donc par exemple quand je crée un dossier j'ai un message qui s'affiche en passant par le même bout de code et en mettant la variable $tech=dossier. Pour tester j'ai changé la valeur de la variable pour voir si ça fonctionnait avec archivé et là ça fonctionne parfaitement et le code est identique c'est à ne rien y comprendre. .Matt |
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
Encore plus dingue, j'essaye de forcer la valeur $tech à "archiver" sans prendre en compte les variables de sessions et ça me bouffe la variable $tech dans l'url en ne me mettant que "a" et non "archiver" complet.
.Matt EDIT : Même en mettant ce code : Code :
echo " <a href='GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=$num_index&table=archiver' target=_blank>Consulter PDF</a>";
GEST_DOSSIER/pdf_dossier_resume.php?num_dossier=45&table=a EDIT 2: Même avec un autre mot que archiver, il me bouffe quand même tous les caractère sauf le premier. |
|
|
00
|
|
|
#12 | ||
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
pourquoi ne pas utiliser http_build_query
et fait l'inverse le php dans le html c'est beaucoup plus claire, (regarde tout les quotes qu'il te manque) Code :
__________________
http://blog.stealth35.com/ |
||
|
|
10
|
|
|
#13 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
Bonjour à toi,
ça revient au même. J'ai toujours la fin de mon URL qui est mangé quelque soit le mode de passage de l'URL. .Matt |
|
|
00
|
|
|
#14 | ||
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
Bonjour,
voici ce que celà donne. ![]() Code :
.Matt |
||
|
|
00
|
|
|
#15 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
mais quand tu cliques c'est bon ? la c'est le navigateur qui limite le nombre de caractères
__________________
http://blog.stealth35.com/ |
|
|
10
|
|
|
#16 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 702 ![]() |
Citation:
Tu devrais faire une peu de débuggage, comme afficher au moins ces données et ça, depuis le tout début, et ensuite voir comment elle évolues au fil des traitements (jusqu'au lien). Si ces données sont simplement initialisée, faire un simple echo de cette variable créer au départ. Si leurs contenus dépendent d'autres données telles que GET ou POST ou autres variables, alors faut faire de simples print_r($_GET) ou print_r($_POST) ou remonter à la source des variables. Même chose dans la page qui reçois ces données transmises via le lien (si elles ne sont pas conforment). Faut pas hésiter non plus à mettre un point d'arrêt (un exit) pour éviter les pièges. Bref, tout ça peu paraitre long, mais avec l'habitude c'est assez rapide, et à part de très rares cas particuliers, on arrive à savoir la ligne de code précise qui cause problème. A coté de ça, GET a une limite du nombre de caractère dans l'URL, mais je ne sais plus combien. Mais même question : Est juste un constat visuel ou est ce qu'une fois cliqué la donnée reçue est aussi tronquée ? Aussi, tu as 2 fois .../GEST_DOSSIER/GEST_DOSSIER/... dans l'URL, est ce normal ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
10
|
|
|
#17 | |||
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 386 ![]() |
Citation:
Donc en effet, la piste du double GEST_DOSSIER, m'a permis de me rappeler que les fichiers qui appellent le fichier php ou il y a cette URL ne sont pas dans la même arborescence et donc vu que mon fichier operation_dossier.php et dans la même dossier que mon pdf_resume_dossier.php et que je passe GEST_DOSSIER/ dans l'url, normal qu'il me le mette en double et donc de par le fait de cet erreur et que donc la méthode get ne permet pas de faire des URL aussi longues que l'on souhaite ==> mon prolbème de la valeur de $tech coupée venait de là. Donc en variable de session j'ai rajouté une variable $_SESSION['url'] qui me permet de passer soit : Code :
$_SESSION['url'] ="GEST_DOSSIER/pdf_dossier_resume.php"; Code :
$_SESSION['url'] ="pdf_dossier_resume.php"; Code :
MILLE MERCI A VOUS TOUS, .Matt |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com