IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

du cgi en C ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut du cgi en C ?
    Salut
    Bon je sais pas si ma question est bidon ou quoi mais elle est la:

    Je viens dentendre parler de CGI en C et je sais pas a quoi ca correspond g deja programme en C mais le CGI? C quoi le CGI en C?

    A quoi ca sert et on en fait pourkoi en general?je connai le un peu le php et les script sous Linux.

    Et sinon g aussi vu kil yavait le compilateur gcc3 quelle est ladifference avec les compilateur normaux
    et en general kelle est la difference entre les compilateurs normalement il doivent tous faire la meme chose non?


    Voila voila cerci pour votre aide

  2. #2
    Bob
    Bob est déconnecté
    Membre expérimenté
    Avatar de Bob
    Inscrit en
    Mars 2002
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 115
    Par défaut
    Bon le CGI c pour faire des scripts. En fait, c un executable en mode console. Qud tu ecris ds la console, ca ecrit ds la page html qui sera renvoyee au client.
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("<html><body>Ceci est un script CGI</body></html>");
    C'est tres puissant car tu peux utiliser toutes les ressoucres du C et meme du C++.
    Mais ca demande bcp de resource au serveur.

  3. #3
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par Bob
    Bon le CGI c pour faire des scripts.
    Ca m'horripile un peu quand je vois des gens dire ça, les CGI C sont compilés donc ce ne sont pas des scripts.
    Apres, il y a les CGI Perl, et là ce sont des scripts.

    Difference entre PHP et CGI Perl?
    PHP est un module apache chargé en meme temps que les process apache tandis que les CGI sont executés de A à Z à chaque requete (donc Perl est executé à chaque requete)

    Citation Envoyé par Bob
    Mais ca demande bcp de resource au serveur.
    Les CGI Perl oui, les CGI C non, ils sont enormement plus efficaces que les scripts, justement.

    Désolé, si je suis agressif, je fais mon contriste ce soir

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    Ok merci
    Donc en fait le programme garde la meme structure avec des main des fonction des lib...etc
    Il suffit juste de rajouter des balise HTML C ca ou g rien compris?
    Et c'est fait que pour l'HTML?

  5. #5
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Le CGI est une norme d'interfacage de programme/script avec un serveur web. Tu peux les programmer dans n'importe quel langage, mais les plus utiliser sont C/C++ et Perl. Ca fonction grosso modo comme un programme classique si ce n'est que les parametres donnes au programme sont ceux passe dans l'URL, qu'il n'y a pas de flux d'entree standad et que le flux de sortie et la page que tu genere (attention, il faut penser a renvoyer les headers http et les balises pour mettre en forme).

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Par défaut
    CGI=COMMOM GATEWAY INTERFACE

    Ces un interface entre un serveur Web et un program executable
    Ca te permet faire executer un programme par le serveur web
    comme tu a comprie les paramatre son envoyer au programe a l'aide des methode POST et GET et recuperer par la variable d,environement <<QUERY_STRING>> pout la methode "GET"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char *string
    string=getenv("QUERY_STRING")
    et par les entre standar pour la methode "POST"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    char string[1000], *str;
     
    str=string
    while(!feof(stdin))
    {
    *str=fgetc(stdin);
    str++;
    }
    *str=0;
    La sortie ver un Document HTML s'effectue par l'intermediaire des balise html la seule restriction est que la 1er ligne sortie doit ablsolument etre celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cout<<"Content-type: text/html\n\n\n"
    ecrit en C/C++ ou perl le programe peut executer n'importequel tache
    lecture et ecriture de fichier connection a une base de donnee... Autodestruction du serveur...ces pourquoi il est si redoutable...lol((

    Il est a noter l'hote par defaut qui execute un script CGI est noboddy(LInux)

    ALP

  7. #7
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par philippe V
    la seule restriction est que la 1er ligne sortie doit ablsolument etre celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cout<<"Content-type: text/html\n\n\n"
    Faux, il faut juste que le dernier Header HTTP soit envoyé.
    En general, oui, on met au moins un header (celui du Content-Type) puis on termine la sequence des headers par une ligne vide (ici c'est le 2eme \n)

    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fputs ("\r\n", stdout);
    suffit et le content-type par defaut du serveur web est utilisé.
    A noter que la norme HTTP défini les sauts de ligne par \r\n

  8. #8
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    tes précisions sont cool, merci.
    heu un autre pb : avec la method=post lorsque j'essaie de lire le tsdin je n'obtient rien... je ne sais lire que les données des formulaires postés avec le get, donc contenue dans la variable d'environnement.
    ne connaitrais-tu pas un autre truc pour récupérer les données d'un formulaire posté via la méthode post à mon programme c ?
    @+

  9. #9
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Sisi, le contenu du formulaire est bien dans stdin
    Tu peux le parcourir avec une boucle et fgetc()
    Tu peux aussi allouer suffisament de place et utiliser fread() sachant qu'Apache te mettra dans la variable d'environnement CONTENT_LENGTH (pas sur de l'ortho) la taille des données post.

    Par contre, on ne peux lire qu'une fois, evidemment.

  10. #10
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    merci, c'est gentil...
    @+

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    Ok

    Merci pour vos reponse, G aussi trouve kelke doc sympa donc je vais essayer si je peut de commencer a bidouiller

    En cas de problem je vous ferai signe

  12. #12
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 7
    Par défaut
    salut à tous,

    j'ai aussi quelques petites difficultés pour démarrer dans l'insertion de scripts dans mes pages HTML.

    en faisant une recherche Google, j'ai trouve un exemple de projet, qui consistait à réaliser un annuaire sur un site web.

    Le plus intéressant arrive tout de suite : le projet etait telechargeable (html, sources C, etc...)

    j'ai vu qu'il y avait un repertoire cgi-bin, contenant des fichiers *.cgi

    ma question est la suivante : comment à partir des sources C je peux créer mes scripts CGI ?

    merci d'avance

  13. #13
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par Xyrroa
    ma question est la suivante : comment à partir des sources C je peux créer mes scripts CGI ?

    merci d'avance
    Salut,
    Les CGI sont des programmes comme les autres, donc si tu sais faire du C (et compiler du C) alors tu sais créer des CGI
    Si tu ne sais pas faire du C, ni compiler du C, prends un livre et arme toi de patience

  14. #14
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par kacedda
    <...> G aussi trouve kelke doc sympa <...>
    Merci d'écrire dans un français comprehensible par tous, y compris les dinosaures que sont certains d'entre-nous...

  15. #15
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par philippe V
    La sortie ver un Document HTML s'effectue par l'intermediaire des balise html la seule restriction est que la 1er ligne sortie doit ablsolument etre celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cout<<"Content-type: text/html\n\n\n"
    Pas du C...

  16. #16
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: du cgi en C ?
    Citation Envoyé par kacedda
    Je viens dentendre parler de CGI en C et je sais pas a quoi ca correspond g deja programme en C mais le CGI? C quoi le CGI en C?
    C'est un programme qui s'exécute sur le serveur. Il a interêt à être bien écrit (C, C++, etc., peu importe), parce que sinon, il peut planter le serveur ou servir de point d'entrée pour attaquer celui-ci (backdoor).

    Un fournisseur d'accès sérieux ne devrait pas accepter de CGI. Trop dangereux... Un serveur Linux/Apache est certes moins fragile, mais une simple boucle vide suffit à le planter... (du moins en kernel 2.4). Quand aux serveurs Windows/IIS, mieux vaut ne pas en parler, à moins d'être amateur de gruyère...
    A quoi ca sert et on en fait pourkoi en general?je connai le un peu le php et les script sous Linux.
    Ca sert à réaliser des applications avec des saisies utilisateurs. Ca peut s'écrire en différents langages dont le C.
    Et sinon g aussi vu kil yavait le compilateur gcc3 quelle est ladifference avec les compilateur normaux
    : Défini 'normaux'.

    gcc est un compilateur C. Il y a differentes versions. Les plus courantes actuellement sont 3.x et maintenant 4.x. A partir de 3.x, la nouvelle norme du C (C99) commence à être partiellement supportée.
    et en general kelle est la difference entre les compilateurs normalement il doivent tous faire la meme chose non?
    Plus ou moins.
    • La partie front end (celle qui analyse le source C) est globalement identique (il peut y avoir plus ou moins de messages d'avertissement, ça dépend aussi des options).
    • La partie back end (celle qui produt le code machine) dépend évidemment de la machine cible et la qualité du code produit peut varier d'un compilateur à l'autre (ça dépend aussi des options).

  17. #17
    Membre émérite Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Par défaut
    salut !
    c bien beau de récupérer le QUERY_STRING, mais quelcun n'aurait-il pas un petit truc en c pour le formater ?
    Car avec tous ces "%HEX" je me perds un tout petit peu.
    Je m'explique : à la place d'un espace j'ai un "+"
    à la place de certains caractères j'ai leur code ascii précédé de "%"
    je sais par exemple que avant chaque "=" se trouve le nom d'un champ du formulaire... et que les "&" séparent chaque champ, mais reste le formatage, pour par exemple remplir la page générée grace à mon CGI à l'aide des données récupérées dans le stdin ou dans le getenv
    merci et @+

  18. #18
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par Sheriff
    salut !
    c bien beau de récupérer le QUERY_STRING, mais quelcun n'aurait-il pas un petit truc en c pour le formater ?
    Car avec tous ces "%HEX" je me perds un tout petit peu.
    Je m'explique : à la place d'un espace j'ai un "+"
    à la place de certains caractères j'ai leur code ascii précédé de "%"
    je sais par exemple que avant chaque "=" se trouve le nom d'un champ du formulaire... et que les "&" séparent chaque champ, mais reste le formatage, pour par exemple remplir la page générée grace à mon CGI à l'aide des données récupérées dans le stdin ou dans le getenv
    merci et @+
    Salut,

    Cette technologie étant plutot à l'abandon, il n'y a pas de librairie serieuse pour cela, fais toi ta propre librairie.

  19. #19
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    C'est un programme qui s'exécute sur le serveur. Il a interêt à être bien écrit (C, C++, etc., peu importe), parce que sinon, il peut planter le serveur ou servir de point d'entrée pour attaquer celui-ci (backdoor).
    Non. Lorsque le serveur web reçois une requete pour un CGI, le processus apache execute le cgi dans un processus à part, aucune influence sur le serveur web.

    Citation Envoyé par Emmanuel Delahaye
    Un fournisseur d'accès sérieux ne devrait pas accepter de CGI. Trop dangereux...
    C'est quand meme envisageable, mais il faut une configuration des utilisateurs en béton pour donner le moins de droits possible aux process apache (donc aux process cgi).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/06/2003, 13h48
  2. [Kylix] QGraphics et Appli CGI
    Par Sogarf dans le forum EDI
    Réponses: 1
    Dernier message: 19/11/2002, 21h54
  3. Réponses: 6
    Dernier message: 28/10/2002, 11h34
  4. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09
  5. [Kylix] [cgi] ne trouve pas libsqlmy.so.1 !
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 04/07/2002, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo