Lien entre formulaire et CGI

youbous Messages postés 6 Statut Membre -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,j'essaie d’écrire un programme CGI en c et je ne sais pas comment lié le c avec un formulaire pour faire "scanf" (récupérer une valeur)
voici mon code c

#include<stdio.h>

int main()
{
printf("Content-type:text/plain\n\n");
printf("<html><head><title>exo1</title></head><body>\n");

int i;
int n;

printf("donnez n ");
scanf("%d",&n);
printf("vous avez introduit la valeur %d \n",n);
int U[n];
U[1]=1;
U[2]=2;
for(i=3;i<=n;i++)
{
U[i]=U[i-1]+U[i-2];
}
for(i=1;i<=n;i++)
{
printf("U[%d]=%d\n",i,U[i]);

}
}


et le code du formulaire

<form mathod="GET" action="http://127.0.0.1/cgi-bin/Untitled3.cgi">
<input name="nembre">
<button>submit</button>
</form>

aidez moi s'il vous plait.

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour,
    c'est sans doute une bonne idée, et elle me surprend: peux-tu nous en dire plus: où tourne ton programme, vers quoi envoie-t-il le formulaire?
    quel est l'énoncé de l'exercice?
    1
    1. youbous Messages postés 6 Statut Membre
       
      On considère la suite numérique définie par :
      U1 = 1, U2 = 2 et
      Un = 2 (Un-1 + Un-2), pour n>2
      Ecrire un script CGI en C, nommé "ex2.cgi", qui :
      1. Retourne, le nième terme de cette suite (la valeur de n est introduite par l'utilisateur),
      2. Affiche les termes de cette suite ainsi que leur somme.
      NB : Les valeurs de n est introduite via un formulaire.
      0
    2. youbous Messages postés 6 Statut Membre
       
      J'ai demander seulement comment faire scanf pour in CGI en C
      0
  2. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut youbous,

    Si ton formulaire utilise une méthode GET (note que tu as fait une faute de frappe dans
    <form mathod="GET" 
    c'est "method" et pas "mathod"), le contenu renvoyé au serveur par le formulaire est disponible dans la variable d'environnement QUERY_STRING, que tu peux récupérer avec la fonction standard
    getenv()
    . Tu parses ensuite le contenu pointé par le pointeur sur char renvoyé par
    getenv()
    , par exemple avec
    sscanf()
    .

    C'est expliqué notamment dans cet ouvrage :

    https://www.oreilly.com/library/view/cgi-programming-on/9781565921689/07_chapter-04.html

    et tu as des exemples, pour les méthodes GET et POST ("POST" étant plus délicat à gérer), là :

    http://jkorpela.fi/forms/cgic.html#simpleform

    C'est assez simple à faire dans ton cas, car tu dois récupérer juste un nombre entier.

    Si tu dois faire des choses plus élaborées il y a des bibliothèques en C, qui gèrent le CGI :

    https://www.lemoda.net/c/cgi-libraries/

    Dal
    0