Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2980 connectés 

  FORUM HardWare.fr
  Programmation

  methode post sur cgi C/C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

methode post sur cgi C/C++

n°61133
slvn
Posté le 23-09-2001 à 20:59:51  profilanswer
 

je cherche a utiliser la methode post pour passer des parametre de maniere invisible (pas dans l url!) :
 
j ai trouvé ca:  
 
char temp[1000],*t;  t=temp;
while(!feof(stdin)) { *t=fgetc(stdin);t++;}
printf(t);  
 
mais bon, sdtin ?! en plus le cgi a pas l air de marcher des masses....

mood
Publicité
Posté le 23-09-2001 à 20:59:51  profilanswer
 

n°61135
aqwsezsxdr
Posté le 23-09-2001 à 21:03:30  profilanswer
 

stdin c'est l'entree standard c'est equivalent à un scanf
et pour les cgi c'est la bonne maniere de faire. Le serveur http balance ses infos sur le stdin du cgi.

n°61137
slvn
Posté le 23-09-2001 à 21:07:23  profilanswer
 

ok ;)
mais j aimerais savoir ce qu il envoie sur l entrée standard alors, s
surtout que le printf(t) ne renvoie rien,

n°61139
aqwsezsxdr
Posté le 23-09-2001 à 21:13:01  profilanswer
 

si le printf n'affiche rien c'est qu'il doit rien y avoir sur le stdin.  
 
Ton cgi c'est bien ton serveur http qui le lance ???

n°61140
slvn
Posté le 23-09-2001 à 21:21:33  profilanswer
 

(j utilise PWS de microsoft)
le cgi est executé par ce truc du dessus je pense,  
enfin, ca marche pour les autre cgi en general, mais pas pour celui la :
#include <stdio.h>
#include <stdlib.h>
 
void main(void)
{
char *t;
t=(char*)malloc(1000);
int x=0;
 
while( (!feof(stdin)) ||(x<998) )
{
*t=fgetc(stdin);
t++;x++;
}
printf("%s%c%c\n","content-type:text/html;char
set=iso-8859-1",13,10);
printf("<HTML><BODY BGCOLOR=\"#FFFFFF\">\n" );
printf(t);
printf("</body></html>" );
}

n°61141
aqwsezsxdr
Posté le 23-09-2001 à 21:30:08  profilanswer
 

essaye:
#include <stdio.h>  
#include <stdlib.h>  
 
void main(void)  
{  
char *t;  
t=(char*)malloc(1000);  
int x=0;  
 
while( (!feof(stdin)) ||(x<998) )  
{  
*t=fgetc(stdin);  
t++;x++;  
}  
printf("Content-type: text/html\r\n" );
printf("<HTML><BODY BGCOLOR=\"#FFFFFF\">\n" );  
printf(t);  
printf("</body></html>" );  
}
 
Content-type: text/html\r\n
et un espace entre Content-type: et text

 

[edtdd]--Message édité par aqwsezsxdr--[/edtdd]

n°61142
slvn
Posté le 23-09-2001 à 21:32:29  profilanswer
 

non, ca marche pas mieux :(
(la ligne que tu as remplacait, marchait dnas mes autres cgi)
le symptome sur celui la
en bas du browser reste affiché :  opening http://.......
bizarre vu qu on est en local

n°61143
aqwsezsxdr
Posté le 23-09-2001 à 21:35:30  profilanswer
 

while( (!feof(stdin)) ||(x<998) )  
essaye avec
while( (!feof(stdin)) && (x<998) )

n°61144
slvn
Posté le 23-09-2001 à 21:44:16  profilanswer
 

oups, oui une erreur c etait glissé dnas le cope,
 
mais meme avec ca, j ai tjrs le meme message,

n°61145
aqwsezsxdr
Posté le 23-09-2001 à 21:55:33  profilanswer
 

tu peux recuperer la longueur de l'input par cette methode
 
char *lenstr = getenv("CONTENT_LENGTH" );
char input[1000];
int len=0;
 
if(lenstr)
sscanf(lenstr,"%ld",&len);
 
fgets(input, len+1, stdin);
...

mood
Publicité
Posté le 23-09-2001 à 21:55:33  profilanswer
 

n°61146
slvn
Posté le 23-09-2001 à 22:04:28  profilanswer
 

l input ?! ce que contient la varaible stdin ?!

n°61148
aqwsezsxdr
Posté le 23-09-2001 à 22:08:45  profilanswer
 

ouep  
PS: stdin c'est pas une variable, c'est le nom d'un flux (y'a aussi stdout, c'est ce que tu utilise qd tu fais un printf et  le stderr) c'est equivalent à un FILE *stream;

n°61150
barbarella
Posté le 23-09-2001 à 22:26:08  profilanswer
 

salut,
 
bon pour la forme post (recup de formulaire par exemple), j'utilse un truc du genre
 
 
char input[1000]
 
lenstr = getenv("CONTENT_LENGTH" );
 
if((lenstr == NULL) || sscanf(lenstr,"%ld",&len) != 1)
{
  erreur = 103;
}
else
{
  if((len > 0) && (len < 1000))
  {
    fgets(input, len+1, stdin);
.....

 

[edtdd]--Message édité par barbarella--[/edtdd]

n°61154
slvn
Posté le 23-09-2001 à 23:01:08  profilanswer
 

salut :)
 
encore une fois merci :) ton scripts marche impeccablement :)
meme si j ai tjrs pas capté pkoi fgets etait un meilleurs moyen de lire l entrée standard que fgetc ;)
 
