Frames en PhP


  • 0

    Un amigo tiene una web en Php pero tenemos un problema.

    Los menus estan separadas en "index.html" mediante frames. Uno superior con el logo y otro lateral con el menu. El problema es que cuando nos enlazan desde otra web a "noticias.php" no aparece ni el menu ni el logo.

    Como podria crear un index.php (u otra solucion) para que enlazen la web que enlazen siempre aparezca el menu y el logo.

    THNX



  • 1

    Pues me temo que no puedes. Ese es el problema de los frames, que para ver una pagina tienes que llegar navegando. Si la enlazas directamente realmente solo te saldrá el frame en el que se carga a pantalla completa.

    Me temo que no hay solución.

    O bueno, os podeis crear un noticias.php con una estructura de frames igual al del index.html y así accediendo a noticias.php se verá todo OK. Eso si, para que el noticias.php funcione navegando por la web tedreis que duplicarlo con otro nombre porque sino os saldrá la estructura de frames dentro de otra estructura de frames.

    Si es solo una pagina te vale el rollo de este de duplicar. Si son muchas…........... habrá que reconstruir la web.

    No se tarda mucho. Yo precisamente estos dos ultimos dias he echo eso precisamente (aunque tengo pocas paginas), y no se tarda mucho.



  • 2

    Casi siempre hay una forma de solucionar las cosas, más con PHP. Doy por hecho que el servidor web es Apache.
    Puedes utilizar en el propio noticias.php la variable $REQUEST_URI, que contiene una cadena con lo que hay escrito en la barra de direcciones, y si se encuentra dentro del valor de la variable la cadena "noticias.php", redireccionar utilizando los headers de PHP hacia el index.html. Si por lo que sea no te funcionan bien los headers [a mi alguna vez me han fallado en el trabajo], siempre puedes redireccionar con un javascript chungo, no ? ;)

    La función substr_count puede ayudarte a buscar "noticias.php" dentro de $REQUEST_URI.

    Seguro que hay alguna forma mucho más fina de hacerlo, pero a las 5 de la mañana un sabado .. no estoy yo muy lúcido xD Espero haberte orientado un poco, eso si.

    Salu2, ||M^nnu||



  • 3

    Ya, pero esque según lo que tu dices no le muestras la pagina de noticias.php.

    Tu lo que estás diciendo es que si aacede deirectamente a ella le redireccionas al index.php pero me imagino que eso no es lo que quiere. El querrá que le salga directamente la de noticas.php pero con los frames.



  • 4

    Cierto cierto. Vamos a ver, hay algo que no me ha quedado claro .. las noticias las lleva en PHP y el index que lo encuadra todo es un html ? Tu amigo debería plantearse el pasar todo el sitio a PHP, aunque solo fuese cambiando las extensiones ..

    Si la página principal que se carga al inicio del index.html, llevase un pequeño script en PHP que detectase el valor de una variable a modo de flag o "banderita", y en función a ese valor redireccionase o no ese marco a noticias.php, podrías solucionarlo. La duda que tengo es si se le podría pasar ese valor a index.html, convertido en index.php, claro está, y que esa variable estuviese disponible para el resto de frames, que es algo de lo que no estoy muy seguro, me parece dificil.

    Si fuese posible esto que comento, y pasandole al index.php la "banderita", solo tendrías que poner ese pequeño script en la página de inicio y se solucionaría tu problema.

    Sigo pensando que tiene que haber una forma mucho más fina de hacer todo esto coñe :confused:
    Si tu amigo tiene el suficiente tiempo libre, podría empezar a pasar la web entera a PHP y quitar los frames. Jugando con includes se puede conseguir un efecto parecido al de los frames, solo que con todas las ventajas de tenerlo todo en un solo documento ;)

    Salu2, ||M^nnu||



  • 5

    Si, puede ser una solucion la uqe dices.

    Por ejemplo usa un parámetro por GET.

    Osea, que para ir a las noticias le pongas:
    http://www.midominio.com/index.html?destino=noticias

    Y entonces nada más entrar compruebas si $_GET['destino']==noticias

    Si es así cargas en la parte principal de la página noticias.php y sinó pues nada, como siempre.

    Para lo cual necesitas que el index sea un .php





Has perdido la conexión. Reconectando a Hardlimit.