Conosco 4 modi per eseguire un .exe in locale, tutti funzionanti perfettamente. Ora però che mi trovo ad utilizzarli sulla piattaforma PHP 5.2.5, Apache 2.2.3 mi rendo conto con mia grande meraviglia che non funzionano. Il comportamento osservato è alquanto bizzarro in quanto il browser, in questo contesto, sembra non considerare affatto le istruzioni relative alla chiamata del pgm locale.

Ciò che è ancor più strano è che se dalla pagina accedo al sorgente, lo salvo e poi lo eseguo senza PHP di mezzo, allora tutto funziona a perfezione. Ribadisco che in tal modo la stessa pagina non funzionante chiamata tramite PHP funziona perfettamente se la si esegue senza PHP.

Ho preparato una piccola paginetta di prova per farvi rendere conto di persona cosa accade.
Potrete notare facilmente come essa funzioni perfettamente se chiamat senza l'intervento di PHP.

Qualcuno può aiutarmi a trovare una soluzione al problema?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Body</title>
</head>

<body>

Prova1
Prova2
Prova3


<script language="javascript" type="text/javascript">

function CallPgm1(cmd){
//alert(cmd);
var shell = new ActiveXObject("WScript.shell");
//alert("var shell eseguita");
shell.run(cmd,1,true);
//alert("shellRun eseguita");
}//End-function

</script>

</body>
</html>
Eliminando i commenti sulle istruzione di "alert", ci si accorge che quando la pagina viene chiamata tramite PHP, viene eseguita la "alert(cmd)" ma non quella successiva.

Ultima bizzarra osservazione:
Quando la pagina viene eseguita tramite PHP e si clicca sul link senza l'effetto desiderato, si osserva che nella barra degli indirizzi del browser viene aggiunto come suffisso il caratter "#" (cancelletto).