Lien entre formulaire et CGI

Fermé
youbous Messages postés 5 Date d'inscription mardi 1 janvier 2019 Statut Membre Dernière intervention 1 janvier 2019 - 1 janv. 2019 à 21:34
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 2 janv. 2019 à 11:57
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

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
1 janv. 2019 à 21:47
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
youbous Messages postés 5 Date d'inscription mardi 1 janvier 2019 Statut Membre Dernière intervention 1 janvier 2019
1 janv. 2019 à 21:51
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
youbous Messages postés 5 Date d'inscription mardi 1 janvier 2019 Statut Membre Dernière intervention 1 janvier 2019
1 janv. 2019 à 21:52
Voici l'enoncé
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > youbous Messages postés 5 Date d'inscription mardi 1 janvier 2019 Statut Membre Dernière intervention 1 janvier 2019
1 janv. 2019 à 21:56
0
youbous Messages postés 5 Date d'inscription mardi 1 janvier 2019 Statut Membre Dernière intervention 1 janvier 2019
1 janv. 2019 à 22:04
J'ai demander seulement comment faire scanf pour in CGI en C
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 2 janv. 2019 à 12:18
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