Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2948 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Passer les caractères ' et & en parametre ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Passer les caractères ' et & en parametre ?

n°300525
bab
Posté le 03-02-2003 à 23:59:32  profilanswer
 

je voudrais savoir comment faire passer les caractère ' et & en paramètre.
 
par exemple : truc.php?param1=voilà%20l'objet

mood
Publicité
Posté le 03-02-2003 à 23:59:32  profilanswer
 

n°300528
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2003 à 00:07:01  profilanswer
 

pour le ' , on évite normalement. Pour le &, c'est & a m p; (sans les espaces).

n°300530
bab
Posté le 04-02-2003 à 00:09:54  profilanswer
 

merci.
 
en fait pour le ' je viens de remarqué quand dans la barre d'adresse ça reste un ' alors qu'une fois dans la page ça devient un \'
 
donc c'est bon en fait, traitement facile

n°300541
bab
Posté le 04-02-2003 à 00:18:04  profilanswer
 

j'en reviens à mes &, ça change rien avec &
 
le problème c'est que dès qu'il rencontre un & il interprete ça comme une nouvelle variable ...
 
il y'a ne solution ?

n°300550
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2003 à 00:23:39  profilanswer
 

Arrêtes de faire passer ce genre de truc par l'adresse, c'est pas prévu pour, un point c'est tout. ya le POST pour ça ainsi que les variables de session.

n°300552
bab
Posté le 04-02-2003 à 00:25:19  profilanswer
 

en fait, j'ai pas le choix ...
c'est pour de lecture de fichier qui existent déjà et certains comportent des caractères & dans le nom

n°300555
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2003 à 00:27:35  profilanswer
 

On a toujours le choix. Tu peux affecter un simple numéro à chacun de tes fichiers si par exemple il s'agit d'une liste de fichier. Soit en passant par un tableau, soit une BDD en rajoutant un champ, cela dépend de ce que tu cherches à faire. Mais de toutes façon encore une fois, on ne fait pas passer n'importe quoi dans l'adresse. ;)

n°300558
bab
Posté le 04-02-2003 à 00:30:21  profilanswer
 

j'ai bien trouvé une solution mais c'est un peu du bricolage, si quelqu'un a mieux c'est pas de refus ...
 
(en passant par exemple car_amp au lieu de & et en retransformant & par car_amp une fois les paramètres passés)

n°300560
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2003 à 00:32:36  profilanswer
 

Expliques clairement ce que tu veux passer exactement dans ta barre d'adresse ainsi que les circonstances EXACTES dans lesquelles s'opère ton truc.  :whistle:

n°300570
bab
Posté le 04-02-2003 à 00:43:52  profilanswer
 

j'ai par exemple :
 
http://page.php?var1=toto&var2=ex1&ex2
 
et je voudrais récupérer dans la page :
 
$var1 --> toto
$var2 --> ex1&ex2

mood
Publicité
Posté le 04-02-2003 à 00:43:52  profilanswer
 

n°300592
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2003 à 00:55:56  profilanswer
 

C'est pas ma question.
 
Ma question, c'est pourquoi tu veux passer ça en paramètre. Quelles sont les circonstances de ce passage. Tu prends une liste de fichiers ? tu la génères ? tu la récupères via un dir dans un répertoire ?

n°300595
bab
Posté le 04-02-2003 à 00:59:19  profilanswer
 

c'est pour de la lecture de fichiers mp3
 
pour résumer, je lis la liste des fichiers d'un repertoire puis j'envoi un de ces noms (qui peut donc contenir le caractère &) vers une page qui joue le fichier son
 
je ne peux pas "m'amuser" à vérifier tous les noms pour remplacer les éventuels caractères & car il y en a quand meme quelques milliers ...

n°300600
ethernal
Chercheur de vérité...
Posté le 04-02-2003 à 01:09:13  profilanswer
 

si tu veux encoder une url :
$encoded= urlencode($var);  
et  
$var= urldecode($encoded); pour la récupérer.
 
