Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-10-2005
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 21
apicito Va por buen camino
LLamada a un cgi desde php

LLamada a un cgi desde php
Estoy intentando hacer una llamada a un cgi hecho en delphi desde un scrip php y no consigo que me funcione.
Utilizo IIS sobre un servidor w2003 y php5.
La llamada la hago así:
Código PHP:
$enlace=include('/p3.exe/sesasunto?part='.$part.'&sesion='.$p5.'&paxina='.$p7); 
Me da el siguiente error:
Código:
Código PHP:
failed to open streamHTTP request failedHTTP/1.1 404 Objeto no encontrado in d:\aWeb\www\novas.php on line 79 
Alguien puede ayudarme.
Responder Con Cita
  #2  
Antiguo 25-10-2005
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

Si lo que quieres es ejecutar un cgi debes utilizar funciones del tipo passthru o exec.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #3  
Antiguo 26-10-2005
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 21
apicito Va por buen camino
El método que estoy utilizando funciona bien ya que el cgi delphi genera un stream que se muestra corectamente en la página web. Mi problema es que para que funcione tengo que ponerle antes del nombre del ejecutable el
Código:
http://misitio.com/
de forma que cuando hago pruebas en local va bien pero al subirlo al servidor remoto se relentiza mucho la carga, upongo que la razón es que tiene que cargar el cgi a través de http. Lo que trato de hacer es configurar, no sé si en el IIS o en el php, el sitio de forma que permita hacer un include directo del cgi, es decir, llamarlo así:
Código PHP:
$enlace=include('p3.exe/sesasunto?part='.$part.'&sesion='.$p5.'&paxina='.$p7); 
en vez de así:
Código PHP:
$enlace=include('http://misitio.com/p3.exe/sesasunto?part='.$part.'&sesion='.$p5.'&paxina='.$p7); 
Por cierto, he probado a utilizar passthru y exec y no me muestra nada en la página.
Código PHP:
$enlace='p3.exe?sesasunto?part='.$part.'&sesion='.$p5.'&paxina='.$p7;
passthru($enlace,$salida); 

Última edición por apicito fecha: 26-10-2005 a las 08:25:04.
Responder Con Cita
  #4  
Antiguo 26-10-2005
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

Te cuento, "include" lo que hace es abrir un archivo y meter su contenido dentro de otro, tu problema reside en que el CGI no se interpreta desde local sino que intenta abrirlo a piñon, al añadir "http..." estas haciendo que el servidor interprete el CGI y te devuelva, supongo, codigo HTML.

Con passthru realiza la ejecución del CGI y muestra el resultado por la salida estandar, el problema que veo es como estas pasando los parametros, que debería ser del tipo:
Código PHP:
$enlace='p3.exe/sesasunto '.$part.' '.$p5.' '.$p7;
passthru($enlace,$salida); 
Supongo que "sesasunto" es el CGI.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
  #5  
Antiguo 26-10-2005
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 21
apicito Va por buen camino
No, el cgi es p3.exe, que es web server application de delphi. Dentro de este cgi existe un webmodule y dentro de éste varias actions, una de ellas es "sesasunto". Como te he dicho la forma en que hago la llamada funciona bien, incluso ahora que cambie el tipo del web server application de cgi a ISAPI (dll). Mi problema es que no se que tengo que cambiar en la configuración (del IIS o del Php) para que me permita hacer la llamada directa al exe o dll, ya que si no le pongo el http://misitio.com/ no lo encuentra y al hacer la llamada a través de http: se hace demasiado lento ya que tiene que bajarse a traves de web los 2 megas que pesa el p3.exe o el p3.dll.
Responder Con Cita
  #6  
Antiguo 26-10-2005
[kayetano] kayetano is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Elche
Posts: 644
Poder: 21
kayetano Va por buen camino
Hola

Esto es lo que he econtrado

Cita:
Incluir en el conf de httpd la siguiente linea:

AddHandler isapi-isa .dll

y tambien en:

ScriptAlias /cgi-bin/ "C:/Archivos de programa/Apache Group/Apache2/cgi-bin/"

<Directory "C:/Archivos de programa/Apache Group/Apache2/cgi-bin">
AllowOverride None
Options Indexes Includes ExecCGI
Order allow,deny
Allow from all
</Directory>


por defecto la opcion de Options es None y hay que cambiarla por Indexes Includes ExecCGI
No lo he probado porque nunca se me ha dado el caso pero Igual te sirve de algo.
__________________
Salu2
KAYETANO

Cómo hacer preguntas de manera inteligente
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:04:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi