Foros del Web » Programando para Internet » PHP »

problema con $_SERVER['DOCUMENT_ROOT']

Estas en el tema de problema con $_SERVER['DOCUMENT_ROOT'] en el foro de PHP en Foros del Web. Hola a todos, cuando uso el $_SERVER['DOCUMENT_ROOT'] de esta manera: $_SERVER['DOCUMENT_ROOT']."/img/imagen.jpg en vez de devolverme el dominio de mi web asi: www.miweb.com/img/imagen.jpg me tira esto: ...
  #1 (permalink)  
Antiguo 20/07/2011, 13:45
Avatar de pingochin  
Fecha de Ingreso: febrero-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta problema con $_SERVER['DOCUMENT_ROOT']

Hola a todos,
cuando uso el $_SERVER['DOCUMENT_ROOT'] de esta manera:

$_SERVER['DOCUMENT_ROOT']."/img/imagen.jpg

en vez de devolverme el dominio de mi web asi:
www.miweb.com/img/imagen.jpg

me tira esto:
/kunden/homepages/36/d365204653/htdocs/img/imagen.jpg

y ademas el dicho link no funciona.

alguien tiene idea?
  #2 (permalink)  
Antiguo 20/07/2011, 14:07
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: problema con $_SERVER['DOCUMENT_ROOT']

hola que tal.

Por lo visto ¿tu web está en un hosting?

Y esa ruta que te muestra es la del servidor web completo a lo que me refiero que cuando tu site está en un server de alojamiento crean carpetas dentro de la principal.

Por lo tanto esa es la dirección física de tu dominio en el servidor.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 20/07/2011, 14:14
Avatar de pingochin  
Fecha de Ingreso: febrero-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: problema con $_SERVER['DOCUMENT_ROOT']

si eso lo supuse, en si no me importa q no se muestre el dominio, lo mas importante es q el link q me devuelve no funciona.
  #4 (permalink)  
Antiguo 20/07/2011, 14:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con $_SERVER['DOCUMENT_ROOT']

El problema es que DOCUMENT_ROOT es la ruta física a tu archivo, no la ruta por URL, haz un var_dump($_SERVER); para ver que variables puedes tomar y generar tu ruta.

Saludos.
  #5 (permalink)  
Antiguo 20/07/2011, 15:05
Avatar de pingochin  
Fecha de Ingreso: febrero-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: problema con $_SERVER['DOCUMENT_ROOT']

aver me explico un poco mas como llegue a este problema y por que necesito esta funcion:
Estoy usando la funcion php imagecreatefromjpeg, imagecopy para crear marcas de agua y otras cosas.
El problema surge cuando trato de abrir la imagen de la marca de agua por medio de un archivo php q le ajusta al tamaño q necesito segun el caso(imagenes/resize.php?im=foto.jpg), pero la funcion imagecreatefromjpeg no funciona llamar de esa manera la imagen.
Asi que probe usar url absolutas osea: http://localhost/imagenes/resize.php?im=foto.jpg de esa manera funciono bien localmente, la funcion tomo el archivo. Pero cuando trato de implementar este metodo en mi pagina online mi tira este error:
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: URL file-access is disabled in the server configuration
Osea me esta diciendo q esta deshabilitado el usar urls absolutas, entonces por eso ahora estoy usando el $_SERVER['DOCUMENT_ROOT'].

Y lo que descubri ahora es que si uso el $_SERVER['DOCUMENT_ROOT'] con la imagen directamente:
$_SERVER['DOCUMENT_ROOT']."/imagenes/foto.jpg"
funciona lo mas bien.
pero cuando lo uso mediante el archivo php q cambia el tamaño:
$_SERVER['DOCUMENT_ROOT']."imagenes/resize.php?im=foto.jpg"

me tira este error:
Warning: imagecreatefromjpeg(/kunden/homepages/36/d365204653/htdocs/imagenes/resize.php?im=foto.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /homepages/36/d365204653/htdocs/marcaagua.php on line 21
Error opening fondo.png!
  #6 (permalink)  
Antiguo 20/07/2011, 15:11
Avatar de porketero  
Fecha de Ingreso: noviembre-2010
Mensajes: 29
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: problema con $_SERVER['DOCUMENT_ROOT']

Hola, creo que usas un hosting, ya que eso pasa en dicho hosting, en vez de hacer eso, prueba con $_SERVER['HTTP_HOST']
  #7 (permalink)  
Antiguo 20/07/2011, 15:22
Avatar de pingochin  
Fecha de Ingreso: febrero-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: problema con $_SERVER['DOCUMENT_ROOT']

Cita:
Iniciado por sploonder Ver Mensaje
Hola, creo que usas un hosting, ya que eso pasa en dicho hosting, en vez de hacer eso, prueba con $_SERVER['HTTP_HOST']
eso me llevaria otra vez a usar url's absolutas, cosa q mi hosting no permite. En mi anterior mensaje explico q $_SERVER['DOCUMENT_ROOT'] funciona bien para llamar directamente la imagen, pero falla cuando intento llamar la imagen x medio de un archivo php.
  #8 (permalink)  
Antiguo 20/07/2011, 15:49
Avatar de pingochin  
Fecha de Ingreso: febrero-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: problema con $_SERVER['DOCUMENT_ROOT']

Solucione el problema, por si a alguien le sirve: subi un php.ini con el sigueinte parametro:

allow_url_fopen = On

al hosting en el directorio donde se encuenta el archivo php.
No se si funcionaria en otro hosting pero en 1and1 se puede subir tu propio php.ini pero no funciona globalmente, y hay q subir un php.ini por cada directorio donde hayan archivos .php q necesiten el php.ini modificado.
  #9 (permalink)  
Antiguo 20/07/2011, 15:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con $_SERVER['DOCUMENT_ROOT']

Eso es porque debes de entender dos cosas, para ver tu imagen en el browser tienes que mostrar la imagen con la URL correcta al archivo, por ejemplo:

http://host/imagenes/foto.jpg

Pero cuando quieres trabajar con archivos en PHP tienes que usar la ruta física al archivo, esa misma foto puede estar en:

/home/sites/host/imagenes/foto.jpg.

Lo mejor para estos casos es que crees 2 constantes, una que sea a partir del raiz de tu URL, por ejemplo IMAGES_URL, y la otra que sea a partir del path fisico en el disco duro por ejemplo IMAGES_PATH.

Asi si quieres hacer solamente pones:

Código HTML:
Ver original
  1. <img src="resize.php?file=foto.jpg" />

y dentro de resize.php cargas la imagen desde el path físico:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $foto = IMAGES_PATH . '/' . $_GET['file'];

Saludos.

Etiquetas: $_server['document_root']
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 17:26.