Forum Programmation.c++ Site web dynamique avec C++

Posté par  (site web personnel) .
Étiquettes : aucune
0
27
déc.
2005
Salut,

j'aimerais un peu m'entrainer à développer un site web dynamique en C++ au lieu de PHP. Mais je ne trouve pas de lien sur internet pour m'aider à démarrer.

Je cherche donc comment faire pour que apache appel le programme convenablement et tout ça. Et que dois-je faire de spécial dans mon programme pour que tout fonctionne bien ?

Merci de votre aide.
  • # j'ai pas bien compris

    Posté par  (site web personnel) . Évalué à 1.

    ce que tu cherches à faire exactement... Mettre du C++ à l'interieur de tes pages ou que tes pages puisses faire appel à des applis codés en C++ ?
    • [^] # Re: j'ai pas bien compris

      Posté par  (site web personnel) . Évalué à 1.

      plutôt la deuxième solution.

      Parce que en fait, d'habitude pour créer des pages web dynamiques, on utilise PHP qui est directement interpreté par apache (par un module donc) et il en sort une page web au format html qui est envoyé à l'utilisateur. Mais je voudrais le faire en c++.

      Pour donner l'idée (même si je sais que ce n'est pas comme ça que ça marche), je vais sur la page http://www.monsite.com/index.c++?parametre1=test&param2=(...)

      J'espère que c'est clair :)
      • [^] # C++ n'est pas un langage interprété !

        Posté par  (site web personnel) . Évalué à 6.

        index.c++?parametre1=test&param2=(...)

        ce genre d'URL n'est pas possible car tu considère ainsi que ton fichier c++ est interprété par un modula apache. ça n'existe tout simplement pas. Pour faire du C++ avec le web (ce qui est une mauvaise idée) il faut compilier ton code avec g++ et utiliser dans tes sources le principe du CGI (common gatewy interface) supporté par apache.
        le CGI c'est assez simple:
        ton programme doit:
        * Lire les arguments d'une requète http/GET via la variable d'environnement HTTP_REQUEST ou lire une requète http/POST via l'entrée standard (STDIN)
        * traîter la requète
        * écrire du HTML/javascript sur la sortie standard (STDOUT)

        un tuto CGI intéressant et facile:
        http://www.jmarshall.com/easy/cgi/

        Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie

        • [^] # Re: C++ n'est pas un langage interprété !

          Posté par  . Évalué à 2.

          Mais si ce genre d'URL est possible ! Entre une URL et le programme appelé, il peut s'en passer des choses. Comme par exemple une directive ScriptAlias de Apache ;)

          ScriptAlias /index.c++ "/le/chemin/vers/mon_programme_compilé"

          Je pense que tu le sais, mais soyons précis ;)

          Sinon, effectivement, faire du web en C++ me parait aussi une idée saugrenue, mais bon il a peut être ses raisons...
          • [^] # Web et C++ ...

            Posté par  (site web personnel) . Évalué à 1.

            On peut savoir en quoi "faire du web en C++" serait une idée mauvaise/saugrenue ? C'est juste pour savoir, vu que je me livre à cette passionnante activité une bonne partie de mes journées, si je dois en parler à mon psychanalyste ...

            Cyberdépendance, cyberharcèlement, pédocriminalité… : Zelbinium, pour que les smartphones soient la solution, pas le problème !

            • [^] # Re: Web et C++ ...

              Posté par  (site web personnel) . Évalué à 2.

              C'est simple : sur le web, on reçoit des requêtes http GET à parser ainsi que des POST à traîter (en format MIME) et l'on génère des fichiers HTML après avoir fait quelques requètes SQL. Il y a peut d'intérêt à faire de l'objet pour cela, sauf avec des objets métier mais n'étant instanciés qu'une seule fois par requète. Avec 80 % de traîtement de buffers de texte donc beaucoup de gestion des chaînes de caractères et de mémoire, C++ n'est pas un bon choix car il n'est pas réputé pour ses facilités en terme de traîtement de chaîne, et encore mois pour la gestion de la mémoire. Attends-toi à de longues soirées de débogage.

              Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie

              • [^] # Re: Web et C++ ...

                Posté par  (site web personnel) . Évalué à 1.

                Effectivement, si l'on considère que "faire du web" se réduit à ça ...
                Mais l'application que j'ai développé ne se résume pas du tout à cela (elle ne contient d'ailleurs pas la moindre requête SQL). Cependant, on se rejoint sur un point : la partie analyse de la requête et la génération du HTML sont faites par un script PERL, et non pas en C++. Plus précisément, ce script extrait les paramètres de la requête et les envois à un daemon, et transforme le flux XML retourné par ledit deamon en HTML grâce à un processeur XSLT.
                Le fait de passer par un daemon pour assurer le traitement de la requête facilite la résolution du problème de persistence des données auquel on est généralement confronté en faisant du web.
                Comme ce daemon est codé, par mes soins, en C++, et de par les tâches qu'il accomplit, je crois pouvoir affirmer que je fais bien du web en C++ :-) ! Et cela sans transformer mes soirées en longues séances de débogage, les outils que j'utilise (en particuliers certaines bibliothèques) me mettant à l'abri de ce genre de mésaventure ...

                Cyberdépendance, cyberharcèlement, pédocriminalité… : Zelbinium, pour que les smartphones soient la solution, pas le problème !

  • # cgi?

    Posté par  . Évalué à 2.

    Tu peux faire du c++ en cgi:

    test.cpp
    -----------

    #include
    using namespace std;


    int main() {
    cout << "Content-type: text/html\n" << endl;
    cout << "Hello World" << endl;
    return 0;
    }


    g++ test.cpp -o test
    sudo cp test /var/www/localhost/cgi-bin/

    et normalement si tu vas sur localhost/cgi-bin/test tu vas voir apparaitre l'output.

    Personnellement je ne suis pas sur que ce soit la meilleure utilisation du C++...
    • [^] # Re: cgi?

      Posté par  . Évalué à 2.

      M'est avis que ca devrait aider si tu veux pas réinventer la roue, les rayons, le pneu et la route ....

      http://libcgi.sourceforge.net/

      Enfin là tu n'as que la base... apres il te faut surement une bonne api pour acceder à des données, parce qu'un site dynamique sans rien a y mettre dedans ca risque d'etre un peu fade :-)

      bon courage.
      • [^] # Re: cgi?

        Posté par  . Évalué à 5.

        apt-get install libcgicc-doc libcgicc1 libcgicc1-dev

        apt-cache show libcgicc1

        Description: A C++ class library for writing CGI applications
        An ANSI C++ compliant class library that greatly simplifies the creation of
        CGI applications for the World Wide Web. libcgicc performs the following
        functions:
        .
        * Parses both GET and POST form data transparently.
        * Provides string, integer, floating-point and single- and multiple-choice
        retrieval methods for form data.
        * Provides methods for saving and restoring CGI environments to aid in
        application debugging.
        * Provides full on-the-fly HTML generation capabilities, with support for
        cookies.
        * Supports HTTP file upload.
        * Compatible with FastCGI.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.