Newsgroup: it.comp.www.php
Titolo: Eseguire un file perl con php

Devo monitorare gli accessi ad una pagina php utilizzando uno script perl
Vorrei utilizzare questo script perl perche gia lo utilizzo per tutte le pagine html del sito e poi mi piace e funziona bene
Il problema è che devo inserire questo nella pagina php
<!--#exec cgi="scriptperl.cgi" -->
che ovviamente essendo un SSI all'interno di una pagina php non funziona
Ho fatto questi tentativi
exec("scriptperl.cgi");
shell_exec("scriptperl.cgi");
include("scriptperl.cgi");
tutto inutile, PHP non restituisce errori ma lo script perl non registra l'accesso alla pagina
Qualcuno é in grado di darmi una mano?
Grazie
-- 
Gibe
Modena - Italy
Utente Macintosh dal 1991
gi...@freemail.it

 tutto inutile, PHP non restituisce errori ma lo script perl non registra l'accesso alla pagina
dovresti specificare il path completo (gli environments fregano sempre) 
e anche l'eseguibile (il shell_exec non so se decodifica il #! iniziale)
system("/usr/local/bin/perl /path_to/scriptperl.cgi >> execution.log");
avevo postto un esempio molto rozzo sulle faq relativamente alle 
funzioni socket:
http://php.dopoil.com/faq.php?nosocket
ciao
-- 
punkarruso



Essendo che con gli SSI non devo specificare nessun comando inteso come scriptperl.cgi?command ho provato con
system("/usr/bin/perl /www/htdocs/path/scriptper.cgi");
sulla pagina compare:
/www/htdocs/path/scriptper.cgi - working okay - no logging command received
quindi lo script ritengo sia localizzato ed eseguito correttamente, ho corretto come sotto seguendo le indicazioni dell'autore dello script (il comando whatever.gif dovrebbe forzare lo script a registrare il passaggio nella pagina)
system("/usr/bin/perl /www/htdocs/path/scriptper.cgi?whatever.gif");
non ricevo nessun commento ma in nessuno dei 2 modi l'accesso alla pagina viene registrato
grazie


 non ricevo nessun commento ma in nessuno dei 2 modi l'accesso alla pagina viene registrato
ok, no, scusa.
se il tuo script č gią bello confezionato per funzionare via web, puoi 
usare le librerie curl o il comando wget (devi perņ avere anche il 
mod_perl).
non li ho mai usati insieme a PHP. inizia a vedere il manuale per le 
curl, poi sgooglea un po' che dovresti trovare qualcosa.
ciao
-- 
punkarruso

 mod_perl).
Il mod_perl serve solo per eseguire il perl embeddato nella pagina stile
php, per quello di cui ha bisogno lui non serve.
Usare system o altri comandi di pura esecuzione non va bene, in quanto il
programma richiede di essere chiamato come cgi, ovvero con tutta la serie di
variabili ambientali di Apache settate.
Ci sono indubbiamente vari modi, ma quello piu' corretto e naturale e' usare
virtual(), che esegue una sub chiamata ad Apache facendogli anche eseguire
le cgi (in perl o qualsiasi altro linguaggio, ma non file php) se richiesto.
La chiamata e' nella forma
virtual("url");
Dove url e' una url (quindi non un path, come
/www/htdocs/path/scriptper.cgi) e puo' essere sia assoluto (
"/cgi-bin/nome.cgi?parametri") sia relativo ( "../cgi/nome.cgi?x") ma non su
un altro sito ("
http://altrosito/..
.").
Attenzione che virtual() ha dei bug che da' problemi in pagine che usano le
sessioni con il trans-sid attivato.
S* 

 S* 
Non ho mai usato virtual() pero da quanto ho capito sul manuale non esegue i .cgi, ci provo e spero di contraddirmi
grazie comunque


 .cgi, ci provo e spero di contraddirmi
Il manuale dice "It is useful for including CGI scripts or .shtml files, or
anything else that you would parse through Apache."
Poi dice anche "Note that for a CGI script, the script must generate valid
CGI headers." il che significa che il cgi deve essere scritto correttamente,
ma questo e' un problema del cgi.
Comunque io l'ho usato spesso, anche con cgi, quindi funziona, te lo
garantisco.
S*



Infatti ho provato e funziona che e una meraviglia
Grazie di tutto
(P.S. grazie anche di Delos)
