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 :

[Système] Slash et Eregi


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut [Système] Slash et Eregi
    Bonjour. (ou bonsoir)
    J'aurais une petite question :
    J'ai une fonction x qui récupère(GET) la variable "directory".
    Ensuite elle lui fait passé un filtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if(eregi("/",$_GET['directory'])){
     
    $directory=str_replace("/","0",$directory);
     
    }
    et la sauvegarde quelques lignes plus loin.

    Mon problème vient du fait que cette fonction si on lui donne ceci comme variable :

    http://[site]/function.php?directory=dir/fichier.txt

    vu que la fonction a un filtre, elle va transformer la variable en :

    $directory=dir0fichier.txt

    >>>Vu qu'il y a le filtre, je ne vois pas ce que je dois donné à ...php?directory=XXXX pour que la fonction sauvegarde : $directory=dir/fichier.txt

    N'existe-t-il pas un caractère qui remplacerait le "/" pour que eregi retourne FAUX. Il faudrait que ce caractère aie les même propriétés que le "/" c'est à dire un séparateur de dossier.
    Ou alors un tout autre moyen (avec l'url seulement) qui permettrait à la fonction de sauvegarder : dir/fichier.txt

    En gros pour résumé :
    function.php?directory=XXX -> function récupère $directory -> function lui passe un filtre et si $directory contient un "/" il le modifie par "0" -> sauvegarde de $directory
    J'aimerais trouvé XXX pour que function sauvegarde "dir/fichier.txt"

    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    c'est pas clair, une fois tu veux le / une fois tu en veux pas ...

    tu réexpliques de manière concise stp ?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut
    On ouvre : http://[site]/function.php?directory=XXX
    >1 : function.php récupère la variable directory
    >2 : function.php enlève tout les "/" contenu dans la variable directory (avec le bout de code cité plus haut)
    >3 : function.php sauvegarde la variable directory

    Si à la place de XXX nous rentrons : dir/fichier.txt, function.php va sauvegardé : dir0fichier.txt

    J'aimerais savoir si :
    *il n'existerait pas un caractère 'alpha' qui pourrait remplacer '/' dans :
    http://[site]/function.php?directory=dir'/'fichier.txt
    De tel sorte que dir'alpha'fichier.txt et dir'/'fichier.txt soient les même. (il faut que 'alpha' sépare le dossier du fichier)
    >les changement doivent se faire au niveau de l'url
    *il n'existerait pas un moyen pour que eregi renvoie FALSE si "/" existe dans $directory .
    >les changements doivent se faire au niveau de l'url

    edit : petite précisio > en local j'ai changé "/" par "\" ce qui fonctionnait. Apperement ca ne fonctionne pas sur tout les serveurs. (qui interdisent "\")

  4. #4
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    je comprend toujours pas.
    pourquoi ce remplacement de / par 0 ?

    ou alors tu fais #slash# comme séparateur, et apres tu le retransforme ? c'est ca que tu veux faire ?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut
    Bon je vais faire plus simple en donnant un example :
    http://jeapie6.100webspace.net/funct...?directory=XXX

    J'aimerais que la page me renvoie : dir/fichier.txt
    Comment faire?

    Voici la source de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if(eregi("/",$_GET['directory'])) 
    { 
      $directory=str_replace("/","0",$directory);
      echo $directory;
      exit; 
    }
    echo $directory;
    exit; 
    ?>

  6. #6
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut
    Bon sang, apperement aujourd'hui je pose des questions auquelles personnes n'a réponses.

  7. #7
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    un truc rapide :
    si tu peux pas que ton / se transforme en 0, ne fait pas de str_replace ...

  8. #8
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut
    ptdr
    Il ne te serait pas venu à l'esprit que je ne serais pas venu sur le forum pour un truc si bête?
    Comme je l'ai mainte fois répeté, seul l'url peut être modifié.

  9. #9
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    tu l'as peut etre répetée maintes fois, mais je ne pige toujours pas.

    tu veux un ?id=dir/fichier
    et apres tu as un regex qui transforme le / en 0

    mais tu voudrais avec un ?id=dir#TOTO#fichier
    et qu'apres ca te fasse pas de transformation de / et que ca fasses / ...

    Citation Envoyé par Maxoo
    ou alors tu fais #slash# comme séparateur, et apres tu le retransforme ? c'est ca que tu veux faire ?
    je me répete aussi ...

  10. #10
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut
    Une page nommée function.php récupère la variable directory.(GET)
    Cette variable, on lui fait passé un filtre qui remplace tout les "/" par "0".
    La variable est sauvegardée.


    Si on rentre comme variable : dir/fichier.txt, function.php va récuperer la variable puis va enlever tout les "/" et remplacer par "0" ce qui va donner : dir0fichier.txt

    Ce que moi je veux c'est connaitre la variable tel que lorsque function.php récupère la variable et la filtre, function.php sauvegarde dir/fichier.txt (ou tout autre variable qui jouerait le même rôle que dir/fichier.txt)

    Je peux modifié UNIQUEMENT la variable(GET)

    Je peux pas faire plus simple comme explication.

  11. #11
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    J'ai eu beau relire le message de début et le message de fin je vois toujours pas ou tu veux en venir.....

    EDIT : ou alors tu veux faire ça peut etre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function tafonctionquimodifietonget($_GET['dir'])
    {
         global $toto;
     
         $toto = $_GET['dir'];
    .... tu fais tes modifs de § transformés en 0
    }
    et comme ça tu récupére ton get ou tu veux , j'ai bon ? ou pas ?
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  12. #12
    Membre habitué
    Inscrit en
    Septembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 10
    Par défaut
    Ce que j'ai compris, c'est que tu souhaite lever les '/' inutiles qui serai dans le nom mais garder ceux qui sont utiles par rapport à l'arborescence de ton fichier.

    Je pense que ton ereg est complètement inutile, en effet, tu veux lever les slashs qui serai dans le nom, mais a priori ce nom est un nom de fichier et un nom de fichier ne peu comporter de slash(du moins il me semble...), de ce fait tout les slash présent dans ton paramètre servent forcément à l'arborescence et tu doit donc tous les garder...

    J'èspère que sa t'aura un peu aidé.

  13. #13
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Ce que moi je veux c'est connaitre la variable tel que lorsque function.php récupère la variable et la filtre, function.php sauvegarde dir/fichier.txt (ou tout autre variable qui jouerait le même rôle que dir/fichier.txt)

    Je peux modifié UNIQUEMENT la variable(GET)
    C'est toujours pas clair, et je ne suis pas le seul à ne pas comprendre.
    modifier la variable GET ? avant l'envoie ou à la reception ??

    Pfff ... ca serait pas plus simple que tu prennes plusieurs ca, et que tu nous dises ce qui doit aller au navigateur, ce que vaut GET, ce que fait le filtre, ce qui ressort etc ... au lieu de faire des exemple avec "dir=XXXX et je veux /"

  14. #14
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut
    Dans la page que j'ai donné plus haut(http://jeapie6.100webspace.net/funct...ir/fichier.txt), vous êtes bien d'accord que si l'on rentre comme variable(dans l'url) : dir/fichier.txt, la page renvoi : dir0fichier.txt
    Ce que je veux savoir c'est ce qu'il faudrait rentré comme variable(dans l'url) pour que la page renvoie : dir/fichier.txt

    SANS RIEN modifié à la page.(function.php)

  15. #15
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Rien, ce n'est pas possible, si tu as un regex qui remplace / par 0
    aucun autre caractère ne pourra être différent de / et avoir le meme comportement.

    oublie l'astuce avec \ c'est un caractère windows.

    Bon bah on a trouvé : c'est non comme réponse

  16. #16
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut
    Ok, il me semblait bien que cela était impossible. Je voulais confirmation. (comme ca mon système est sécur parfait)

  17. #17
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Par défaut
    Vraiment aucun moyen? Pas de moyen de détournement, rien? (comme ca je peux publier ma page aujourd'hui)

Discussions similaires

  1. [tables systèmes] extraction de la structure d'une base
    Par laffreuxthomas dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 23/03/2006, 13h24
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  3. [Système] Vider le Presse Papier
    Par babe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/09/2002, 17h46
  4. IA avec le système de note
    Par scorpiwolf dans le forum C
    Réponses: 4
    Dernier message: 06/05/2002, 12h13

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