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

Web & réseau Delphi Discussion :

Connection sur un site web et navigation


Sujet :

Web & réseau Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 57
    Points
    57
    Par défaut Connection sur un site web et navigation
    Bonsoir,

    J'aimerai un petit coups de main, car je ne trouve absolument aucune piste à mon problème.
    Je dois me connecter sur un site web avec le composant IdHttp. C'est un formulaire tout con avec id et pass via la commande post. Par contre une fois cette commande exécuter je ne sais pas du tout comment naviguer sur le site web. Ce sont entièrement des pages php.

    Une des pages n'affichent aucun contenu mais génère un fichier que je dois télécharger lorsque l'on clique sur le lien :
    le lien est de la forme :
    http://www.lesite.fr/file.php

    J'aimerai savoir comment faire pour automatiser tout ca avec IdHttp ? Merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     var
      Ts : TStringList;
    begin
      Ts := TStringList.Create;
      try
          Ts.Add('nom=mon_nom');
          Ts.Add('password=mon_password');
          IdHttp1.Request.ContentType := 'application/x-www-form-urlencoded';
          IdHttp1.Post('http://www.lesite.fr/connexion.php',Ts);
      finally
          Ts.free;
      end;
    end;

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    dans 90% des cas le site renvoie un Cookie qu'il faut propager sur les pages suivantes.

    mais le sujet a maintes fois été évoqué.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 57
    Points
    57
    Par défaut
    Merci, oui je me suis un peu renseigné et effectivement, il y a bien un cookie a propager. J'ai fait quelques essais ce matin mais rien de concluant.

    Voilà ce que j'ai fait pour l'instant.

    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
    22
    23
    24
    25
    26
    var
      Ts : TStringList;
      i:integer;
    begin
      Ts := TStringList.Create;
      try
          idhttp1.Get('http://www.easyrewards.fr');
     
    // on récupère les 2 cookies, un cookie avec le SSID de la session PHPSSID, et un cookie qui indique quand est-ce qu'il expire
    //On écrit le cookie dans l'en tête de la future requête
          for i := 0 to cookie.CookieCollection.Count-1 do
          begin
                IdHTTP1.Request.RawHeaders.Add('Cookie'+
                IdHTTP1.Request.RawHeaders.NameValueSeparator+
                cookie.CookieCollection.Items[I].CookieText);
                showmessage(cookie.CookieCollection.Items[I].CookieText);
          end;
     
     
          Ts.Add('nom=mon_nom');
          Ts.Add('pass=mon_pass');
          Ts.Add('seconnecter= Se connecter ');// Je ne sais pas pourquoi il faut mettre ca, dans la source que j'ai consulté la personne l'a rajouté. C'est le bouton qui permet d'envoyer les paramètres
          IdHttp1.Request.ContentType := 'application/x-www-form-urlencoded';
     
           IdHTTP1.Post('http://www.easyrewards.fr/connexion.php',Ts);
    // Normalement je suis connecté ?
    Je ne sais pas comment faire maintenant, normalement je suis redirigé, vers une autre page php (celle de mon compte).
    Je fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IdHTTP1.Get(IdHTTP1.Response.Location);
    Mais IdHTTP1.Response.Location est vide et lorsque je lis ce que retourne IdHTTP et bien je vois que ca correspond à la page d'accueil. Je suppose que je ne suis pas du tout connecté.

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    manifestement easyrewards exploite une session PHP (PHPSESSID) qu'il faut propager également.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 69
    Points : 57
    Points
    57
    Par défaut
    D'accord, mais de quel façon est ce que je dois propager ce SSID ?
    Je pensais qu'il était propagé avec cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i := 0 to cookie.CookieCollection.Count-1 do
          begin
                IdHTTP1.Request.RawHeaders.Add('Cookie'+
                IdHTTP1.Request.RawHeaders.NameValueSeparator+
                cookie.CookieCollection.Items[I].CookieText);
                showmessage(cookie.CookieCollection.Items[I].CookieText);
          end;

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par Fenix01 Voir le message
    D'accord, mais de quel façon est ce que je dois propager ce SSID ?
    Je pensais qu'il était propagé avec cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for i := 0 to cookie.CookieCollection.Count-1 do
          begin
                IdHTTP1.Request.RawHeaders.Add('Cookie'+
                IdHTTP1.Request.RawHeaders.NameValueSeparator+
                cookie.CookieCollection.Items[I].CookieText);
                showmessage(cookie.CookieCollection.Items[I].CookieText);
          end;
    peut-être, que te dis le ShowMessage ?

    moi j'ai constaté que lors du premier accès à connexion.php je retrouve l'ID de session dans l'URL....vérifie s'il est dans les données du POST ou dans les Cookies
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Comment se connecter sur un site web?
    Par carnifex dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 25/06/2017, 17h00
  2. [XL-2007] Connection a une base de donnée SQL hébergé sur un site web
    Par astroflo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/01/2012, 16h26
  3. [MySQL] aide pour connection mysql avec du php sur mon site web
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 23/09/2007, 00h30
  4. application qui connecte sur une page web
    Par spoolz dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 14/04/2004, 09h47
  5. Réponses: 2
    Dernier message: 08/11/2003, 23h42

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