Socket en C formulaire

Fermé
KSB - 1 mai 2011 à 01:14
 KSB - 1 mai 2011 à 16:02
Bonjour,
J'aimerais savoir comment faire pour envoyer des données dans un formulaire en C socket.
Ma connexion marche parfaitement j'arrive à me connecter au serveur !
J'aimerais savoir : imaginons une page avec un seul formulaire. J'aimerais que mon programme envoie une chaine de caractere dans le formulaire et qu'il reçoit une confirmation du serv pour savoir si la chaine est valide ou non.

1 réponse

Je vois bien les socket en C et les langages WEB mais je ne vois pas le rapport avec un formulaire. Pourrais tu s'il te plait expliquer d'avantage? Merci.
0
Oui.
J'ai un site page d'acceuil une image et un champs de formulaire. Pour pouvoir acceder au reste du site, il faut entrer le mot clé valide ( un "mot de passe " quoi ) je voudrais que mon programme se connecte sur le site ( ça c'est ok ) et qu'il fasse ce qu'un user normal ferrais : rentrer le mot de passe ou du moins imiter cela. Comment est-ce possible en socket ?
0
Je te conseil d'utiliser la libraire CURL pour se faire.

En fait tu dois envoyer une requête HTTP qui contient la valeur du champ de ton formulaire (comme si tu cliquais sur le bouton valider de ton formulaire).
0
Je vais voir pour cURL, mais si on reste sur le socket, il faut que je fasse send( sock,buffer,30,0) ou est ce que je met la valeur du champ de mon formulaire ?
Je passe surement à coté de quelque chose. C'est la premiere fois que j'utilise les socket j'aimerais donc bien comprendre avant d'utiliser des lib toutes faites like cURL ... :)
0
Dans ton buffer il faut que tu mettes le contenu de la requête HTTP, par exemple :
char *param = "passwd=lavaleurdetonformulaire"; 
sprintf(buffer, "POST /scriptform.php HTTP/1.1\r\nHost:http://tonsite.fr\r\nContent-type:application/x-www-form-urlencoded\r\nContent-length: %d \r\n\r\n%s\r\n\r\n", strlen(param), param); 


Franchement tu vas t'embêter pour rien, je te conseil fortement d'utiliser curl.
0
Merci beaucoup ! Le serv renvoie qqchose si le champs est invalide ?
0