merci ;)

n°61156
aqwsezsxdr
Posté le 23-09-2001 à 23:07:35  profilanswer
 

ton cgi reste bloqué dans la boucle while
pour la simple et bonne raison qu'il n'y a pas de caractere fin de fichier transmis par le serveur. Du coup le feof ne passe jamais à true...

n°61157
slvn
Posté le 23-09-2001 à 23:26:41  profilanswer
 

ok, c pas con :)
 
j ai remarqué que le x<1000 ne permettait pas non plus de sortir,
(pas avant 5 min), alors que si je met juste x<10, ca sort bien du while,  
ca affiche  <html>.....   mais pas le printf(t);

n°61164
barbarella
Posté le 24-09-2001 à 01:31:54  profilanswer
 

slvn  
 
je ne voudrais pas casser ton élan (a moins que t'ai trouvé un truc) mais la seule manière d'utiliser la méthode POST en html 4.0 c'est d'utiliser la balise <FORM method=, parceque la balise <A ...>..</A> n'accepte pas 'method', en tout cas ça ne fonctionne pas. enfin d'après les essaies et que j'ai fait et des doc dont je dispose.
 
je viens encore d'essayer avec ie5.5 sp2, est un <A method="post" href="..">...</A> ben ça me renvoie une chaine de longueur zéro :(
 
Si t'as un truc dis le de suite :). Faut que je vérifie encore une source, mais bon ....

n°61165
barbarella
Posté le 24-09-2001 à 01:41:44  profilanswer
 

ben non,
 
le W3C.org semble bien confirmer que HTML 4.01 ne dispose pas d'une spécification 'method ' dans sa balsie <A HREF ..>

n°61315
slvn
Posté le 24-09-2001 à 18:34:07  profilanswer
 

je pensais bien utilser post dans les formulaires :)  (c plus pratique lorsqu il s agit d envoyer un mot de passe...)
 
mais sinon, le coup de "post" dans un lien reste a étudier, c vrai que ca pourrias etre pratique/securisé


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  methode post sur cgi C/C++

 

Sujets relatifs
Erreur sous Windows (VB/VC++) : La méthode ~ de l'objet ~ a échouéenvoyer un formulaire sous forme cryptée à un script PHP, méthode ?
[JavaScript] invoquer une méthode Java sur une applet (prob Netscape)[ PHP ] Pourquoi en post j'ai pas toute ma variable
Methode get et post ![JAVA] servlet et [HTML] mehtode post :(.
form action="mailto:blabliblablo@free.fr" method="post" enctype=text/p[HTML] Spécifier l'encoding lors d'un post de formulaire
il y a t'il un pro de visual Interdev methode addRecord=soci ??? 
Plus de sujets relatifs à : methode post sur cgi C/C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR