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

 C++ Discussion :

Comment acceder et lire un site en PHP ?


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Comment acceder et lire un site en PHP ?
    Bonjour,

    J'aimerais quelques indication sur le chemin a suivre pour :
    Accéder a un URL en HTTP, et récupérer des informations précise sur le code source (public) de l'URL.


    concrètement,

    j'aimerais coder une fonction capable d'acceder a une page HTTP donc l'URL contiendra une variable (ex : www.jesuisunpeon/="variable type int".com

    une foi fait, capable de récupérer( garce a certaines condition ?) des valeurs contenue dans le code source public ( valeur de type INT ).

    Merci,

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Tu dois bien comprendre que php n'est qu'un langage qui a pour objectif de créer des pages webs.

    Ce que fera PHP avec les différentes informations qui lui sont transmises, que ce soit au moyen de la méthode http GET ou au moyen de la méthode POST sera totalement caché à l'utilisateur.

    Tu peux donc parfaitement récupérer le contenu de la page que PHP aura généré, tout comme tu récupérerais le contneu de n'importe quelle page HTML, qu'elle soit statique ou générée par un langage quelconque, mais tu ne peux absolument pas espérer utiliser ce contenu pour récupérer la valeur d'une variable qui aura été transmise lors de la reqête HTTP qui a provoqué l'envoi de la page.

    Bon, allez, j'exagère peut être un tout petit peu dans le sens où il est possible de récupérer l'url appelée, mais, d'une certaine manière, ce ne serait que se faire du mal pour rien, dans le sens où, pour pouvoir récupérer le contenu de la page correspondant à une url, tu as -- forcément -- du générer / obtenir cette url "quelque part".

    Généralement, les informations qui sont transmise par la méthode GET apparaissent "tout simplement" après un point d'interrogagion "?" dans l'url que tu vas appeler sous la forme de nom_de_variable=valeur ou de nom_de_variable1=valeur1&nom_de_variable2=valeur2 (avec autant de nom de variable et de valeur que ce qui est nécessaire pour appeler l'url adéquate).

    Si tu n'as pas récupéré l'url toi-même (par exemple parce qu'elle est issue d'une entrée directe de l'utilisateur), tu peux déjà récupérer l'url de base en prenant la partie qui se trouve avant le point d'interrogation et les noms de variables, ainsi que leur valeur (sous la forme de chaines de caractères) en cherchant le signe = (ce qui se trouve à gauche est le nom de la variable, ce qui se trouve à droite est sa valeur) et le caractère & qui indique la séparation entre deux variables

    Pour ce qui est de la méthode POST, les différentes variables (généralement issues d'un formulaire) se trouvent dans les en-tête de la requête.

    Pour récupérer ce genre d'informations, tu devrais envisager de passer par une bibliothèque spécifique, comme boost.asio. Cela te simplifiera énormément la tâche
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    jpense que je me suis mal fait comprendre, par ce que 'jai rien comprit a ce que tu a dit , étant débutant en C++.

    Manuellement, sans programme on peut accéder a une page style www.peon.fr et d'un simple clic obtenir le code source de la page.


    Pareillement, avec un simple navigateur j’accède facilement a www.peon.fr/id=12354 que ce soit par un lien sur le site, ou en rentrant manuellement l'URL dans le navigateur.

    Je voudrais donc, effectuer un traitement semblable, ou qui donne le même résultat que la lecture d'un fichier .txt

    certes dans le second cas, je doit demander au serveur de m'envoyer la page
    www.peon.fr/id="Ma_variable".

    Je pense pas que ce soit tres compliqué a mettre en place..


    Merci,

  4. #4
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Hello,

    regarde du coté de boost asio, avec par exemple un tuto ici.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #include <iostream>
    #include <string>
    #include <sstream>
    #include <boost/asio.hpp>
     
    using boost::asio::ip::tcp;
     
    int main()
    {
    	int var = 42;
    	std::stringstream ss;
    	ss << "www.peon.fr/?id=" << var;
    	tcp::iostream s(ss.str(), "80");
     
    	std::string line;
    	while(std::getline(s, line)) {
    		std::cout << line << std::endl;
    	}
     
    	return 0;
    }

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Merci,

    je check !


    Important de signaler que la compatibilité Windows/linux est importante ?

    ty,

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Tu t'es en effet mal fait comprendre, dans le sens où tu semblais insister sur le fait que le site était en php, alors que cela n'a strictement rien à voir

    Comme je te l'expliquais (apparemment assez mal) dans ma première intervention, le contenu de la page renvoyée par un serveur n'a strictement aucun lien avec la technologie (PHP, java ou autre) qui a été utilisée pour "générer" le contenu de la page.

    Mon intervention précédente avais pour but de t'orienter vers des solutions qui te permettent de récupérer certaines informations qui sont envoyées au serveur afin de lui permettre de générer le contenu.

    Mais, si ce que tu veux, c'est pouvoir récupérer le contenu de la page, quelle que soit la manière dont le contenu a été généré, alors là, oui, cela devient très facile : tu crées l'url à appeler, et tu utilises une bibliothèque tierce comme boost.asio pour s'occuper de tout ce qui a trait à l'envoi de la requête et au traitement de la réponse effectuée par le serveur.

    Mais, si tu es débutant en C++, je te conseillerais sans doute de commencer par des projets "simples", qui n'utilisent pas de bibliothèques externes, histoire de t'habituer aux particularités du langage.

    L'utilisation d'une bibliothèque tierce n'est pas forcément particulièrement difficile, mais, autant avancer "par étapes"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par Peon6969 Voir le message
    Important de signaler que la compatibilité Windows/linux est importante ?
    Aucun probleme avec boost asio, c'est multi plateforme.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    A voire, un language plus adapté a mon programme serait peut etre plus appréciable.

    Avec les deux fonction décrite plus haut ( recuperation de variable dans une page HTTP )

    il devra simplement comparer les résultat de ces variable et retourner un bool.

    les trois informations seront stocké dans un Tableau, semblable a une structure
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    void main(void){
    int =peon;
     
     
    struct Conteneur
    {
        int ID;
        string Date; // doit contenire une variable sous forme 12:54:28 21/12/2012
        string Last_D; // doit contenire une variable sous forme 12:54:28 21/12/2012
     
    };
    Conteneur Tab[int];
    }
    Puis divers fonctions afin d'utiliser Date et Last_D (les comparer et retourner un 1 si Date!=Last_D


    merci,

  9. #9
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Oui, mais, hé, ho!!!

    Tu commence par demander le moyen de récupérer une variable PHP, ce à quoi on te répond que tu as intérêt à la récupérer avant d'envoyer la requête au serveur.

    Puis tu nous explique que tu veux bel et bien récupérer le contenu de la page renvoyée par le serveur. Et Iradille te montre un exemple parmi d'autres qui permet de le faire.

    Maintenant tu viens nous parler d'une structure personnalisée qui contient deux dates que tu veux comparer. Mais, les comparer avec quoi mystère!

    Rien que dans les en-tête HTTP, je crois qu'il doit bien exister quatre dates différentes qu'il est possible de récupérer, sans compter celles qui apparaîtraient dans le contenu même de la page.

    Alors, oui, il y a du travail à faire pour arriver à faire ce que tu veux. Oui, on peut surement t'aider à y arriver.

    Mais encore faudrait-il que tu nous explique clairement ce que tu souhaites! Parce que je suis désolé, mais on n'est pas devin non plus!

    Boost.asio a pour but de faciliter la mise en place de la communication entre un client et un serveur. C'est la première étape à franchir si l'on veut pouvoir récupérer le contenu d'une page web.

    Après, il est possible de récupérer toute une série d'informations au sujet de cette page web, que ce soit dans le contenu ou au travers des en-tête qui ont été envoyée afin que le client sache ce que le serveur lui a envoyé.

    On peut t'orienter vers un grand nombre de solutions simples pour faire tout ce que tu veux. Il n'y a qu'une condition préalable indispensable qui, jusqu'à présent n'est pas remplie : il faut que nous sachions exactement ce que tu souhaites faire.

    Dis toi bien que nous ne sommes pas au dessus de ton épaule à regarder ce que tu fais. Certains d'entre nous sont sans doute à plusieurs centaines de kilomètres de chez toi! Si tu veux obtenir une aide efficace, tu dois commencer par nous aider à t'aider! Le meilleur moyen de le faire est de nous indiquer le plus précisément possible ce que tu cherches à faire, et de préférence autrement qu'au compte gouttes! Et si tu ne sais pas toi meme exactement ce que tu cherches à faire, soumets nous simplement le problème auquel tu es confronté en ayant pris la peine de réfléchir deux minute à la deuxième ligne de ma signature
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    La seconde ligne de ta signature ...Parfait


    J'ai besoin de comparer deux heures et date contenue dans une page web.

    Par exemple,
    Un utilisateur accède a une page web est écrit dessus, comme un forum, j'ecrit une réponse a la discussion ( un post ) , la page web change a chaque foi, sont URL reste semblable (a part dossier=xxxxxx)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    www.forumpeon/dossier=123456
    A chaque foi qu'il écrit un post sur ce "forum" sur une autre page web ( non variable ) s'inscrit la date, l'heure et le numéro de dossier. elle sont séparé par des retour a la ligne


    En fait, j'ai besoin de savoir si quelqu'un d'autre a écrit après moi ( ex : tu répond a mon post sur le forum ) en comparant la date et l'heure de mon poste a la date et a l'heure du dernier post.

    Et je suis obliger de passer par cette condition de comparaison date/heure sur chaque dossier


    Donc,
    JE voudrais que l'ordinateur récupère tout les numéro de dossier , date et heure de mon post sur le dossier.

    Rajoutons a sa une petite interface graphique, et la compatibilité Windows/linux et le tour est joué

    Ensuite il ouvre le dossier, et si la date et l'heure du dernier sont differente, il me prévient.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Après plusieurs recherche, je vais coder sa en Python et utiliser Urllib,

    qui permet de placer une page web dans un objet de type fichier,


    Merci, cdt,

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

Discussions similaires

  1. comment acceder a une base active directory par php???
    Par vincenttt dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 08/06/2007, 15h31
  2. Comment acceder directement a mon site
    Par jeha dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 15/05/2007, 11h50
  3. Réponses: 1
    Dernier message: 26/01/2007, 16h13
  4. [Tableaux] Comment agrandir un site en php
    Par rocket_270 dans le forum Langage
    Réponses: 10
    Dernier message: 31/12/2006, 12h15
  5. comment référencer un site en php ?
    Par zana74 dans le forum Langage
    Réponses: 1
    Dernier message: 21/09/2006, 17h30

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