Page 1 sur 1

script cgi en c

Posté : 04 févr. 2012, 21:04
par Rémi1995
bonsoir je vous ecris pour vous demender que faire pour pouvoir utiliser des scripts cgi. j'ai essayé de créer un script cgi qui affiche hello world [c]#include <stdio.h>

void haut(char *);
void bas();

int main(void)
{
printf("Content-Type: text/cgi;\n\n");
haut("Ma page en C !");

printf("Hello World !");

bas();
return 0;
}

/* On sépare le squelette HTML du reste du code */
void haut(char *title) {
printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1- ... \">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\" >\n\t<head>");
printf("\t\t<title>%s</title>", title);
printf("\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t</head>\n\t<body>");
}

void bas() {
printf("\t</body>\n</html>");
}
[/c]
et xampp m'affiche Erreur du serveur!

Le serveur a été victime d'une erreur interne et n'a pas été capable de faire aboutir votre requête. Soit le server est surchargé soit il s'agit d'une erreur dans le script CGI.

Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le webmestre.
Error 500
127.0.0.1
02/04/12 19:59:27
Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1

Re: script cgi en c

Posté : 04 févr. 2012, 21:11
par Calimero
As-tu compilé ce code source ?

Re: script cgi en c

Posté : 04 févr. 2012, 21:48
par Rémi1995
je l'ai compiler en exe et sa me l'affiche comme pour télécharger un logiciel

Re: script cgi en c

Posté : 04 févr. 2012, 22:52
par sirakawa
Il y a bien longtemps que je n'écris plus de CGI. J'en faisais quand on n'avait que le HTML et qu'il fallait faire des calculs...
Le problème y est qu'il fut une programmation extremement rigoureuse pour pallier les trous de sécurité qu'on risque d'introduire...

Il faut déjà aller à la pêche de httpd.conf, l'éditer PRUDEMMENT, surtout avec Wamp, chercher la ligne commençant comme celle-ci:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
elle indiquera où poser le programme
et/ou se coltiner:
http://httpd.apache.org/docs/2.3/fr/howto/cgi.html
les exemples sont en perl, mais on devrait pouvoir extrapoler...

Mais PHP permet de faire autant, sinon plus.... (lire Wikipedia sur ce point)

Re: script cgi en c

Posté : 05 févr. 2012, 09:54
par Rémi1995
que veut tu dire par que veux tu dire par
Le problème y est qu'il fut une programmation extrêmement rigoureuse pour pallier les trous de sécurité qu'on risque d'introduire.
PHP permet de faire autant, sinon plus

j'ai réussi avec l'extension pl mais pas en cgi(je l'ai écris en c )

Re: script cgi en c

Posté : 05 févr. 2012, 10:52
par sirakawa
je veux dire,qu'il faut vérifier ,attentivement toutes les entrées de l'utilisateur.
Si tu as réussi en pl, tu devrais pouvoir traduire en C

Re: script cgi en c

Posté : 05 févr. 2012, 11:15
par Rémi1995
que veux tu dire par
Si tu as réussi en pl, tu devrais pouvoir traduire en C
et voici le code que je voudrai ecrir
[c]#include <stdio.h>

void haut(char *);
void bas();

int main(void)
{
printf("Content-Type: text/html;\n\n");
haut("Ma page en C !");

printf("Hello World !");

bas();
return 0;
}

/* On sépare le squelette HTML du reste du code */
void haut(char *title) {
printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1- ... \">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\" >\n\t<head>");
printf("\t\t<title>%s</title>", title);
printf("\t\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t</head>\n\t<body>");
}

void bas() {
printf("\t</body>\n</html>");
}
[/c]
et il m'affiche Erreur du serveur!

Le serveur a été victime d'une erreur interne et n'a pas été capable de faire aboutir votre requête.

Message d'erreur:
Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE On sépare le squelette HTML du reste du code */ at C:/xampp/htdocs/espace_membre/dd.pl line 18. ,

Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le webmestre.
Error 500
127.0.0.1
02/05/12 10:14:40
Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1

Re: script cgi en c

Posté : 05 févr. 2012, 17:34
par sirakawa
Je ne sais quoi dire: ça fonctionne chez moi après compilation et copie dans le répertoire indiqué dans httpd.conf

Re: script cgi en c

Posté : 05 févr. 2012, 20:10
par Rémi1995
est ce que tu peut me montrer ton fichier httpd.conf (la partie qui est concerné) stp

Re: script cgi en c

Posté : 06 févr. 2012, 11:26
par sirakawa
Il y a ça:
LoadModule cgi_module modules/mod_cgi.so
et ça
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
et
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
pas ensemble...

Re: script cgi en c

Posté : 06 févr. 2012, 12:33
par Mazarini
IE peut être paramétré pour afficher des erreurs "standard' ou afficher le résultat du script. Pour du développement, il faut afficher le résultat du script et non pas une page en fonction du type d'erreur.

Dans un cas tu as un message de type : "division par zéro..." et dans l'autre uniquement erreur interne 500.