Foros del Web » Programando para Internet » PHP »

problemas ejecutando un comando DOS

Estas en el tema de problemas ejecutando un comando DOS en el foro de PHP en Foros del Web. Hola, se me presento un problema al tratar de ejecutar un comando desde el MS-DOS utilizando la funcion "exec()". Lo raro de esto es que ...
  #1 (permalink)  
Antiguo 02/10/2007, 13:57
cr3
 
Fecha de Ingreso: octubre-2007
Mensajes: 4
Antigüedad: 16 años, 7 meses
Puntos: 0
problemas ejecutando un comando DOS

Hola,

se me presento un problema al tratar de ejecutar un comando desde el MS-DOS utilizando la funcion "exec()".

Lo raro de esto es que si ejecuto el programa desde la "shell" del DOS, el programa se ejecuta sin ningun problema, es decir:

C:\wamp\www\>C:\wamp\php\php miPrograma.php (Asi Si funciona).

Pero cuando lo trato de hacer correr con un browser (como el explorer), me despliega un error, como si la sintaxis del comando que puse en exec() estuviese mal.

Espero haber sido lo mas claro posible y si alguien tuvo este problema en el pasado y lo supo corregir, me seria de gran ayuda saber como lo soluciono.

Gracias

PD. El comando que ejecuto desde el DOS solo despliega su salida en la misma ventana de la "shell", algo parecido al "ping www.google.com".
PD2. El servidor que estoy utilizando es el Apache 2. (en realidad le instale el WAMP).
  #2 (permalink)  
Antiguo 02/10/2007, 14:56
Avatar de helder  
Fecha de Ingreso: agosto-2007
Ubicación: Colombia
Mensajes: 50
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: problemas ejecutando un comando DOS

yo personalmente no e tenido problemas con ejecutar comandos de dos utilizando la funcion exec() ,
instale la ultima vesion de Wamp que tiene Apache/2.0.59 y php 5.2 . y ejecute el siguiente script:


<?php
//ejecuta el comando que se le escriba, exec (comando,variable de salida);
$respuesta= exec("ping www.google.com.co",$salida);
echo "Respuesta > $respuesta <br>";
//la variable salida es un array
$tam=count($salida);
echo ".: Salida :. ";
for($k=0;$k<=$tam;$k++){
echo "[$k] > $salida[$k] <br>";
}
?>



y la saldia es la siguiente:


Respuesta > M¡nimo = 571ms, M ximo = 1169ms, Media = 785ms
.: Salida :. [0] >
[1] > Haciendo ping a www.l.google.com [66.249.89.104] con 32 bytes de datos:
[2] >
[3] > Respuesta desde 66.249.89.104: bytes=32 tiempo=573ms TTL=237
[4] > Respuesta desde 66.249.89.104: bytes=32 tiempo=571ms TTL=237
[5] > Respuesta desde 66.249.89.104: bytes=32 tiempo=827ms TTL=237
[6] > Respuesta desde 66.249.89.104: bytes=32 tiempo=1169ms TTL=237
[7] >
[8] > Estad¡sticas de ping para 66.249.89.104:
[9] > Paquetes: enviados = 4, recibidos = 4, perdidos = 0
[10] > (0% perdidos),
[11] > Tiempos aproximados de ida y vuelta en milisegundos:
[12] > M¡nimo = 571ms, M ximo = 1169ms, Media = 785ms
[13] >

de pronto para poderte colaborar mas seria que enviaras el error que te esta generando, espero te sirva de algo el ejemplo.
  #3 (permalink)  
Antiguo 02/10/2007, 15:48
cr3
 
Fecha de Ingreso: octubre-2007
Mensajes: 4
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: problemas ejecutando un comando DOS

Helder:

Gracias por tu pronta respuesta }, pero te corre por ejemplo esto desde tu browser:

<?php
exec('notepad');
?>

o

<?php
exec('c:\windows\system32\notepad.exe');
?>

No es que mi programa quiera abrir el notepad, solo lo pongo como un ejemplo, pues lo que realmente quiero hacer es parsear la salida de una central de conmutacion de telefonia fija, el cual cuando corre despliega una serie de datos en la ventana de la "shell".

Si es que a ti te corre (lo del notepad) en tu version del wamp entonces mi problema esta resuelto y realmente te agradeceria si me mandas el archivo de configuracion del apache y del php a mi correo: [email protected].

Gracias
  #4 (permalink)  
Antiguo 04/10/2007, 14:49
Avatar de helder  
Fecha de Ingreso: agosto-2007
Ubicación: Colombia
Mensajes: 50
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: problemas ejecutando un comando DOS

Qué pena por no respondes antes, pero bueno ya hice la prueba y no funciona.. yo concluyo que solo permite ejecutar comandos nativos del shell (ping, tracert y otros).

Las pruebas las realice con un archivo .bat que ejecuta un ping .. y no imprime el resultado. Entonces probé creando un archivo de texto con la salida y efectivamente si lo crea y en el guarda lo que se desplegaria en el shell, después solo es leerlo con php después de creado. Esta puede ser la solución.

los archivos son los siguientes.
Script y .bat para crear el archivo.

________creararchivo.php _______________________
<?php

exec('creararchivo.bat',$salida);
$tam=count($salida);
for($k=0;$k<=tam;$k++)
echo $salida[$k];
echo "listo, desde aqui puedes leer el archivo salida.txt creado";
?>

__________________________________________________ __


_____creararchivo.bat _________________________________
ping www.google.com.co > salida.txt
__________________________________________________ __

si ejecutas el .ban sin "> salida.txt" deberia de imprimir en la pagina el resultado del ping pero no lo hace por lo dicho mas arriba.
los archivos "creararchivo.bat y creararchivo.php" deben estar en la misma carpeta

de igual manera ya te envio los archivos al correo, los de configuracion no por que los que tengo estan como se crean por defecto.

me comentas si te sirve la solucion .. espero que si.

Última edición por helder; 04/10/2007 a las 14:55
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:49.