Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/04/2008, 00:55
Avatar de i_e_s27
i_e_s27
 
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 17 años, 1 mes
Puntos: 5
Re: Problema con Includes y Nombres Redefinidos

Pude resolver el problema con server.execute()... pero... encontre algo muy raro (para mi por lo menos jaja), y quiero compartirlo con ustedes:

Resulta que en la pagina default.asp, donde tenia el select case, antes de eso, arriba del todo tenia un include que me daba la conexion a la base de datos:

Código:
<!--#include file="conexion.asp"-->
................mucho codigo que no viene al caso................
				<%
				Dim Seccion
				Seccion = Trim(Request.QueryString("seccion"))
				select case Seccion
					Case "ofertas_y_novedades" %>
					<!--#include file='ofertas_y_novedades.asp'-->
					<% Case "catalogo" %>
					<!--#include file='catalogo.asp'-->
					<% Case "busqueda" %>
					<!--#include file='busqueda.asp'-->
					<% Case "la_empresa" %>
					<!--#include file='la_empresa.asp'-->
					<% Case "garantias_y_faq" %>
					<!--#include file='garantias_y_faq.asp'-->
					<% Case "contacto" %>
					<!--#include file='contacto.asp'-->
					<% Case Else %>
					<!--#include file='home.asp'-->
				<% end select %>
................mucho codigo que no viene al caso................
<!--#include file='cerrarconexion.asp'-->
...y esto andaba bien, las paginas incluidas en el select case tomaban la base de datos sin ningun problema.

Pero cuando pase a server.execute() paso algo raro:

Código:
<!--#include file="conexion.asp"-->
................mucho codigo que no viene al caso................
				<%
				Dim Seccion
				Seccion = Trim(Request.QueryString("seccion"))
				select case Seccion
					Case "ofertas_y_novedades"
						Server.Execute("ofertas_y_novedades.asp")
					Case "catalogo"
						Server.Execute("catalogo.asp")
					Case "busqueda"
						Server.Execute("busqueda.asp")
					Case "la_empresa"
						Server.Execute("la_empresa.asp")
					Case "garantias_y_faq"
						Server.Execute("garantias_y_faq.asp")
					Case "contacto"
						Server.Execute("contacto.asp")
					Case Else
						Server.Execute("home.asp")
				end select
				%>
................mucho codigo que no viene al caso................
<!--#include file='cerrarconexion.asp'-->
Las paginas del Select Case no me tomaban la conexion a la base de datos!!!

Asi que tube que poner un include a la conexion de la base de datos en cada una de las paginas de las secciones, y tambien el include para cerrar la conexion, aunque no se si es necesario este ultimo, ya que si lo tengo al final del todo en la pagina default.asp, va a cerrar la conexion y setear la conexion a Nothing, se abra donde se abra... de todas formas, funciona sin tirar errores CON y SIN el include 'cerrarconexion.asp' en cada pagina seccion Y CON dicho include en la pagina default.asp tambien


Muy raro esto, se ve que el server.execute() no toma las variables de la pagina que la llama, osea, ejecuta el archivo sin depender de nadie e imprime el resultado en la pagina que lo solicita... Sin embargo:

Si yo escribo default.asp?seccion=catalogo&accion=vercatalogo&ca tegoria=1

Me abre la pagina default.asp, y me ejecuta la seccion catalogo.asp, PERO catalogo.asp puede leer los QuerryStrings accion y categoria!!!!!

Osea que SI puede leer los QuerryStrings de la pagina que lo ejecuta, pero NO puede leer la variable conexion de la pagina que lo ejecuta...

Tambien intente poner la conexion directamente en el default.asp, sin include, sino escrita de una, y tampoco funciono (luego me di cuenta porque: incluirla es lo mismo que escribirla, porque el include se hace ANTES de procesar el codigo, es como si estubiera escrita ahi)

Bueno... una vez mas he aprendido mediante el viejo metodo autodidacta de prueba y error jajaja

PD: Vale la pena agregar a modo de comentario que el comando server.execute() funciona en IIS 5.0 para arriba, osea Windows 2000 para arriba (el XP tiene IIS 5.1)

Saludos!!!