Accueil > Forum > > > > CGI et HTML/PHP
CGI et HTML/PHP
mardi 18 mars 2008 à 18:13:59 |
CGI et HTML/PHP

orrichan
|
bonjour, Excusez moi pour la rubrique, je ne savais vraiment pas ou poster cette question. Mon probleme est le suivant: Je code en PHP et HTML en amateur et j'ai propose' a une amie de lui refaire son site web sans frames... ne me demander pas pourquoi, hehe  Tout va pour le mieux sauf pour son caddie CGI. J'ai une TRES vague ide'e du concept CGI et je patoge. Je pensais qu'en remplacant le fichier /cgi-bin dans le repertoire web du site et en y replacant un lien (les conditions sont les memes, j'ai juste enleve' les frames) cela marcherait, mais en lieux et place d'un caddie (quand je clique ajjouter au panier) le serveur me renvoie le fichier "dbshop.cgi" (ici) a downloader. (je precise que l'action du <FORM> qui envoie les donnees pointe sur ce meme fichier). Etant donne'es que les <FORM> n'ont pas change's, que j'ai recopie' tel quel le repertoire CGI-BIN qu'il y avait sur le Cd contenant l'original de son site, ET que le caddie de son site fonctionnent dans la version frame, est-il possible de trouver ce qui ne fonctionne pas? Comme je n'ai aucune ide'e precise de la maniere dont fonctionne le CGI (bien que j'ai maintenant lu plusieurs tutoriaux...  ), je ne sais pas si l'on peut comme en Php trouver facilement d'ou peut venir l'erreur. Merci pour votre aide. S'il vous manque des elements pour me repondre, je suis a votre disposition.  RU.I
|
|
mardi 18 mars 2008 à 20:32:10 |
Re : CGI et HTML/PHP

neigedhiver
|
Salut,
Je sais pas si j'ai la réponse, mais dans ton message, y'a des trucs qui m'interpellent...
CGI : Common Gateway Interface. Ce n'est pas un langage, ni une technologie... C'est une interface entre deux applicatifs. PHP peut fonctionne comme CGI, ou comme module d'Apache. En tant que module Apache, le moteur PHP est intégré à Apache, comme un plugin quoi. En tant que CGI, PHP est un programme exécutable externe auquel Apache transmet les requêtes afin qu'il les traite. Une fois fait, il renvoit à Apache le résultat de l'exécution du script. C'est comme ça que fonctionne un CGI.
Un script CGI peut être écrit en Perl, en Python, en bash, en TCL, et j'en passe, le langage étant déterminé dans l'en-tête du fichier, un peu comme un script shell Linux (si je ne dis pas de bêtise).
Bref.
Il semble que, manifestement, le serveur de ton amie ait choisi de ne pas exécuter les scripts CGI et qu'au lieux de cela, il les propose au téléchargement. Inutile de préciser que c'est une faille de sécurité, hein, surtout si le fichier contient des mots de passe...
Bon alors puisque tu es à notre disposition si on manque d'éléments, je vais pas me gêner... Tu dis que tu as le site sur un CD... Et tu le développes sur quoi ? Je veux dire dans quel environnement ? Quel serveur HTTP utilises-tu ?
Parce qu'en fait, tous les répertoires cgi-bin/ ne permettent pas d'exécuter des scripts CGI. Pire encore : quand on peut exécuter un script cgi dans un répertoire cgi-bin, on peut généralement le faire également dans d'autres répertoires. En fait, tout dépend de la configuration du serveur HTTP (Apache, IIS, Xitami, Netscape, etc). Donc euh voilà pour le moment...
Neige
|
|
mercredi 19 mars 2008 à 04:04:27 |
Re : CGI et HTML/PHP

orrichan
|
Merci Neige pour ta reponse,
Je vais tente' de debroussailler un peu la situation aux vues de tes explications.
En gros elle a un site en HTML utilisant des frames et vraiment tres mal code's. Admettons que son site soit sur domain.com, son repertoire CGI est domain.com/cgi-bin/. C'est une supposition car je n'ai que le Cd du depart, je ne suis pas encore entre' sur son site actuel. Au final, je compte transferer son domaine sur mon serveur dedie' avec le meme domaine.
Mon serveur est en Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8d PHP/5.2.3. Son serveur a elle, c'est un serveur partage' auquel je n'ai aucun acces pour le moment.
Si je comprends bien ce que tu dis, Apache n'executera les fichiers CGI sur le serveur que si ces fichiers sont dans un repertoire predefini ? Ce qui pousse donc Apache a me faire telecharger ce fichier "dbshop.cgi" ... Comment puis-je donc verifier quel repertoire sera capable d'executer un fichier CGI ?
Merci pour ton aide, elle m'est precieuse.
RU.I
|
|
mercredi 19 mars 2008 à 05:12:21 |
Re : CGI et HTML/PHP

neigedhiver
|
Re, "Si je comprends bien ce que tu dis, Apache n'executera les fichiers CGI sur le serveur que si ces fichiers sont dans un repertoire predefini ? Ce qui pousse donc Apache a me faire telecharger ce fichier "dbshop.cgi" ... Comment puis-je donc verifier quel repertoire sera capable d'executer un fichier CGI ? "
Pas tout à fait. En fait, ça dépend vraiment de comment toi tu configures ton Apache. Tu peux tout à fait le configurer pour exécuter les scripts CGI dans un répertoire bien spécifique. Mais tu peux aussi le configurer pour qu'il exécute tous les .cgi où qu'ils se trouvent, et pas forcément uniquement dans /cgi-bin/ Je ne me suis jamais penché vraiment sur la question, je n'ai que rarement eu l'occasion de rencontrer ce problème (une fois ou deux quand je faisais de la hotline serveur dédié, et encore, les problèmes auraient pu figurer dans une faq). Je ne peux que t'encourager à lire la doc d'Apache 2.2 à ce sujet : http://httpd.apache.org/docs/2.2/howto/cgi.html (en anglais) Mais si tu es sur Windows, tu vas t'amuser pour la configuration. Un script CGI (comme je viens d'en avoir la confirmation dans la doc d'Apache) défini le langage dans le script lui-même, de la même manière qu'un script exécutable en shell, c'est à dire avec une première ligne comme ça : #!/usr/bin/perl Il s'agit d'une ligne de commentaire prise en compte par le shell (ben oui, sous linux...) qui indique l'emplacement du programme tiers sur l'entrée standard duquel Apache renvoit la requête qu'il reçoit, dont il récupèrera le résultat sur la sortie standard. Si le site de ton amie a été conçu pour être exploité sur une plateforme Linux, il n'est peut-être pas aisé de le porter sur une plateforme Windows. Mes connaissances à ce niveau là ne vont pas plus loin que de simples spéculations... Je ne dis pas que c'est impossible, mais si c'est possible, ce ne sera sûrement pas évident à faire. Je ne vais pas vraiment pouvoir t'aider pour ça. Il existe très certainement des forums vraiment spécialisés qui sauront mieux te guider que moi. Pour le reste, n'hésite pas, je pense avoir quelques notions sur le fonctionnement d'un serveur... Sur ce, deuxième tentative de dodo... Neige
|
|
mercredi 19 mars 2008 à 09:12:38 |
Re : CGI et HTML/PHP

orrichan
|
Merci encore Neige pour tes explications. Moi je suis au Japon, c'est la journe'e ici, je n'ai pas vraiment pense' qu'il faisait nuit en France. Desole' 
Apres avoir ecris mon commentaire, j'ai cherche' encore et je suis tombe' sur la page que tu viens de me soumettre. C'est une bonne documentation. J'ai l'habitude de rajouter des nouveaux domaines, subdomains etc sur mon serveur (pas vraiment que je comprenne ce que je fais mais une fois que tu le fais 2-3 fois c'est plutot simple), mais je suis jamais sorti de ces limites, a part peut etre pour installer un certificat SSL. Bref je suis pas vraiment sur de moi et je voudrais limiter la casse.
J'utilise comme tu peux t'en douter VirtualHost. je voudrais limiter la possibilite' d'utiliser le CGI sur un seul domaine, donc je suppose que plutot inserer les lignes qu'on suggere sur la doc Apache dans httpd.conf, c'est mieux de les mettre dans le fichier config des virtualHost a savoir httpd-vhosts.conf ?
j'ai une configuration qui ressemble a ca (dans ce meme fichier):
<VirtualHost *:80> ServerName domain.com ServerAlias domain.com *.domain.com ServerAdmin webmaster@domain.com DocumentRoot "d:/www/groupe/domain" <Directory "d:/www/groupe/domain"> Options Indexes FollowSymLinks AllowOverride All Allow from all </Directory> ErrorLog logs/domain-com-error_log CustomLog logs/domain-com-access_log common </VirtualHost>
(Mon apache est sur c:/) Mon repertoire cgi-bin se trouve dans d:/www/groupe/domain/cgi-bin/, est ce que c'est bien dans ces brackets <Directory> ci-dessus que je dois mettre mes lignes Options +ExecCGIetAddHandler cgi-script .cgi? Ou alors pour pouvoir restreindre comme je le disais l'execution des CGI au repertoire /cgi-bin/ faudrait t'il que je rajoute un nouveau bracket <directory> comme suit:
<Directory "d:/www/groupe/domain"> ... </Directory> <Directory "d:/www/groupe/domain/cgi-bin"> Options +ExecCGI AddHandler cgi-script .cgi </Directory>
Est ce que tout ca suffirait a "Configuring Apache to permit CGI" comme le dit la doc?
J'espere ne pas te prendre trop de temps, je suis vraiment content que tu puisses m'aider ainsi.
RU.I
|
|
mercredi 19 mars 2008 à 10:39:19 |
Re : CGI et HTML/PHP

neigedhiver
|
Salut, T'inquiète pas pour l'heure : je ne me sens nullement contraint de te répondre, je le fais parce que bon, c'est pour ça que je traine ici, même très tard le soir (notamment quand je n'arrive pas à dormir). Donc tu ne me prends pas de temps, j'ai à peu près que ça à faire ces temps-ci. C'est donc bien dans la directive <Directory> qu'il faut placer Options +ExecCGI. Cela permet de limiter l'exécution des CGI à ce répertoire. Tu peux aussi la placer dans la directive <VirtualHost> (au même niveau que <Directory> donc) pour permettre l'exécution des CGI sur tout le VirtualHost. Quant à AddHandler, idem : il peut se placer à peu près n'importe où, notamment dans la directive <Directory> (c'est ce que dis la doc). Par contre, je ne sais pas si sous Windows, Apache saura quoi faire avec cgi-script. Il se peut qu'il faille rajouter quelque part une directive Action, un peu comme pour PHP : # Pour PHP 5 Action application/x-httpd-php "/php/php-cgi.exe" Cette directive permet à Apache de savoir quoi faire quand il doit traiter un script PHP : il l'envoit à php-cgi.exe Là, j'ai du mal à en dire plus... Neige
|
|
mercredi 19 mars 2008 à 12:40:49 |
Re : CGI et HTML/PHP

orrichan
|
Merci pour ta reponse. Ca commence a s'eclaircir.  En gros, J'ai ouvert quelques fichiers et je vois qu'au debut du fichier dbshp.cgi j'ai #!/usr/local/bin/perl . Je suppose que ca veut dire que le script est ecrit en Perl, hors, j'ai pas Perl sur mon serveur. Je pense donc essayer d'installer Perl sur le serveur mais j'ai aucune ide'e de la suite des evenements (j'espere pas trop que tout d'un coup ca marche apres l'installation). Pour Options +ExecCGI et AddHandler cgi-script .cgi je l'ai fait j'ai obtenu un "500 Internal Server Error", et sur la doc d'apache ils disent de faire des trucs "below" et below il est rien ecrit, donc ?  RU.I
|
|
mercredi 19 mars 2008 à 13:06:22 |
Re : CGI et HTML/PHP

neigedhiver
|
Plop, J'ai trouvé ça qui a l'air pas mal : http://www.thesitewizard.com/archive/addcgitoapache.shtml Apparemment, pas besoin de Action, mais il faut modifier... tous les entêtes des scripts perl (là, un éditeur de texte qui les fait tous d'un coup, c'est pas mal). Bon mais je vais trop vite... Il faut commencer par installer Perl sur le serveur. Evidemment. Dans sa version pour Windows. A priori, c'est trouvable ici : http://win32.perl.org Ensuite, il faut donc modifier la première ligne des scripts Perl et remplacer #!/usr/local/bin/perl Par un truc comme : #!c:/Program Files/perl/bin/perl.exe Evidemment, ça dépend du chemin où est installé Perl, hein... Mais la première URL que je te donne doit bien expliquer avec plus de détails. J'ai fait une recherche sur google avec "apache cgi perl windows", c'était le premier résultat... Y'en a pitetre d'autres... Neige
|
|
mercredi 19 mars 2008 à 13:16:30 |
Re : CGI et HTML/PHP

orrichan
|
Entre temps on doit etre sur la meme longueur d'onde ... j'ai installe' ActivePerl sur mon serveur. Il est sur c:/perl/
Donc j'ai change' la premiere ligne du fichier cgi comme tu me l'as explique' (#!c:/perl/bin/perl.exe) et... ca marche pas. Lol
Donc je me penche sur mon httpd.conf, il semblerait qu'il faille le configurer pour Perl... je trouve beaucoup de Post sur les forums de gens uqi savent pas le configurer mais pas encore de solution (95% des posts dates de 2004... ouin)
RU.I
|
|
mercredi 19 mars 2008 à 13:25:31 |
Re : CGI et HTML/PHP

orrichan
|
Cool, enfin un peu d'espoir, je viens de reussir a afficher [ Lien ] . Attention les yeux!! J'ai du changer l'entete la aussi mais soit. L'entete de printenv.pl c'est #!c:/perl/bin/perl.exe . De la comment reussir a lancer le script depuis d:/www/groupe/domain/cgi-bin/cart/dbshop.cgi . D'apres mes faibles capacite's d'extrapolation en la matiere, je dirais que si en local depuis mon serveur le fichier printenv.pl dans c:/apache/cgi-bin/ fonctionnent et que dbshop.cgi fonctionne pas, c'est un probleme de configuration d'apache ?! RU.I
|
|
Cette discussion est classée dans : site, php, html, caddie, cgi
Répondre à ce message
Sujets en rapport avec ce message
Site html/php avec base Access [ par guylux ]
Salut collegueVoila je connais rien en php et je dois faire des modifications sur une application avec access2000 . Cela concerne des modifications de
Faire un site en php pour les nuls!! [ par M0rph3usfrommatrix ]
Je suis debutant dans la progra PHP et je comprends pas exactement!Comment on peu faire un appel de lien avec PHP alors qu'aucune formule n'existe?!Là
Récuperer le code html d'une page php d'un site ? [ par kEr0 ]
Bonjour, J'aimerais savoir si c'est possible de récupérer le code html d'un fichier sur site web. Par exemple, le fichier index.php utilise des tem
Integration d'un module php dans un site html [ par diablo30031990 ]
Bonjour a tous je voudrais savoir si c'etait possible d'integrer un module php dans un site html afin de modifier directement du texte sans faire de m
besoin d'aide creation site [ par webgagnant ]
Bonjour, j'ai construit mon site il y a quelques temps en html mais ayant besoin du php pour certaines fonctions (creation de session, compteur de cli
difference entre php et html [ par sebing ]
Bonjour,Je voudrai connaitre la difference entre le php et html (outre l'extention bien sur )Y en a t'il un plus rapide au chargement, moins gros en p
Pb de redirection d'un script php vers un site html/javascript, le tout en local [ par sagat06 ]
Bonjour,je suis actuellement en train de réaliser un projet me tenant à coeur.Jusqu'à maintenant, je ne l'avais réalisé qu'avec Html/javascript. Cepen
Les frames et PHP [ par TARCLOOD ]
Bonjour à toute l'équipe,Actuellement sur mon Site, entièrement en HTML, j'ai une section "Généalogie" qui fonctionne parfaitement.pour exemple voir :
htaccess et wordpress [ par yatoo ]
je vous contacte car j'ai wordpress et mon site à la racine . j'ai tout mis en un seul htaccess. cependant les htacess semblent incompatible ( mon s
Empêcher acces .php après avoir fait un RewriteRule [ par xaviernuma ]
Bonjour, Dans le fichier .htaccess de mon site j'ai : [code=autre] RewriteRule ^nos-jeux-favoris.html$ jeux.php?l=fr [L] RewriteRule ^our-favorite-g
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|