2016-11-28 4 views
1

Je me souviens avoir lu quelque part qu'il est possible de passer des arguments à un script cgi Perl en tant que tel: www.example.org/cgiscript/arg1/arg2/arg3perl analyse des paramètres de cgi

Je ne me souviens pas où je l'ai lu et la recherche ne m'a pas aidé, donc peut quelqu'un me dit si cela fonctionne réellement et si oui, comment? Est-ce une chose mod_perl?

Répondre

4

Oui. Si un script CGI est appelé à partir d'une URL de la forme:

http://example.com/path/to/script.cgi/foo/bar 

alors le chemin /foo/bar sera disponible dans la variable d'environnement PATH_INFO. Si vous utilisez CGI.pm, cela est également disponible dans $q->path_info. Si vous utilisez mod_perl, Apache2::RequestRec a la même méthode.

+0

Incroyable, merci! Y a-t-il une raison pour laquelle ce n'est pas "standard"? De gros inconvénients de cette approche? – user7183174

+0

HTML '

' Les éléments passeront des arguments dans une chaîne de requête, c'est donc de facto le moyen "standard" de passer des arguments à un script. Vous devez également utiliser des chemins absolus lors du chargement de sous-ressources à partir d'un script configuré pour l'utiliser, car tous les chemins relatifs seront relatifs à la dernière partie de la chaîne de requête. – duskwuff

+0

Pouvez-vous développer la dernière phrase? Est-ce que le script "pense" qu'il fonctionne dans /script.cgi/foo/bar? Je veux utiliser cette méthode pour déterminer le contenu à afficher car il semble plus clair dans l'URL que? Lang = foo; page = bar – user7183174