logo Homepage
+  NewbieContest
Username:
Password:
  Voir les messages
Pages: [1]
1  Challenges / Aide Programmation / Re : Prog - Fichus nombres le: 11 Avril 2009 à 15:37:15
Ok merci après pas mal de temps j'arrive à envoyer les réponses par javascript
mais ça ne marche toujours pas 

J'ai le bon couple login /mot de passe que je renvoi par l'intermédiaire d'un script javascript qui remplie automatiquement la page et la renvoie (vu que la méthode POST ne marche pas ).

Je ne voie pas pourquoi çà ne marche pas.
Peut on me confirmer que l'on peut bien valider l'épreuve histoire de savoir si c'est bien de moi que vient le problème.

[edit]
Ok Merci beaucoup Iansus
J'ai enfin réussi à validé l'épreuve
J'aurai jamais cru que le plus dur été de réussir l'identification.
2  Challenges / Aide Programmation / Re : Prog - Fichus nombres le: 11 Avril 2009 à 13:52:23
Bon Ok va pour le javascript
Quelques questions pour commencer

     - Le formulaire n'a pas de nom donc comment faut-il faire pour accéder aux champs ?
     - C'est normale que le champ action soit vide ?

(je pourrait supprimer le post si les questions donnent trop d'indices)
3  Challenges / Aide Programmation / Re : Prog - Fichus nombres le: 11 Avril 2009 à 13:36:08
Merci de ta réponse

Je ne suis vraiment pas à l'aise avec le javascript donc y il a t il une autre solution ? 
Sinon quel est la différence entre remplir le formulaire en javascript ou envoyer directement la réponse en  C (dans mon cas )?
4  Challenges / Aide Programmation / Re : Prog - Fichus nombres le: 11 Avril 2009 à 12:26:41
Bonjour à tous

j'arrive bien à récupérer  le login et le mot de passe mais pas à valider le 3éme formulaire
je post les identifiants de la même manière que pour valider les autres formulaires mais je n'ai aucune réponse (même pas un message d'erreur );
Il y a t il une méthode particulière à utiliser pour envoyer les données  et valider la page?
5  Programmation / Langages compilés / Re : Impossibilité d'effectuer 2 requêtes HTTP successives en C avec le même soc le: 01 Novembre 2008 à 09:55:58
Après avoir corrigé mon code je l'ai essayé sur un site en local et il a très bien fonctionné (la 2de requête me renvoie bien ce que je demande).
Mais lorsque je l'utilise sur google par exemple la 2de requête sensée demander GET /firefox me renvoie le code de la page d'accueil du cite sans header.
Je n'arrive pas à savoir pourquoi et le plus bizarre c'est que cela marche très bien en utilisant les socket en python.
Il y a t'il un mécanisme de protection concernant le temps minimal entre 2 requêtes ou quelque chose du même genre ?
6  Programmation / Langages compilés / Re : Impossibilité d'effectuer 2 requêtes HTTP successives en C avec le même soc le: 31 Octobre 2008 à 12:04:57
Citation
Par contre je n'ai pas trouvé comment ignorer les caractères qui ne rentrent pas dans le buffer lors de la réception et donc éviter de devoir tout recevoir
J'ai ecrit ça par rapport au contenu du man

Code:
Ces  trois routines renvoient la longueur du message si elles réussissent. Si un message est 
trop long pour tenir dans le tampon, les octets supplémentaires peuvent  être  abandonnés 
suivant  le  type  de socket utilisé.
Mais si ça n'a pas vraiment d'intérêt c'est tout aussi bien de tout recevoir, puis de trier.

Très bien merci beaucoup pour votre aide,maintenant je sais qu'il ne faut surtout pas délaisser les retours de fonction ce qui m'évitera de faire ce genre d'erreur.


7  Programmation / Langages compilés / Re : Impossibilité d'effectuer 2 requêtes HTTP successives en C avec le même soc le: 31 Octobre 2008 à 11:07:14
Merci beaucoup pour ces explications
Effectivement je n'avais pas fait attention au faite que les données sont "présentes dans la connexion" tend qu'elles n'ont pas été toutes reçues grâce à la fonction recv.
En plus il existe une limite dans la taille des données que l'on peut recevoir donc quelque soit la taille du buffer on ne reçoit pas tout, ce qui explique pourquoi j'avais la suite du code de la page avec un second appel à recv.
Et pour finir le tout était couplé à un dépassement de buffer, car comme la réception était incomplète je n'avais pas forcement le caractère de fin de chaîne '\0' ce qui affichait n'importe quoi.

