Nueva pregunta

Pregunta:

Fecha: 28-02-2017 06:44:09 (En Español)

Problemas con Rutas en PHP[Resuelta]

Buenos días, disculpen estoy teniendo este problema, les comento estado pensando ordenar mis archivos de php según su categoría por capeta, para que no esten sueltos en la carpeta principal, he ordenado, en el menú principal le asignado la ruta, asi.
Menus
reporte/reporte.php
grafica/grafica.php === aquí es que tengo problema, cuando hago clic en grafica me busca así: reporte/grafica/grafica.php

estoy usando la plantilla de bootstrap el ace-master
Gracias por sus respuestas
Etiquetas: Bootstrap - PHP - Pregunta - URL Votos: 0 - Respuestas: 15 - Vistas: 20 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 28-02-2017 11:58:20 Ya intentaste utilizando rutas absolutas? como /grafica/grafica.php
    si estas dentro de una ruta por ejemplo http://example.com/reporte y hacer click en un link que sea
    <a href="grafica/grafica.php">, al ser relativa va a buscarlo en http://example.com/reporte/grafica/grafica.php

    sin embargo si lo haces como
    <a href="/grafica/grafica.php"> (notese el / al inicio) deberia de resolver correctamente. http://example.com/grafica/grafica.php
      Votos: 1 - Link respuesta
     
  • Fecha: 28-02-2017 19:51:02 estuve verificando pero no me resulto. le comento:
    grafica
    grafica.php
    reporte
    reporte1.php

    cuando ingreso ya logeandome en( http://localhost/websistem/homem.php
    en el menu esta de la siguiente manera:
    		<li class="">
    			<a href="#" class="dropdown-toggle">
    				<i class="menu-icon fa fa-th"></i>
    				<span class="menu-text">
    					General
    				</span>
    				<b class="arrow fa fa-angle-down"></b>
    			</a>
    			<b class="arrow"></b>
    			<ul class="submenu">
    				<li class="">
    					<a href="grafica/grafica.php">
    						<i class="menu-icon fa fa-caret-right"></i>
    						Graficas
    					</a>
    
    					<b class="arrow"></b>
    				</li>
    			</ul>
    		</li>
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    		<li class="">
    			<a href="#" class="dropdown-toggle">
    				<i class="menu-icon fa fa-street-view"></i>
    				<span class="menu-text">
    					Reportes
    				</span>
    				<b class="arrow fa fa-angle-down"></b>
    			</a>
    			<b class="arrow"></b>
    			<ul class="submenu" >
    				<li class="">
    					<a href="reporte/reporte1.php">
    						<i class="menu-icon fa fa-caret-right"></i>
    						Reporte 1
    					</a>
    
    					<b class="arrow"></b>
    				</li>
                                   </li>
    


    hice segun lo que me indico :
    sin embargo si lo haces como
    <a href="/grafica/grafica.php"> (notese el / al inicio) deberia de resolver correctamente. http://example.com/grafica/grafica.php

    cuando hago clic en grafica no me muestra sale error, igual para los demas
    por favor me podrian ayudar gracias por todo
      Votos: 0 - Link respuesta
     
  • Fecha: 28-02-2017 22:50:18 Hola Joel:

    A la vista de lo que expones y viendo que te da error al ir a la raíz para localizar la carpeta grafica (/grafica/grafica.php), cabe entender que la carpeta grafica no está en la raíz sino al mismo nivel que la carpeta reporte (comentas que grafica/grafica.php === aqui es que tengo problem cuando hago clic en grafica me busca asi: reporte/grafica/grafica.php ).

    Prueba simplemente a subir un nivel en el enlace para entrar en la carpeta que está al mismo nivel:

    ../grafica/grafica.php

    - Salgo de la carpeta reporte con ../
    - Entro en la carpeta grafica con grafica
    - Llego al archivo con grafica.php

    Saludos.
      Votos: 3 - Link respuesta
     
  • Fecha: 01-03-2017 06:42:36 diculpe no logro comprender si pongo asi: ../grafica/grafica.php me botara a la carpeta principal del host del xamp,   Votos: 0 - Link respuesta
     
  • Fecha: 01-03-2017 08:51:57 Joel: lo que nos manda a la raíz es "/".
    "../" nos envía a la carpeta padre.

    Vamos a ver si me explico:

    Supongamos que la raíz se llama myweb.com.
    En ella tengo diversas carpetas: images, provehedores, clientes, ...
    Dentro de clientes tengo otras carpetas como pueden ser reporte, grafica, ...

    La ruta absoluta para llegar a reporte1.php sería: http://myweb.com/clientes/reporte/reporte1.php
    Para llegar a grafica1.php sería: http://myweb.com/clientes/grafica/grafica1.php

    Si, como te decía Abraham, ponemos <a href="/grafica/grafica.php">, nos daría error ya que nos envía a la raíz (http://myweb.com/grafica/grafica1.php) porque grafica es una subcarpeta de clientes y no está en la raíz (lo correcto sería llegar a <a href="http://myweb.com/clientes/grafica/grafica.php">.
    Abraham te lo explicaba bien suponiendo que las carpetas reporte y gráfica estuviesen en la raiz. Pero creo que no es tu caso.

    El error que mostrabas era que te decía en la llamada a reporte/grafica/grafica.php, que tampoco existe, ya que la carpeta grafica no es una subcarpeta de reporte sino que está al mismo nivel La carpeta padre de ambas es clientes.

    Lo que te proponía yo es <a href="../grafica/grafica.php">: esto es, si estamos en la carpeta reporte, voy a la carpeta padre que es clientes para entrar en la subcarpeta grafica.

    Explicado desde rutas absolutas, desde <a href="http://myweb.com/clientes/reporte/reporte1.php"> paso a la carpeta padre clientes para entrar en la subcarpeta grafica: <a href="http://myweb.com/clientes/grafica/grafica.php"> Con rutas relativas, utilizo <a href="../grafica/grafica.php">

    Creo haberme explicado.
      Votos: 3 - Link respuesta
     
  • Fecha: 02-03-2017 08:06:39 en mi caso es las rutas son:
    http://myweb.com/sistema/reporte/reporte1.php
    http://myweb.com/sistema/grafica/grafica.php
    y si ingreso primero a grafica me mandara al capeta raiz
      Votos: 0 - Link respuesta
     
  • Fecha: 09-03-2017 10:02:43 Hola Joel,

    Por qué simplemente no pones todas las rutas absolutas ?
      Votos: 1 - Link respuesta
     
  • Fecha: 13-03-2017 19:06:09 elemental mi querido Joel, el problema se resume a la configuración del servidor web activo, en este caso la configuración de apache del hosting en donde tienes instalada la aplicación, mi recomendación es que comiences a utilizar urls absolutas y no relativas, generalmente los proveedores de host, tienen restringido este tema para mayor seguridad, la solución ya la han estado dando algunos de los colegas, pero creo que no ha aflorado debidamente, simplemente crea una constante en el index.php, con el valor de la url del sitio principal y la concatenas con las diferentes carpetas o ubicaciones que necesitas, esto te permitirá poder confiar en un valor absoluto y por tanto urls absolutas, espero esto pueda ser de utilidad para resolver tu problema, saludos desde Guatemala.   Votos: 1 - Link respuesta
     
  • Fecha: 14-03-2017 03:33:31 Hola a todos, sumando a los comentarios sobre "utilizar urls absolutas", aquí te dejo un ejemplo de como puedes configurar tu constante "BASE_URL" para concatenar con tus urls relativas.

    Veamos:
    define('BASE_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/');


    Luego al momento de utilizarla, puedes hacer algo tan simpre como:
    <a href="<?php echo BASE_URL;?>sistema/grafica/grafica.php">Clic para ver la gráfica</a>
    


    Saludos y buen código!
      Votos: 2 - Link respuesta
     
  • Fecha: 23-03-2017 16:12:47 Buenos noches disculpe, Fernando, una consulta este pate del codigo lo copia asi tal como esta:
    define('BASE_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/');
    

    Gracias por su respuesta
      Votos: 0 - Link respuesta
     
  • Fecha: 24-03-2017 03:09:23 Hola Joel, no comprendo tu pregunta (?), básicamente lo que hace esa línea de código es definir una constante que será tu base para todas tus URL.

    Saludos y buen código!
      Votos: 0 - Link respuesta
     
  • Fecha: 24-03-2017 16:50:45 Hola Fernando, Disculpe en mi caso lo tengo asi: http://localhost:8080/sistemas/, como seria en ese caso, de ante mano le agradezco por tu tiempo y respuesta gracias   Votos: 0 - Link respuesta
     
  • Fecha: 25-03-2017 05:57:11 JOEL
    Buenas tardes

    Decis:

    Menus
    reporte/reporte.php
    grafica/grafica.php === aquí es que tengo problema, cuando hago clic en grafica me busca así: reporte/grafica/grafica.php

    Esta claro que tenes una CARPETA "reporte" que contiene el archivo reporte.php y la CARPETA "grafica", que a su vez, esta dentro de esta ultima donde se encuentra el archivo grafica.php
    Cosa que expones al decir que al hacer clic sale la siguiente ruta: reporte/grafica/grafica.php

    EJEMPLO:

    CARPETA reporte contiene 2 elementos

    Elemento 1.- archivo = reporte.php
    Elemento 2.- carpeta = grafica

    El Elemento 2.- CARPETA

    A su vez, contiene
    archivo = grafica.php

    Como podes apreciar, la carpeta grafica, esta dentro de la carpeta reporte:

    Si lo que pretendes es que la carpeta grafica este en el mismo nivel que la carpeta reporte, solo debes sacar la carpeta grafica de allí y subirla un nivel ... eso es todo, allí grafica, estará en el mismo nivel que reporte

    * En consecuencia obtendrás como resultado:

    1.- reporte/reporte.php
    2.- grafica/grafica.php

    * Si dejas todo como esta, obtendras:

    1.- reporte/reporte.php
    2.- reporte/grafica/grafica.php

    Suerte con el trabajo.
      Votos: 0 - Link respuesta
     
  • Fecha: 25-03-2017 06:01:34 Hola Joel, para tu caso puntual puedes definir la constante de la suigente forma:
    define('BASE_FOLDER', 'sistemas');
    define('BASE_PORT', '8080');
    define('BASE_URL', 'http://' . $_SERVER['SERVER_NAME'] . ':' . BASE_PORT . '/' . BASE_FOLDER . '/');
    


    O de una forma más simple (haciendo un hardcode):
    define('BASE_URL', 'http://localhost:8080/sistemas/');


    Saludos y buen código!
      Votos: 0 - Link respuesta
     
  • Fecha: 27-03-2017 19:10:13 Gracias a todos   Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com