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 :

Interroger un fichier php


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut Interroger un fichier php
    Bonjour,

    Je suis à implanter un système de mise-à-jour dans mes gabarits (gratuits) pour site météo. Dans chacun des fichiers php, j'ai mis les lignes suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $version = "1.0";
    if (isset($_GET['ver'])) {
      echo $version;
      exit;
    }
    Ainsi, je peux demander à chaque fichier d'afficher sa version avec le paramètre "ver":

    ex: http://SiteWeb.com/pageweb.php/ver

    Je réussis à avoir ma réponse avec une requête Ajax, mais ça me chicotte de pouvoir faire la requête en php sur un serveur distant (avec fsocket), mais pas sur le serveur local!!

    Quelqu'un aurait une idée?

    Merci d'avance,

    Amicalement,
    Jacques

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $version = file_get_contents('http://mon.domaine/ma.page.php?ver');
    Enjoy

  3. #3
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut
    Bonjour Benjamin,

    Malheureusement, je ne connais pas le url du site du "client" qui veut savoir si son gabarit est à jour.

    Si je lance avec un chemin relatif, j'obtien "false":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ex: $vers = file_get_contents('./index.php?ver');
    file_get_contents ne fonctionne pas avec les chemins relatifs?

    Jacques

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Il ne faut pas confondre, là on veut le résultat d'exécution d'un script PHP, on l'appelle alors avec le protocole HTTP pour qu'apache déclenche son interprétation. Si tu fais un fopen ou un file_get_contents directement sur un fichier PHP, tu vas récupérer son contenu et non le résultat de son exécution.

    Si tu ne connais pas l'IP ou le domaine de ton client et que le script qui doit effectuer la vérification est directement sur le serveur du client, il peut tout simplement faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $version = file_get_contents('http://127.0.0.1/ma.page.php?ver');

  5. #5
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut
    Bonjour Benjamin,

    J'ai essayé la commande suivante en local (Uwamp) et ça marche!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $local_path = dirname($_SERVER['REQUEST_URI']);
    $vers = file_get_contents('http://127.0.0.1'.$local_path.'/index.php?ver');
    ou 
    $vers = file_get_contents('http://localhost'.$local_path.'/index.php?ver');
    Mais si je publie sur le serveur (payant), je recois l'erreur (en anglais bien sûr! )

    URL file-access is disabled in the server configuration

    Avec un chemin relatif, c'est le message suivant:

    failed to open stream: No such file or directory

    Je souhaite une solution qui n'oblige pas à "jouer" dans php.ini puisque
    bien des hébergeur ne donnent pas cet accès.

    Jacques

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    oho les petits malins on désactivé l'option allow_url_fopen
    Là tu l'as dans l'os, tu vas devoir aller lire le fichier à la main parce que j'imagine que c'est pas la peine de tenter d'exécuter une commande

  7. #7
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut
    Benjamin,

    Oui, effectivement, avec l'option allow_url_fopen désactivé, les hébergeurs ont bien compliqué les choses pour les usagers du php! Celà nous oblige souvent à faire des choses compliquées, genre Javascript/Ajax (et JQuery)/Navigateurs! Oufff!

    Donc, le plus simple et efficace serait d'utiliser un simple fopen pour lire une ligne à la fois? (ma variable étant à la 2e ligne de code!).

    Ton aide est fort apprécié!

    Jacques

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Donc, le plus simple et efficace serait d'utiliser un simple fopen pour lire une ligne à la fois? (ma variable étant à la 2e ligne de code!).
    C'est de la solution bidouille mais j'ai peur qu'on ait pas le choix. En même temps, ton système de versionnage par fichier je trouve ça un peu louche, à quoi ça sert exactement ?

  9. #9
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut
    Bonjour Benjamin,

    louche??

    Je fais des gabarits (en 12 langues) pour les sites amateurs qui ont une petite station météo, je supporte
    les soft Cumulus (Windows) et pywws (Linux). Ces logiciels sont très "actifs" en offrant plusieurs versions
    et sous-version par année!!

    À chaque version, de nouvelles données et calculs s'ajoutent... mes gabarits doivent donc être évolutifs!
    Comme une grande partie des usagers sont des "techno-nuls", je voulais avoir un système simple
    pour mettre à jour ces pages php.

    N'ayant pas trouvé de projets semblable sur le net, pour m'inspirer, j'ai simplement mis au début
    de chaque page un echo de $version, me donnant la possibilité de récolter la variable $version et/ou
    son contenu, par un petit module de gestion des mises à jour que je suis à fignoler.

    Ainsi je facilite le support et la gestion des gabaris. les usagers peuvent simplement taper .....unFichier/ver
    dans le navigateur pour voir la version et pour moi ça me donne la possibilité de gérer les différentes parties
    des gabarits, selon ce qu'il y a de nouveau/corrigé:

    - Pages web (design)
    - Contenu de page (tableaus de données météo)
    - Fichiers de langues (nb de langues)
    - Versions des fichiers de langue (nouveaux mots)

    J'ai décider de m'adresser à des "Pros" ici, car souvent les Pc reliés aux stations météo sont de vieux
    (et lents) Pc, ou même simplistement des routeurs sous Linux, un module côté serveur (hébergeur)
    me semblait s'imposer!

    Je ne suis pas programmeur, mais gestionnaire de parc informatique dans une école (qui a un webnestre)
    et je ne connaissais pas le (dév.) web il y a un an, car accès téléphonique (modem) à la maison

    Donc, toute suggestion est bienvenue!!

    Amicalement,

    Jacques, webmestre
    Météo St-Ours
    Météo du Québec
    Weather by You!

    Ps. pour la "plogue"!!!

  10. #10
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    En lisant la description du logiciel Cumulus je comprends mieux de quoi il s'agit. Donc ton rôle dans tout ça est de proposer au téléchargement des maquettes utilisables avec ce logiciel qui servent à produire des pages web exact ?

    Qu'un utilisateur puisse connaitre la version de son gabarit, je suis d'accord. Mais pourquoi as-tu besoin de cette information vu que c'est toi qui les fabrique ?

    Je pense que tu as plutôt besoin d'un logiciel de gestion de version comme SVN, Git ou Mercurial. Ces logiciels te permettront de gérer les versions de tes gabarits et notamment de savoir ce qui à changé d'une version à une autre). Pour ton besoin, je pense que Git est le plus adapté, tu devrais y jeter un oeil, tu pourra même rendre le dépôt public gratuitement sur GitHub (comme mes projets - voir ma signature) ainsi, d'autres personnes pourront y contribuer.

    Pour ce qui est de la mise à jour automatisée des gabarits, ça me semble compromis pour tout ceux qui n'ont pas la possibilité d'utiliser les wrappers HTTP sur les fonction fopen et autres.

  11. #11
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    ... Donc ton rôle dans tout ça est de proposer au téléchargement des maquettes utilisables avec ce logiciel qui servent à produire des pages web exact ?
    Exact! Sauf que le php permet de se servir simplement des "balises" spécialisées, donc 1 seul fichier à traiter! (Bien sûr, j'ai aussi des versions purement html pour les "Rookies").

    Mais pourquoi as-tu besoin de cette information vu que c'est toi qui les fabrique ?
    Je fournis bien sûr 95% du site, mais il y a de la personnalisation à faire pour les usagers, certaines pages deviennent plus "sensibles" que d'autres quand vient le temps de mettre à jour. Comme je m'adresse particulièrement aux (très) débutants "Météomestre", j'offre des gabarits "tout-en-un", un site = un seul interface. Mais chaque nouvelle page dépend de la version du soft employé... donc, version soft vs gabarit, vs langue... oufff!

    Je pense que tu as plutôt besoin d'un logiciel de gestion de version[/URL] comme SVN, Git ou Mercurial.
    J'utilise une variante pour pywws, GoogleCode son canal de communication, mais je trouve ces systèmes compliqués à opérer. Mais je dois dire que je réussit à opérer la synchro Svn, avec Linux, sur lequel je suis à l'aise... comme un éléphant sur une bicyclette!!


    Pour ce qui est de la mise à jour automatisée des gabarits, ça me semble compromis pour tout ceux qui n'ont pas la possibilité d'utiliser les wrappers HTTP sur les fonction fopen et autres.
    ... serais-je mieux de rester avec mon module en javascript? Je sais certains pc excluent Js, mais je peux bien me permettre 1 petit prérequis, pour ce que j'offre!!

    Je dois dire aussi que je suis un vieux programmeur Pascal/C de 1992, un peu rouillé, mais quand je pense mise à jour... je pense logiciels (.exe)

    Merci,

    Jacques

  12. #12
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    En réalité les navigateurs qui n'ont pas ou désactivent JavaScript représentent 4% du marché, on peut se permettre de mettre JS dans les prérequis.

  13. #13
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juillet 2012
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 196
    Points : 112
    Points
    112
    Par défaut
    Une petite dernière, si tu permets?

    J'utilise fsocket pour manupuler les fichiers distants et ça fonctionne bien. mais le problème, c'est que j'affiche les m-à-j disponibles avant la version locale! (Php serveur vs JS local) , ça fait un peu curieux!

    Est-ce que cUrl est assez répandus pour l'utiliser?... et la commande ob_start, ça serait à propos?

    Merci de ta patience!

    Jacques DesRoches

    (DesRoches, Delespierre,,, peut-être une souche commune lointaine? hihihi)

Discussions similaires

  1. Conversion d un fichier php en ini
    Par gilles641 dans le forum Langage
    Réponses: 1
    Dernier message: 09/08/2005, 16h54
  2. Ouvrir un fichier.php d'une ihm
    Par Shandler dans le forum MFC
    Réponses: 3
    Dernier message: 02/05/2005, 14h00
  3. Réponses: 2
    Dernier message: 19/08/2004, 17h12
  4. où se trouve le fichier php.ini ?
    Par teko dans le forum Apache
    Réponses: 5
    Dernier message: 28/07/2004, 12h39

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