Par contre je n'ai pas trouvé comment ignorer les caractères qui ne rentrent pas dans le buffer lors de la réception et donc éviter de devoir tout recevoir
D'aprés le man de recv (si j'ai bien compris ) il faut changer de type de socket mais je n'ai pas compris comment ?
8  Programmation / Langages compilés / Re : Impossibilité d'effectuer 2 requêtes HTTP successives en C avec le même soc le: 30 Octobre 2008 à 17:04:35
Voilà je rajoute mon code
Cette fois ci je veux obtenir la page de google.
j'ai ce que je demande à la première requête mais pas à la seconde

Code:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>

#define INVALID_SOCKET -1
#define SOCKET_ERROR -1
#define closesocket(param) close(param)

typedef int SOCKET;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr SOCKADDR;


char requete1[]="GET / HTTP/1.1\r\nHost: www.google.fr\r\nConnection:Keep-Alive\r\n\r\n";
char ch[2024];

int main()
{
SOCKET sock;
int ret = 0;
host = gethostbyname("www.google.fr");

sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == 0) printf("erreur ouverture socket"),exit(EXIT_FAILURE);
SOCKADDR_IN sin;
sin.sin_addr.s_addr = inet_addr(inet_ntoa( * (struct in_addr *)( host->h_addr_list[0]) ));
sin.sin_family = AF_INET;
sin.sin_port = htons(80);

ret = connect(sock, (SOCKADDR *)&sin, sizeof(sin) );
if (ret==0)
{
printf("Début de la Connexion au serveur \n");
send(sock,requete1,sizeof(requete1),0);
recv(sock,ch,sizeof(ch),0);

printf("Info recu :%s\n",ch);
memset(ch,0,sizeof(ch));

send(sock,requete1,sizeof(requete1),0);
recv(sock,ch,sizeof(ch),0);
printf("\n\nReponce recu :%s\n",ch);
}

closesocket(sock);
printf("Fin de la connexion au serveur\n");
return EXIT_SUCCESS;
}
Pouvez vous m'indiquer ce qui cloche merci
9  Programmation / Langages compilés / Re : Impossibilité d'effectuer 2 requêtes HTTP successives en C avec le même socket le: 30 Octobre 2008 à 16:23:40
OK je valide l'épreuve si c ça qui pose problème
10  Programmation / Langages compilés / Re : Impossibilité d'effectuer 2 requêtes HTTP successives en C avec le même socket le: 30 Octobre 2008 à 16:03:20
Dls je ne cherche pas à avoir la solution pour résoudre l'épreuve, j'ai pris ce topic car je cherche juste de l'aide et je pense que mon problème est très ciblé.
Je veux juste savoir pourquoi je ne peux pas effectuer la 2de requête?
Peut être faudrait il le mettre dans les afterwards ?


11  Programmation / Langages compilés / [C] Impossibilité d'effectuer 2 requêtes HTTP successives avec le même socket le: 30 Octobre 2008 à 12:29:03
Bonjour
Mon problème est peu être tout bête mais je n'arrive pas a trouver la solution.

J'ai réussi à faire les premières épreuves de programmation (renvoi) en python et j'ai donc décidé de faire les suivantes en C à l'aide des sockets.
Mon problème vient du fait que je n'arrive pas à exécuter la deuxième requête qui renvoie le résultat trouvé.
je m'explique :
      Dans mon code j'ouvre un socket puis j'effectue une premier requête HTTP GET et j'obtiens bien la page que je demande (ie : epreuves/prog/prog4.php )
      je traite les données reçus puis je refait une requête HTTP en incluant ma réponse mais je ne reçoit pas la bonne page, a la place je reçoit le code de la page d'accueil du site sans header http
      De plus j'ai essayer d'exécuter 2 fois la même requête sans succès, en faisant attention de bien spécifier Connection :Keep-Alive dans le header que j'envoie.

Le seul moyen que j'ai trouver pour que ça marche c'est de fermer le socket après la premier requête, puis d'en ouvrir un nouveau et d'effectuer la seconde.
Je cherche désespérément un moyen de faire les 2 requêtes avec le même socket
merci  de votre aide.


Voici le code que je tente de faire marcher :

Edit : J'ai retirer les sources pour ne pas donner de solution.



Si jamais je suis dans le mauvais topic  merci de me le signaler.
Pages: [1]