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 :

[Cookies] Faisable ou non avec PHP ? S'authentifier et télécharger une page externe


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut [Cookies] Faisable ou non avec PHP ? S'authentifier et télécharger une page externe
    Voilà,

    Mon problème est le suivant :
    Je souhaiterais créer une page web qui va chercher des informations sur d'autres pages sur d'autres sites, sur lequels il faut s'identifier, gérer les cookies, et repiquer quelques bouts de page.

    Je m'explique Par exemple :

    le site A vend le produit X au prix XA
    le site B vend le produit X au prix XB

    Sur le site A et le site B il faut d'abord s'identifier (login, MdPasse) puis lancer une recherche du X pour avoir XA ou XB.

    Je veux créer un site C qui n'affiche que X, XA et XB.

    Balaise non?
    Est-il possible de faire ça avec PHP

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je pense qu'il va falloir que tu te penches du coté de CURL qui va te permettre de faire ce genre de choses, il y a pas mal de posts dans le forum qui parlent de son utilisation.

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Perso je ne connaîs pas CURL. Pour ce genre de choses j'utilise les sockets ( http://www.php.net/sockets ) et j'envoie les requête HTTP adéquates.
    En tout cas ce que tu veux faire est tout à fait possible, et ce serait bcp plus simple si lesdits sites webs partenaires mettaient en place des webservices

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par Séb.
    Perso je ne connaîs pas CURL. Pour ce genre de choses j'utilise les sockets ( http://www.php.net/sockets ) et j'envoie les requête HTTP adéquates.
    En tout cas ce que tu veux faire est tout à fait possible, et ce serait bcp plus simple si lesdits sites webs partenaires mettaient en place des webservices
    Je vais demander bien sur pour les webservices, mais vous savez ou je peux me renseigner sur les requetes HTTP?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par koopajah
    Je pense qu'il va falloir que tu te penches du coté de CURL qui va te permettre de faire ce genre de choses, il y a pas mal de posts dans le forum qui parlent de son utilisation.
    Merci pour cURL mais cette doc est incomplète. Il manque toute l'explication sur l'utilistation des constantes pré-définies.

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par cmako
    vous savez ou je peux me renseigner sur les requetes HTTP?
    Tu peux faire une recherche Google "rfc http", mais ça reste du bas-niveau. Mieux vaut éviter si tu n'es pas à l'aise avec les sockets.
    Tu seras certainement plus productif si tu te bases sur une API client HTTP :
    - PEAR : http://pear.php.net/manual/en/packag...ttp-client.php
    - ZF : http://framework.zend.com/manual/en/...nd.http.client
    - etc.
    Au final ce serait peut-être CURL le plus efficace mais je ne sais pas s'il répond précisément à tes besoins.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    cURL gère les cookies. Il suffit simplement d'utiliser les options prévues à cet effet : CURLOPT_COOKIEFILE et CURLOPT_COOKIEJAR. De plus, elle est très facile à utiliser mais malheureusement elle n'est pas disponible partout. Vous ferez vite le tour des options surtout pour une utilisation limitée au protocole HTTP.

    Par contre la gestion des sessions dépend du serveur distant. Je rappelle que pour un serveur utilisant PHP, il peut être configuré pour utiliser les cookies et/ou propager l'identifiant dans les liens internes - à finalité GET comme POST - (configuration déconseillée mais on en trouve encore) donc il est facile dans les deux cas de récupérer cet identifiant (pour le premier une expression régulière devrait faire l'affaire).

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par Séb.
    Tu peux faire une recherche Google "rfc http", mais ça reste du bas-niveau. Mieux vaut éviter si tu n'es pas à l'aise avec les sockets.
    Tu seras certainement plus productif si tu te bases sur une API client HTTP :
    - PEAR : http://pear.php.net/manual/en/packag...ttp-client.php
    - ZF : http://framework.zend.com/manual/en/...nd.http.client
    - etc.
    Au final ce serait peut-être CURL le plus efficace mais je ne sais pas s'il répond précisément à tes besoins.
    Le problème des API ce qu'il faut faire une modif sur le serveur pour que l'interpreteur PHP les utilise. Je ne suis pas sûr que l'hebergeur du site ne sera pas très content de faire cette modification. Je préfère faire tout sois-même.
    Pour le moment je n'ai toujours pas réussi à intecepter les messages qui circulent entre le navigateur Internet et le site. J'ai téléchargé des proxy en JAVA mais je n'ai jamais réussi à les faire marcher.

  9. #9
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 199
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 199
    Points : 8 424
    Points
    8 424
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par cmako
    Le problème des API ce qu'il faut faire une modif sur le serveur pour que l'interpreteur PHP les utilise.
    Les APIs proposées plus haut ne sont pas des extensions PHP mais de simples scripts que tu es libre d'inclure à ton projet.

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    616
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mars 2007
    Messages : 616
    Points : 556
    Points
    556
    Par défaut
    Citation Envoyé par Séb.
    Perso je ne connaîs pas CURL. Pour ce genre de choses j'utilise les sockets ( http://www.php.net/sockets ) et j'envoie les requête HTTP adéquates.
    En tout cas ce que tu veux faire est tout à fait possible, et ce serait bcp plus simple si lesdits sites webs partenaires mettaient en place des webservices

    Est ce qu'il est possible d'avoir quelques bout de code? Merci

  11. #11
    Invité
    Invité(e)
    Par défaut
    Je te conseille vraiment cURL, qui est rapide et facile d'utilisation !

    Tu envoie une requête avec tes identifiants tu récupère le cookie puis tu le renvoie à chaque fois, c'est pas dur du tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $curl = curl_init('http://secret/login_action.php');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post."\r\n");
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_NOBODY, 1);
    $arr1 = explode("\n", curl_exec($curl));
    foreach($arr1 as $k => $value)
    {
    	ereg("PHPSESSID=(.*);", $value, $regss);
    }
    $phpsessid = $regss[1];
    curl_close($curl);
    Pour récupérer le cookie (et encore c'est la méthode bourinne, il en existe des plus "correct")

Discussions similaires

  1. Problème avec submit d'un form vers une page PHP
    Par nicdo77 dans le forum Langage
    Réponses: 2
    Dernier message: 07/11/2009, 19h44
  2. [Réseau] Télécharger une page web avec PHP
    Par ahmed1987 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2008, 16h33
  3. Réponses: 3
    Dernier message: 13/11/2006, 20h38
  4. [PHP-JS] Ouverture automatique d'une page
    Par mullger dans le forum Langage
    Réponses: 8
    Dernier message: 06/10/2006, 12h56
  5. JS=>PHP : Mettre la source d'une page (iframe) dans 1 var
    Par Tizard dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 07/12/2005, 14h37

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