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

 


Dernière réponse
Sujet : methode post sur cgi C/C++
slvn 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é

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
slvn 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é
barbarella 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 ..>
barbarella 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 ....
slvn 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);
aqwsezsxdr 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...
slvn 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 ;)
barbarella 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]

aqwsezsxdr 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;
slvn l input ?! ce que contient la varaible stdin ?!
aqwsezsxdr 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);
...
slvn oups, oui une erreur c etait glissé dnas le cope,
 
mais meme avec ca, j ai tjrs le meme message,
aqwsezsxdr while( (!feof(stdin)) ||(x<998) )  
essaye avec
while( (!feof(stdin)) && (x<998) )
slvn 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
aqwsezsxdr 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]

slvn (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>" );
}
aqwsezsxdr 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 ???
slvn ok ;)
mais j aimerais savoir ce qu il envoie sur l entrée standard alors, s
surtout que le printf(t) ne renvoie rien,
aqwsezsxdr 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.
slvn 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....

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)