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

Autres composants PHP Discussion :

routage bizarre avec baseUrl


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Par défaut routage bizarre avec baseUrl
    Bonjour,
    A force de regarder le petit bout de code ci-dessous je suis sans doute devenu aveugle.
    Il y a une evidence qui m'echappe mais qui, sans doute, vous sautera aux yeux.
    Merci de venir a mon secours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     echo "<img src=".$this->baseUrl()."/public/images/maFoto.gif>";
      if (file_exists($this->baseUrl()."/public/images/maFoto.gif")) {...}
    Le resultat est le suivant :
    La premiere ligne affiche maFoto.gif (donc maFoto.gif a ete trouvee)
    Le if quant a lui est evalue a false (donc maFoto.gif n'a pas ete trouvee)
    Ou est le bleme?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Je ne crois pas que file_exists() accepte le protocole HTTP, essaye plutot un truc avec fopen()

    http://uk2.php.net/manual/fr/function.file-exists.php

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Par défaut
    Bonjour,
    J'ai triture fopen() dans tous les sens rien a faire, le resultat est identique a file_exists().
    Quelqu'un aurait-il une autre idee...

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    c'est bizarre, peux-tu poster ce que tu as fais avec fopen ?

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (file_exists($this->baseUrl()."/public/images/maFoto.gif")) {...}
    if (fopen($this->baseUrl()."/public/images/maFoto.gif",'r')) {...}
    Donnent un resultat if a false.
    Je presume que changer la fonction n'est pas la solution.

    J'ai decide finalement de fournir une adresse absolue. Qui elle, donne une valeur de if a true.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (file_exists("public/images/maFoto.gif")) {...}
    if (fopen('public/images/maFoto.gif','r')) {...}
    donne un resultat if a true.

    Si une explication logique existait je suis curieux de la connaitre.
    Merci de ton aide.

  6. #6
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Attention, baseUrl retourne l'emplacement relatif vis à vis de la racine de ton serveur web. Quand ton navigateur fait la requête pour l'image, c'est vis à vis de la racine du serveur web. Or, le file_exists (qui devrait fonctionner de toute façon puisque l'utilisation est locale me semble t-il) est relatif au fichier qui fait l'appel à la fonction. Si ton fichier n'est pas à la racine du serveur web, cela ne fonctionnera pas, à moins d'avoir un chemin absolu, ce qui n'est pas le cas !

    Il faut donc récupérer le chemin absolu vers ton fichier image, ou au moins un chemin relatif à partir du fichier qui fait appel à la fonction file_exists.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Par défaut
    Au fait quelle est la valeur de ta variable $this->baseUrl()?
    as-tu inclus le protocole?

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Par défaut
    Bonjour,
    Merci pour votre aide et vos diverses explications.
    J'ai du lire a plusieurs reprises les differents commentaires pour essayer de m'y retrouver. J'espere avoir compris...

    Une des solutions qui m'est venue a l'esprit est donc d'utiliser un chemin absolu (un vrai).

    Voila ce que j'ai fais:

    Dans mon index.php qui est a la racine de l'application j'ai ajoute la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define('ROOT',    dirname(dirname(__FILE__))) ;
    ce qui me donne la premiere partie de mon adresse absolue.

    Ensuite je code dans mon fichier .phtml comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (file_exists(ROOT.$this->baseUrl().'/public/images/maFoto.gif')) {...}
    Et dans ce cas le if recoit la valeur true.

    Y avait-il une methode plus simple ?

    Cependant JANITRIX dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Il faut donc récupérer le chemin absolu vers ton fichier image, ou au moins un chemin relatif à partir du fichier qui fait appel à la fonction file_exists.
    Je peux effectivement recuperer le chemin relatif me conduisant au fichier contenant file_exists(), mais ensuite je ne vois pas trop comment l'utiliser pour retrouver mon fichier image ?

  9. #9
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    En fait je ne comprends pas pourquoi tu as besoin de faire un echo pour afficher du HTML, et une condition pour déterminer si une image existe.

    Ce code vient d'une classe ? Quel est le but de ce code ?

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Par défaut
    J'utilise echo uniquement pour les besoins de l'exemple, pour ne pas melanger de code html et php.
    On peut ainsi tester les lignes de code par un copier coller sans modification.

    Le file_exists() est utilise dans un fichier php, le but est simple.

    -> Un bouton "voir les photos".
    click
    Si une photo existe->je montre la (les) photo(s).
    Si aucune photo existe -> message = pas de photo...

  11. #11
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Citation Envoyé par diagonale Voir le message
    J'utilise echo uniquement pour les besoins de l'exemple, pour ne pas melanger de code html et php.
    On peut ainsi tester les lignes de code par un copier coller sans modification.

    Le file_exists() est utilise dans un fichier php, le but est simple.

    -> Un bouton "voir les photos".
    click
    Si une photo existe->je montre la (les) photo(s).
    Si aucune photo existe -> message = pas de photo...
    Le fichier PHP en question est un contrôleur ? Si c'est le cas, je ne sais pas quelle version de ZF tu utilises mais tu peux peut être utiliser la variable globale APPLICATION_PATH si tu utilises Zend_Application.

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 62
    Par défaut
    Ok! merci pour ton aide.
    Je vais faire des recherches avec application_path.
    Pour l'instant la version chemin absolu me convient.

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

Discussions similaires

  1. [TRANSAQ SQL] INSERT comportement bizarre avec les REAL
    Par argyronet dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/12/2005, 11h47
  2. Problème très bizarre avec COUNT
    Par Nomade95000 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/10/2005, 14h12
  3. [SWING] Exception bizarre avec Thread
    Par Gob4 dans le forum Débuter
    Réponses: 2
    Dernier message: 13/09/2005, 21h55
  4. [C#] Truc bizarre avec DataSet
    Par bendj dans le forum ASP.NET
    Réponses: 15
    Dernier message: 13/07/2005, 19h51
  5. problèmes bizarres avec jdbc
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 12/12/2003, 12h00

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