Envoyer des données POST depuis un programme ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Nombre
Messages : 24
Inscription : mar. 04/sept./2007 12:23

Envoyer des données POST depuis un programme ?

Message par Nombre »

Salut !
J'aimerais savoir comment créer un programme qui rempli automatiquement des données de POST sur un site Internet depuis mon prog.

Voila un topic similaire :
http://www.purebasic.fr/french/viewtopi ... formulaire

J'ai déja commencé un code:

Code : Tout sélectionner


Enumeration
  #Window_0
  #String_0
  #String_1
  #String_2
  #Button_0
EndEnumeration


  If OpenWindow(#Window_0, 324, 3, 278, 184, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      StringGadget(#String_0, 20, 10, 240, 20, "Nom")
  
      ButtonGadget(#Button_0, 20, 130, 230, 30, "OK")
                       Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

    EndIf
  EndIf


En fait dans ce code il devrait remplir les données d'un site web sans aller dessus ,exemple :
Un internaute crée un site web pour faire des tests PHP.
L'une de ses pages consiste à écrire ton nom,ton age,ton mail...
Et quand tu valide les données par POST,il inscris ta CDV sur son site.

Donc,comme le topic montré plus haut,j'aimerais pouvoir en remplir les données sans a me taper tout le bla bla.
J'explique :

-Le site demande ton nom,ton age,ton email.
-Avec mon programme on pourrait avoir juste a écrire le nom,les autres infos seraient déja pré-remplis !

Et enfin vu que ce code ne peut pas fonctionner sur des formulaires avec code de confirmation,je sais qu'il ne pourra pas être utilisé a des fins bizares.
Vous me suivez ?

Je vais chercher comment faire,si vous avez une idée n'hésitez pas !
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Je suis preneur aussi pour cette info :wink:
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Idem :D
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Un exemple pour se connecter au forum Purebasic serait parfait :?:
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Nombre
Messages : 24
Inscription : mar. 04/sept./2007 12:23

Message par Nombre »

Oulalala...
J'ai beau remplacer index.html par mon propre truc,syntax error a toutes les lignes...
Si quelqu'un pourrait compléter mon code,je voudrais bien lui donner 1000€ lol
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

J'ai trouvé sur le forum US un code de Karbon

http://www.purebasic.fr/english/viewtop ... urlencoded

Voici donc comment s'auto-logguer sur le forum :

Code : Tout sélectionner

;/ Author : Karbon

#INTERNET_OPEN_TYPE_DIRECT = 1 
#HTTP_ADDREQ_FLAG_ADD = $20000000 
#HTTP_ADDREQ_FLAG_REPLACE = $80000000 
#INTERNET_FLAG_SECURE = 0 ;/ $800000 si HTTPS
#INTERNET_SERVICE_HTTP = 3 ; Type of connection (could be FTP Gopher etc). HTTPS is done as HTTP too. 
#INTERNET_DEFAULT_HTTP_PORT = 80  ;/ 443 si HTTPS
#HTTP_QUERY_COOKIE = 44 ; ;For httpqueryinfo. 

Procedure.s do_post(username.s, Password.s) 
  
  ; 
  ; Do NOT include http:// or any other protocol indicator here 
  ; 
  host.s = "purebasic.fr" 
  
  ; 
  ; Everything after the hostname of the server 
  ; 
  get_url.s = "/english/login.php" 
  
  ; 
  ; Holds the result from the CGI/page 
  ; 
  result.s = "" 
  
  ; 
  ; All from the wininet DLL 
  ; 
  ; Be sure your Internet Explorer is up to date! 
  ; 
  open_handle = InternetOpen_("User Agent Info Goes Here",#INTERNET_OPEN_TYPE_DIRECT,"","",0) 
  
  connect_handle = InternetConnect_(open_handle,host,#INTERNET_DEFAULT_HTTP_PORT,"","",#INTERNET_SERVICE_HTTP,0,0) 
  
  request_handle = HttpOpenRequest_(connect_handle,"POST",get_url,"","",0,#INTERNET_FLAG_SECURE,0) 
  
  headers.s = "Content-Type: application/x-www-form-urlencoded" +Chr(13)+Chr(10)  
  
  HttpAddRequestHeaders_(request_handle,headers,Len(headers), #HTTP_ADDREQ_FLAG_REPLACE | #HTTP_ADDREQ_FLAG_ADD) 
  
  ;change this when using a login form other than a phpbb one 
  post_data.s = "username="+username+"&password="+Password+"&login=Log%20in"; not sure why the submit button text is needed.... but it seemed to make it work for me :lol: 
  
  post_data_len = Len(post_data) 
  
  send_handle = HttpSendRequest_(request_handle,"",0,post_data,post_data_len) 
  
  Buffer.s = Space(1024) 
  
  bytes_read.l 
  
  total_read.l 
  
  total_read = 0 
  
  ; 
  ; Read until we can't read anymore.. 
  ; The string "result" will hold what ever the server pushed at us. 
  ; 
  Repeat 
    
    InternetReadFile_(request_handle,@Buffer,1024,@bytes_read) 
    
    result + Left(Buffer,bytes_read) 
    
    Buffer = Space(1024) 
    
  Until bytes_read=0 
  
  
  ;- uncomment the following when you want to get the cookie data - not sure if it works or not..... 
  ;buffer.s = Space(#MAX_PATH) 
  ;headernum = 0 
  ;length = Len(buffer) 
  ;HttpQueryInfo_(request_handle, #HTTP_QUERY_COOKIE, @buffer, @length, @headernum) 
  ;Debug buffer 
  
  ProcedureReturn result 
  
EndProcedure 

do_post("login", "password")
OpenWindow(0,0,0,1024,768,"WebGadget",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
CreateGadgetList(WindowID(0))
WebGadget(0,10,10,1004,748,"http://www.purebasic.fr/english/index.php")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Houlala je vais étudier ce code de près, merci Droopy :D
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Merci Droopy ! Heu...y a pas moyen de se passer des API ?
Et pour envoyer un fichier en POST on fait comment ? :p
Nombre
Messages : 24
Inscription : mar. 04/sept./2007 12:23

Message par Nombre »

Love Droopy !
Mais je pose la même question que Typhoon :?
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Thyphoon a écrit :Merci Droopy ! Heu...y a pas moyen de se passer des API ?
Et pour envoyer un fichier en POST on fait comment ? :p
j'ai déjà répondu à ça, j'ai même donné un lien...

Dri
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Dr. Dri a écrit :
Thyphoon a écrit :Merci Droopy ! Heu...y a pas moyen de se passer des API ?
Et pour envoyer un fichier en POST on fait comment ? :p
j'ai déjà répondu à ça, j'ai même donné un lien...

Dri
Oui je sais mais honte a moi j'ai jamais réussi :( alors quand j'ai vu le sujet je me suis dit....peut ête y a t'il d'autre idée. :roll:
Nombre
Messages : 24
Inscription : mar. 04/sept./2007 12:23

Message par Nombre »

Les ups sont autorisés sur ce forum ?
Répondre