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

que tan correcto es tener esto en server.mappath("..\..\ruta")

Estas en el tema de que tan correcto es tener esto en server.mappath("..\..\ruta") en el foro de ASP Clásico en Foros del Web. Que tal pues como he estado batallando para que pueda accesar a una base de datos en access desde la web. tengo este string de ...
  #1 (permalink)  
Antiguo 28/08/2007, 10:06
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Pregunta que tan correcto es tener esto en server.mappath("..\..\ruta")

Que tal pues como he estado batallando para que pueda accesar a una base de datos en access desde la web.

tengo este string de conexion y todo funcionaba de maravilla localmente pero al subirla al servidor ZAZ!!!! que no funciona!, entonces aki estaba hasta las 12 de la noche sin entender por que.. 1° fue por q no tenia permisos la carpeta y luego por que el server.MapPath() no era el correcto, asi que no me quedó mas que probar y probar jajajaja

string ORIGINAL:
cn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("\database\"+"regproys.mdb") & ";" & "PWD="

= con esto funcionaba localmente pero en web no =(

string modificado:
cn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("..\..\database\regproys.mdb") & ";" & "PWD="


Noten que le tuve que agregar ..\..\, ya que mis archivos en web los tengo asi
raiz\httpdocs\carpeta1\arch.asp <-- que es donde llamo a la bd mdb
raiz\database\*.mdb


el detalle es que no me convence del todo esta sintaxis (..\..\), esta correcto, o existe otra forma de hacerlo?'

Saludos
__________________
" Recuerda , estas donde debes estar ..."
  #2 (permalink)  
Antiguo 28/08/2007, 10:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

De hecho es "peligroso" permitir a tu servidor las rutas relativas, por default creo los windows servers no lo permiten.

El caso es que si tu conexión lo puede hacer, también un usuario mal intencionado puede ingresar direcciones de ese tipo desde la barra de URL's y acceder a archivos a los que no se tengan acceso.

Fuera de eso , pues ..... no es malo
  #3 (permalink)  
Antiguo 28/08/2007, 10:53
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
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

Pasa que usando string ORIGINAL no encuentra la carpeta database porque la buscaría dentro de raiz\httpdocs\database\ y claramente esa carpeta no existe. Eso ocurre cuando querés acceder a un archivo (base de datos en este caso) ubicado fuera del "document root" (httpdocs en tu caso). Es un garrón, porque la misma cadena de conexión no te sirve para otras rutas como:

-raiz\httpdocs\carpeta1\carpeta2\arch.asp
-raiz\httpdocs\arch.asp

En ese caso se me hace preferible no usar server.mappath sino hardcodear la ruta completa:

Código:
...& "DBQ=X:\webserver\mi-sitio\database\regproys.mdb") &...
Aunque aquí dependés de que no muevan nada en tu hosting... pero se me ocurre una pequeña función que use manejo de errores, FSO para consultar la existencia de la BD y algunas otras cosillas para reescribir el PATH completo en un archivo de configuración si es que movieron algo en el hosting... no sé.
__________________
...___...
  #4 (permalink)  
Antiguo 28/08/2007, 11:00
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
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

Cita:
Aunque aquí dependés de que no muevan nada en tu hosting... pero se me ocurre una pequeña función que use manejo de errores, FSO para consultar la existencia de la BD y algunas otras cosillas para reescribir el PATH completo en un archivo de configuración si es que movieron algo en el hosting... no sé.
Bah! No. Muy complicado. Mejor esto:

Código:
mi_path = server.mappath("\")
mi_path = replace(mi_path, "httpdocs", "database")

cn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & mi_path & "\regproys.mdb") & ";" & "PWD="
__________________
...___...
  #5 (permalink)  
Antiguo 28/08/2007, 11:15
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

Cita:
Iniciado por Al Zuwaga Ver Mensaje
Bah! No. Muy complicado. Mejor esto:

Código:
mi_path = server.mappath("\")
mi_path = replace(mi_path, "httpdocs", "database")

cn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & mi_path & "\regproys.mdb") & ";" & "PWD="

pero Al, si pongo httpdocs","database")...
el string de conexion se conectaria a -raiz\httpdocs\database\
y ahi no tengo mis *.mdb osea que me pasaria el mismo error que al principio

entonces no se como irme desde -raiz\httpdocs\carpeta\archivo.asp a \database que esta fuera del \httpdocs

o será que no entiendo bien esta linea?
mi_path = replace(mi_path, "httpdocs", "database")

graxias por sus respuestas!! =)
__________________
" Recuerda , estas donde debes estar ..."
  #6 (permalink)  
Antiguo 28/08/2007, 13:17
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
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

Estás segura? Lo probaste ya?

Probalo:

Código:
mi_path = server.mappath("\")
mi_path = replace(mi_path, "httpdocs", "database")
Response.Write mi_path
__________________
...___...
  #7 (permalink)  
Antiguo 28/08/2007, 14:22
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

Aaaaa =O Al ya lo probé y si me da la direccion del servidor
algo asi como esto:

c:\hosting\..\dominio.com.mx\database

entonces puedo ponerlo de esta forma para no tener que poner ..\..\database ,
cierto?

corrigeme si me equivoco, lo que hace el replace es cambiar el https por el database o no ?
__________________
" Recuerda , estas donde debes estar ..."
  #8 (permalink)  
Antiguo 28/08/2007, 14:43
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
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

Cita:
entonces puedo ponerlo de esta forma para no tener que poner ..\..\database , cierto?
cierto

Cita:
corrigeme si me equivoco, lo que hace el replace es cambiar el https por el database o no ?
no te corrijo :P
__________________
...___...
  #9 (permalink)  
Antiguo 28/08/2007, 15:37
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

jajajaja, muchas gracias por la ayuda Al =)

PD. por cierto intente ver tu blog pero como q me carga muy lento :S
pero esta chido, jeje
__________________
" Recuerda , estas donde debes estar ..."
  #10 (permalink)  
Antiguo 28/08/2007, 17:20
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 19 años
Puntos: 0
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

otra cosa aqui esta mal bueno le falta un"("
cn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & mi_path & ("\regproys.mdb") & ";" & "PWD="

por que sino marca error!!! jejeje
__________________
" Recuerda , estas donde debes estar ..."
  #11 (permalink)  
Antiguo 28/08/2007, 18:25
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
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

Hola Gaby. Efectivamente me comí un paréntesis.
Con respecto al blog... algunas veces lo noto lento, pero siempre cuando estoy en la conexión de mi trabajo (que APESTA). Cuando me conecto desde otros lugares va normal. Te pediría que intentes entrar un par de veces y me o confirmes (por privado)... si es que querés, claro!
__________________
...___...
  #12 (permalink)  
Antiguo 29/08/2007, 10:53
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

El sitio esta caído
  #13 (permalink)  
Antiguo 29/08/2007, 11:29
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
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

Entonces evidentemente hay un problema de conectividad con otros países... Yo lo veo arriba. Y va rápido en este momento. Hummm...
__________________
...___...
  #14 (permalink)  
Antiguo 29/08/2007, 11:33
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: que tan correcto es tener esto en server.mappath("..\..\ruta")

No será que lo estás hosteando en tu PC y lo ves rápido desde el localhost?
__________________
"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 19:13.