Page 1 sur 1

[R] Winhttp: GET, envoyer variable par URL

Posté : dim. 25 mars 2012 18:20
par plop22
Bonsoir,
me voilà requérant à nouveau votre aide (encore !!! :roll: :mrgreen: )

après plus d'une heure d'exploration du forum à l'aide de la fonction recherche et maintes batailles avec google, je me tourne vers vous:

j'ai un problème avec l'udf winhttp ( http://winhttp.origo.ethz.ch )

en effet, j'ai une page php qui sert d’intermédiaire entre mon programme et une bdd mysql (elle sert à ajouter de nouveaux éléments dans une table)

ces éléments sont passés en variables par l'url et je les récupère après.... ( $pseudo = $_GET['pseudo']; ) ceci marche très bien lorsque je change manuellement l'URL dans mon navigateur ( mapage.php?var1=valeur1&var2=valeur2& ....... )

je cherche donc grâce à winhttp à simplement "faire une connexion" avec l'url qui contiendrait mes infos (comme quand je le fais depuis mon navigateur)

donc je voudrais savoir comment puis-je le faire !! (je précise que je ne veux pas d'IE )

désolé pour le manque de clarté, n'hésitez pas à me demander des précisions!


merci à vous

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : dim. 25 mars 2012 19:44
par mikell
Bah généralement c'est facile :shock:

Code : Tout sélectionner

$url = l'url que tu rentres manuellement dans le navigateur
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", $url, 0)
$oHTTP.Send()

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : dim. 25 mars 2012 20:24
par plop22
Please mind this: The existence of Objects depend on the computer's operating system and installed programs. For example, the winhttp.winhttprequest.5.1 object only exists on computers that have at least Internet Explorer version 5 installed. When you are sharing scripts that use COM objects, be sure the objects exist on all computers.
Je souhaite ne pas être dépendant de la présence de IE! C'est pour cela que je souhaite utiliser l'udf Winhttp ( ou une autre si vous me proposez )

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : dim. 25 mars 2012 22:49
par mikell
Ben faut lire le fichier d'aide de Winhttp.au3 (Winhttp.chm)
► Afficher le texte

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : lun. 26 mars 2012 11:38
par plop22
le problème est que je ne le comprends pas ... du moins pas pour faire ce que je veux faire :?

(c'est pour cela que j'ai besoin d'aide et que j'ai posté sur le forum )

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : lun. 26 mars 2012 11:54
par mikell
plop22 a écrit :je cherche donc ... à simplement "faire une connexion" ...
je ne le comprends pas ... du moins pas pour faire ce que je veux faire
C'est un peu vague pour savoir précisément ce que tu veux faire :?
Pour _WinHttpOpenRequest($hConnect) le paramètre est "GET" par défaut

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : lun. 26 mars 2012 12:03
par plop22
C'est un peu vague pour savoir précisément ce que tu veux faire :?
je comprends! :mrgreen: je vais donc essayer d'expliquer du mieux possible:


-j'ai un script php qui ajoute des valeurs à la table

-ces valeurs sont passées dans l'url de la page (GET)

-j'aimerais pouvoir reproduire l'équivalent (cad: passer des valeurs dans l'url) avec winhttp. (un truc du style: ouvrir une connexion sur mapage.php?var1=valeur1&var2=valuer2 ...)



cependant pour des soucis de sécurité je me demande si ne serait pas mieux de passer les valeurs en POST .... mais je ne sais pas non plus comment faire.. :?

Donc je serais éternellement reconnaissant envers la personne qui m'expliquera comment faire en get ET en post

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : jeu. 29 mars 2012 13:19
par plop22
UP s'il vous plait !

j'ai réellement besoin d'un coup de pouce !!!

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : jeu. 29 mars 2012 18:14
par tioxine
Salut,

J'avoue que je ne comprends pas vraiment le pb
Le code fourni par mikell fonctionne bien
Bien sur, il faut l'adapter
Exemple

Code : Tout sélectionner

; Specify what to connect to
Global $hConnect = _WinHttpConnect($hOpen, "www.autoitscript.fr") ; <- yours here
If @error Then
    MsgBox(48, "Error", "Error specifying the initial target server of an HTTP request.")
    _WinHttpCloseHandle($hOpen)
    Exit 2
EndIf

; Create request
Global $hRequest = _WinHttpOpenRequest($hConnect,"GET","/forum/viewtopic.php?f=3&t=9565")
If @error Then
    MsgBox(48, "Error", "Error creating an HTTP request handle.")
    _WinHttpCloseHandle($hConnect)
    _WinHttpCloseHandle($hOpen)
    Exit 3
EndIf
 
Pour le POST, remplacer GET par POST puis adapter le sendrequest pour ajouter les données nécéssaires
L'exemple accompagnant la documentation montre ce qu'il faut faire

A+

Re: [..] Winhttp: GET, envoyer variable par URL

Posté : jeu. 29 mars 2012 18:58
par plop22
merci !!

je ne clos pas tout de suite le sujet, au cas ou.....