Foros del Web » Programando para Internet » ASP Clásico »

llamar a función php desde archivo asp

Estas en el tema de llamar a función php desde archivo asp en el foro de ASP Clásico en Foros del Web. hola, mi pregunta es la siguiente: tengo un site que mitad está en asp y otra en php... tengo q traducir todo el site a ...
  #1 (permalink)  
Antiguo 27/04/2005, 16:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 1
llamar a función php desde archivo asp

hola, mi pregunta es la siguiente:

tengo un site que mitad está en asp y otra en php... tengo q traducir todo el site a inglés y español... y decidí hacerlo en php para usar sesiones, ahora... para traducir las páginas en ASP he tratado de incluír el archivo php con la función que me retorna la palabra respecto al idioma que el usuario escojió..es parecido a esto:

function lang($word){
if ($_SESSION['lang'] = eng){
switch ($word){
case "1";
return "hello";
break;
case "2";
return "bye";
break;
}
if ($_SESSION['lang'] = esp){
switch ($word){
case "1";
return "hola";
break;
case "2";
return "adiós";
break;
}
}

bueno..el asunto es que la función devuelve un string, necesito realizar esta función desde ASP, pero como ya se, esto no se puede siendo que si trabajas en ASP el módulo es en ASP y no se puede realizar una función en PHP... me hablaron de server.xmlhttprequest y que con eso podría llamar a una función PHP mientras estoy en un ASP....

Bueno ...el rollo es q necesito saber si se puede o estoy perdiendo mi tiempo :), muchas gracias.
  #2 (permalink)  
Antiguo 27/04/2005, 18:34
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
podrías recuperar el valor de la función en un script php y redirigir a un asp con variables en la URL
Código PHP:
header(location:pagina.asp?lang=$_SESSION['lang']) 
(creo que es asi, de php no sé mucho)
y en el asp
Código:
session("lang")=request.querystring("lang")
  #3 (permalink)  
Antiguo 27/04/2005, 18:53
 
Fecha de Ingreso: marzo-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 1
Si... pero entonces eso solo me pasara la variable de el lenguage en q está la session... y tendría q hacer también una función diccionario en asp... lo único q quiero es poder hacer algo así

funcion.php
Código:
function lang($word){

   if ($_SESSION['lang'] == 'eng'){
      switch ($word){
         case "1";
            return "hello";
         break;
         case "2";
            return "bye";
         break;
   }
   if ($_SESSION['lang'] == 'esp'){
      switch ($word){
         case "1";
            return "hola";
         break;
         case "2";
            return "adiós";
         break;
   }

}
y en ASP llamaría la función así:

pagina.asp
Código:
<%@ Language=VBScript %>

<!-- #include file="includes/inc_loginRequired.asp" -->

<% lang('1') %>
y si mi sessión de idioma está en español...osea ($_SESSION['lang'] == 'esp') me retorna el caso 1 en español..osea 'Hola'... no sé si me entiendas...

Lo que tu me dijiste es para postear una/s variables y pasarlas como request, pero en realidad lo q necesito es hacer llamado a varias..porque el archivo contiene muchas palabras y no las puedo pasar tipo post, necesito es recuperar el return de una función php en el mísmo asp, u otro método que me sirva para traducir teniendo mi función traductora en php, bueno..gracias
  #4 (permalink)  
Antiguo 28/04/2005, 02:56
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
hasta donde yo sé, no se puede hacer. quizá alguien con más idea que yo te pueda ayudar. lo siento.
  #5 (permalink)  
Antiguo 28/04/2005, 05:50
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola, en principio lo que dice trasgukabi es al menos la unica manera en que he podido mesclar asp y php, y es haciendo una redireccion a un php desde un asp, lo cual digamos que va a hacer lentisimo tu script si es que vas a usarlo como un manejador de idioma. Lo mas viable es que utilizes el mismo lenguaje del resto del sitio y te evitaras dolores de cabeza. Tal ves usuando archivos tipo texto_eng.asp y texto_esp.asp e incluyendo

<!-- #include file="includes/texto_<%=lang%>.asp" -->

tendrias todo el sitio en el idioma seleccionado, no se si me explico.Bueno es solo una idea del momento.No estoy seguro de si lleva el igual antes de la variable en asp, asi es en php.Me matan las mesclas
Saludos
  #6 (permalink)  
Antiguo 28/04/2005, 08:52
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Código:
<!-- #include file="includes/texto_<%=lang%>.asp" -->
Eso no se puede hacer en ASP
__________________
...___...
  #7 (permalink)  
Antiguo 28/04/2005, 09:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Yo creo que como ya apuntaron no puedes mezclar peras con manzanas, necesitas ver la forma de que tu aplicación coexista pacíficamente, y esto nada más se puede hacer por medio de redirecciones pasando valores, no hay forma(hasta donde se) de poder mezclar estas dos tecnologías.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 28/04/2005, 10:11
 
Fecha de Ingreso: noviembre-2002
Mensajes: 24
Antigüedad: 21 años, 7 meses
Puntos: 0
Pues yo opino que sí se pueden "mezclar".
Puedes probar 3 opciones:
1)Crear un "web service".
-
Código PHP:
new SoapServer("fichero.wsdl"
en el fichero php (php 5)
-
Código PHP:
Server.CreateObject("MSSOAP.SoapClient"
en el fichero asp.

2)Borrar la funcion, no el contenido, para que el se ejecute siempre el .php y llamarlo con
Código PHP:
Server.CreateObject("MSXML2.ServerXMLHTTP.4.0"
3)Con javascript (mejor Ajax), al estilo gmail:
Código PHP:
new XMLHttpRequest(); 
ó
Código PHP:
Msxml2.XMLHTTP 
(IE).

Espero que te sirva alguna. Un saludo.
  #9 (permalink)  
Antiguo 28/04/2005, 10:21
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
je je, si, pero no los estás mezclando, estás ocupando otras tecnologías como puente entre estas dos...

Aún así, me parece una alternativa viable!

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #10 (permalink)  
Antiguo 28/04/2005, 10:29
 
Fecha de Ingreso: marzo-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 1
Gracias por las respuestas.. ya veo...lo que he pensado es construír un diccionario tb para la parte ASP... pero necesitaría saber si puedo crear una variable sesión de lenguage ASP al mísmo tiempo q se crea mi variable sesión de lenguage en PHP... porque entonces podría construír mi función language en PHP q cambia las sesiones de inglés a español y viceversa y cuando lo hace al final podría poner un redireccionamiento a al language.asp donde ahí se crear la sesión en ASP dependiendo del lenguage selecionado...
algo así

lenguage.php
Código:
<?
session_start();

$lang = $_REQUEST['lang'];

if (($lang == 'eng') || ($lang == 'esp')){
	session_unregister('language'); 
	session_register('language');
	$_SESSION['language'] = $lang;
	
	header(location:language.asp?lang=$lang); /*redirect a language ASP*/
}
?>
lenguage.asp
Código:
<%
iniciarSession.asp

dim lang 'iniciar variable
lang = Request.QueryString("lang")

if lang = "eng"  then
	Session("language") = "eng"
end if
if lang = "esp"  then
	Session("language") = "esp"
end if

Response.Redirect "default.asp"
%>
diganme si esto se puede hacer...si se puede tener dos sesiones a la vez..una en PHP y otra en ASP... Gracias.
  #11 (permalink)  
Antiguo 28/04/2005, 10:38
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Es totalmente correcto...si lo puedes hacer!

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
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 13:15.