sinon, tu as aussi base64encode/base64decode (mais alors c'est illisible)
 
j'ai pas lu ce que tu voulais en faire donc...

n°300604
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2003 à 01:52:43  profilanswer
 

Bab a écrit :

c'est pour de la lecture de fichiers mp3
 
pour résumer, je lis la liste des fichiers d'un repertoire puis j'envoi un de ces noms (qui peut donc contenir le caractère &) vers une page qui joue le fichier son
 
je ne peux pas "m'amuser" à vérifier tous les noms pour remplacer les éventuels caractères & car il y en a quand meme quelques milliers ...


 
Et bien lorsque tu listes ton répertoire, tu as qu'à faire un tableau avec un numéro en face de chaque fichier. Tu passes ce numéro dans l'URL, puis dans la page suivante, tu récupères le nom du fichier en refaisant un dir et en reprenant le nom en fonction du numéro toujours à l'aide d'un tableau. Je ne vois pas où est le problème. Sinon, t'as aussi la solution d'Ethernal.

n°300637
antp
Super Administrateur
Champion des excuses bidons
Posté le 04-02-2003 à 09:30:10  profilanswer
 

%26 pour le &
%27 pour le '
 
démarrer -> exécuter -> charmap pour les codes :o

n°300884
bab
Posté le 04-02-2003 à 13:58:21  profilanswer
 

je suis d'accord avec ta solution Hermes le Messager mais le pb c'est que cette solution nécessite bcq plus de temps de traitement (certains repertoires contiennent plus de 400 fichiers).
 
le temps de traitement est mon ennemi car c'est pour une interface web

n°300893
Hermes le ​Messager
Breton Quiétiste
Posté le 04-02-2003 à 14:02:41  profilanswer
 

Bab a écrit :

je suis d'accord avec ta solution Hermes le Messager mais le pb c'est que cette solution nécessite bcq plus de temps de traitement (certains repertoires contiennent plus de 400 fichiers).
 
le temps de traitement est mon ennemi car c'est pour une interface web


 
Bof, je fais ça tout le temps, et ça change pas grand chose. De toutes manières, c'est la seule vraie solution.

n°300918
ethernal
Chercheur de vérité...
Posté le 04-02-2003 à 14:20:04  profilanswer
 

Bab a écrit :


pour résumer, je lis la liste des fichiers d'un repertoire


 
et tu dis que le temps d'exécution est ton ennemei ??? :lol:
si tu le fais à chaque fois que l'on demande la liste des fichiers d'un répertoire, pense à optimiser !
c'est pas un urlencode() qui va bouffer le temps cpu, mais bien le opendir(), ... surtout sur >1000 fichiers !
 
La solution d'Hermes le Messager avec des ids (et une bd) est bcp plus optimisée.
La solution au top est de génèrer et d'enregistrer la liste des fichiers d'un répertoire une seule fois et de modifier les urls à ce moment là (si c'est une liste statique). Après tu n'as plus qu'à afficher cette page comme une page html.

n°300950
bab
Posté le 04-02-2003 à 14:39:55  profilanswer
 

je n'ai pas dit que urlencode() était plus long que opendir(), je me doute bien ke c'est le contraire.
 
je prendrais bien la solution de générer une seule fois la liste de fichiers d'un repertoire, c'est vrai que ça serait plus rapide mais ça me parait compliqué à adapter à ce que j'ai.

n°300977
ethernal
Chercheur de vérité...
Posté le 04-02-2003 à 15:05:29  profilanswer
 

difficile : oui et non...
le but est évidemment de créer un fichier si le fichier cache n'est pas trouvé dans le répertoire demandé.
liste.php?dir=gogo_dancing

Code :
  1. if (!file_exists('./mp3/'.$HTTP_GET_VARS['dirname'].'/index.html')){
  2.   genere_liste($HTTP_GET_VARS['dirname']); //écrit le listing dans le fichier index.html du rep
  3. }
  4. echo getFileList($HTTP_GET_VARS['dirname']); //affiche le contenu du fichier index.html du répertoire $dirname


 
!!! ça peut poser des gros problèmes de sécurité lors de la génération du fichier index.html !!!
 
tu peux prendre exemple sur http://www.zend.com/zend/tut/tutorial-potter.php


Message édité par ethernal le 04-02-2003 à 15:06:07
n°300980
bab
Posté le 04-02-2003 à 15:06:47  profilanswer
 

je te remercie, je vais regarder ça en détail

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Passer les caractères ' et & en parametre ?

 

Sujets relatifs
[Php/mySql+JavaScript] Listes à sélection dépendantes entre elles[ PHP ] Dites-moi si c'est possible...
[PHP] PHP 4.3.0 problème stream , flux ?[JS | PHP] Variable de JS à PHP
Petite question de PHP...[PHP] Apache ne veux pas se lancer
[PHP] opendir() impossible sur un lecteur réseauAfficher correctement les caractères accentués ?
Comment utiliser Latex via PHP ?[PHP] Copier un fichier qui se trouve sur internet
Plus de sujets relatifs à : [PHP] Passer les caractères ' et & en parametre ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR