Foros del Web » Programando para Internet » PHP »

Problemas con el exec()

Estas en el tema de Problemas con el exec() en el foro de PHP en Foros del Web. Hola, estoy desarrollando una aplicacion interna en php y normalmente corre bajo mozilla firefox, pero para una funcionalidad necesito que se inicie el iexplorer(el uso ...
  #1 (permalink)  
Antiguo 11/11/2008, 03:45
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 5 meses
Puntos: 0
Problemas con el exec()

Hola, estoy desarrollando una aplicacion interna en php y normalmente corre bajo mozilla firefox, pero para una funcionalidad necesito que se inicie el iexplorer(el uso de un activex).
Buscando en internet documentacion sobre el caso, he encontrado una manera de activar el iexplorer via linea de comandos, la orden es esta:
rundll32.exe url.dll, FileProtocolHandler www.marca.es
(En el ejemplo la pagina del marca es solo un ejemplo, la que quiero abrir es otra).

Si pongo esa cadena en la linea de comandos del cmd se me abre sin ningun problema, pero si la meto dentro de un exec, no me funciona, ¿alguien sabe porque no es así?
La linea que uso en el php es esta:
exec('rundll32.exe url.dll,FileProtocolHandler www.marca.es');
Gracias de antemano.
  #2 (permalink)  
Antiguo 11/11/2008, 03:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con el exec()

tal ves necesites usar system, o ya consultaste la documentación de PHP al respecto??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/11/2008, 04:04
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Problemas con el exec()

Cita:
Iniciado por karatros Ver Mensaje
necesito que se inicie el iexplorer(el uso de un activex).
Buscando en internet documentacion sobre el caso, he encontrado una manera de activar el iexplorer via linea de comandos, la orden es esta:
rundll32.exe url.dll, FileProtocolHandler www.marca.es


Offtopic: la llamada que detallas no abrirá MS IExplorer siempre. Si sólo la vas a usar en tu equipo, entonces nada. Pero si la aplicación va a ser ejecutada en otros equipos... debes tener en cuetna que esa llamada abre el navegador predeterminado en el sistema. En mi caso, por ejemplo, seguirá abriendo Firefox. Es como usar "explorer.exe http://www.marca.es". Abriría igualmente Firefox en mi caso.
  #4 (permalink)  
Antiguo 11/11/2008, 06:38
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problemas con el exec()

Cita:
Iniciado por Deschamps Ver Mensaje
Offtopic: la llamada que detallas no abrirá MS IExplorer siempre. Si sólo la vas a usar en tu equipo, entonces nada. Pero si la aplicación va a ser ejecutada en otros equipos... debes tener en cuetna que esa llamada abre el navegador predeterminado en el sistema. En mi caso, por ejemplo, seguirá abriendo Firefox. Es como usar "explorer.exe http://www.marca.es". Abriría igualmente Firefox en mi caso.
No lo sabia, gracias por el apunte.

Con respecto a mi problema visto que la via que he expuesto aqui no era fructifera decidí (tras leer mucho por internet buscando una solucion) crearme un fichero .bat y iniciar el proceso del iexplorer desde ahi.

Este es mi código.

//_____________________Creacion del .BAT______________________//

$f=fopen("imprimir.bat",'w+');
fputs($f,"@echo off\r\n");
fputs($f,"C:\Archiv~1\Intern~1\iexplore.exe www.marca.es\r\n");
fputs($f,"exit");
fclose($f);

//_____________________ejecucion del .BAT_____________________//

exec("c:\\appserv\\www\\imprimir.bat");

Decir que si pongo la linea que esta en el exec en un system me da el mismo resultado. Tambien dejar claro que si pongo la linea del exec() en el cmd me funciona perfectamente.

Tanto el .bat, como el archivo php están en la misma carpeta; el resultado es que al ejecutar el php no ocurre nada. Mi intencion es que se abriera el explorer con la página que tengo....¿alguna idea?

Yo trabajo en un sistemas XP con SP2 , con el appserv montado (apache 2.5.9), con el SAFE_MODE = OFF.

Última edición por karatros; 11/11/2008 a las 06:52 Razón: Nuevas pruebas realizadas
  #5 (permalink)  
Antiguo 11/11/2008, 06:42
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Respuesta: Problemas con el exec()

En el fputs con el comando debes escapar los \ del path.
  #6 (permalink)  
Antiguo 12/11/2008, 02:12
 
Fecha de Ingreso: noviembre-2008
Mensajes: 7
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Problemas con el exec()

Cita:
Iniciado por DarkJ Ver Mensaje
En el fputs con el comando debes escapar los \ del path.
¿como?, no entendi eso. Explicate por favor
  #7 (permalink)  
Antiguo 12/11/2008, 11:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con el exec()

si usas Windows... la barra invertida es el separador, pero cambien es el caracter de escape...

osea...

\n\r\t son caracteres especiales que usan la barra invertida

este carácter \ se usa ademas para escapar secuencias de caracteres, por eso esta reservado...

en una ruta Windows esta mal así dejarlas.. pues se "escapan"

c:\foo\bar

es mejor así

c:\\foo\\bar

no mas, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 18:52.