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

 Delphi Discussion :

[WIN32[[D7] Variables dans Url et problème de syntaxe


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Par défaut [WIN32[[D7] Variables dans Url et problème de syntaxe
    Bonsoir,

    je tente d'envoyer par methode post mes identifiants (pseudo, et pass).
    j'ai eu beau essayer de plusieures manières, je ne parvient pas à trouver
    la syntaxe correcte.

    Ceçi fonctionne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser1.Navigate('http://le_site.com/page.php?username=abcde&password=123456');
    Mais...

    j'aimerai remplacer "abcde" par le contenu d'une variable disons nomée "pseudo1"
    et remplacer "123456" par le contenu d'une variable disons nomée "pass1".

    Mes deux variables sont définies comme telles:
    pseudo1 : String;
    pass1 : String;

    quand je teste le retour à l'aide de ou la valeur du pass.
    Les valeurs contenues dans ces variables me sont retournées correctement.

    j'ai bien tenté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser1.Navigate('http://le_site.com/page.php?username=(pseudo1)&password=(pass1)');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser1.Navigate('http://le_site.com/page.php?username=('pseudo1')&password=('pass1')');
    et d'autres methodes sans succès

    j'en déduit donc que ma syntaxe ne doit probablement pas être correcte.

    Un peu d'aide ne serait pas de refus, en vous en remerçiant d'avance.

    Bonne soirée et Merçi à tous.

    Amitiés Hepha1970

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 124
    Par défaut
    SAlut
    tu y etais presque c'est juste de la concatenation de chaine, je pense que comme cela ca fonctionnera

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser1.Navigate('http://le_site.com/page.php?username=' + pseudo + '&password=' + pass1);
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Par défaut
    Merçi de ton aide Qwazerty

    c'est exactement comme tu l'a indiqué, ça fonctionne a merveille

    Encore Merçi

    Amitiés Hepha1970

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser1.Navigate('http://le_site.com/page.php?username=abcde&password=123456');
    Ceci n'est pas un envoi en méthode Post des données, mais en méthode Get

    Pour envoyer en méthode post il faut faire comme cela

    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
    27
    28
    29
     
    var
      lst : TStringList;
      strPostData: string;
      URL, Flags, TargetFrameName, PostData, Headers: OleVariant;
      i : integer;
    begin
      lst := TStringList.Create;
      try
        lst.Add('username=' + Pseudo1);
        lst.Add('password=' + password);
        strPostData := '';
        for i := 0 to lst.Count -1 do
          strPostData := strPostData + lst.Strings[i] + '&';
        strPostData := Copy(strPostData,1,Length(strPostData) -1);
     
        PostData :=  VarArrayCreate([0, Length(strPostData) - 1], varByte);
        for I := 0 to Length(strPostData) -1 do
          PostData[I] := Ord(strPostData[i+1]);
     
        Url := 'http://le_site.com/page.php';
        Flags := 0;//EmptyParam;
        TargetFrameName := 0;//EmptyParam;
        Headers := 'Content-Type: application/x-www-form-urlencoded'#13#10;
     
        WebBrowser1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
      finally
        lst.Free;
      end;
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Super, c'est ce que je voudrait, mais dans l'autre sens...

    Il y a moyen de récupérer les valeurs postées dans un formulaire du TWebBrowser ?

    Mes recherches ne mènent à rien... Il faut dire que l'univers du oleVariant est un peu vastement flou.

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    encore une fois, il est inutile de passer par un TWebBrowser pour faire une requête HTTP, il y a des tas de composants qui le font très bien.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bon, j'ai réussi à faire quelque chose qui a l'air un peu mac giver mais qui fonctionne.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    procedure TfrmMain.WebBrowser1BeforeNavigate2(Sender: TObject;
      const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
      Headers: OleVariant; var Cancel: WordBool);
      function OleVariantToMemoryStream(OV: OleVariant): TMemoryStream;
      var Size: integer;
        Data: PByteArray;
      begin
        Result := TMemoryStream.Create;
        try
          Size := VarArrayHighBound (OV, 1) - VarArrayLowBound(OV, 1) + 1;
          Data := VarArrayLock(OV);
          try
            Result.Position := 0;
            Result.WriteBuffer(Data^, Size);
          finally
            VarArrayUnlock(OV);
          end;
        except
          Result.Free;
          Result := nil;
        end;
      end;
    var ms: TMemoryStream;
      ss: TStringStream;
    begin
      //ShowMessage('Coucou: '+WebBrowser1.OleObject.Document.forms.item(0).elements.item('txt2').value); //
      ss := TStringStream.Create('');
      try
        if Length(PostData) > 0 then begin
          ms := OleVariantToMemoryStream(PostData);
          ms.Position := 0;
          ss.CopyFrom(ms, ms.size);
          ss.Position := 0;
          ShowMessage(ss.DataString);
        end;
      finally
        ss.Free;
      end;
    end;
    Merci d'avance.

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

Discussions similaires

  1. [1.x] Problème de récupération variable dans URL
    Par missJu dans le forum Symfony
    Réponses: 11
    Dernier message: 28/11/2011, 18h31
  2. Réponses: 4
    Dernier message: 30/12/2005, 11h07
  3. [FLASH MX] Variable dans URL
    Par assouline dans le forum Flash
    Réponses: 1
    Dernier message: 07/09/2005, 02h05
  4. [FLASH MX2004] Recuperation variable dans URL
    Par Bibicmoi dans le forum Flash
    Réponses: 11
    Dernier message: 20/08/2005, 14h05
  5. [ActionScript] Récupérer variable dans URL
    Par JohnBlatt dans le forum Flash
    Réponses: 2
    Dernier message: 20/07/2005, 10h21

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