Foros del Web » Programando para Internet » PHP »

Movida con require

Estas en el tema de Movida con require en el foro de PHP en Foros del Web. Hola a todos tengo un movidon bastante raro con php y es el siguiente: A una web que tengo colgada en internet le quiero poner ...
  #1 (permalink)  
Antiguo 11/02/2012, 10:03
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Movida con require

Hola a todos tengo un movidon bastante raro con php y es el siguiente:

A una web que tengo colgada en internet le quiero poner los menus en enlaces en formato php y llamarlos con un require, y poner todas las secciones de la web en carpetas para tenerlo todo ordenado y a la hora de actualizar la web no liarla parda y ahorrarme jaleo.
Lo raro es que los enlaces al las hojas de estilo (css) primeramente no me los pilla aun habiendole cambiado la ruta, las imagenes tampoco, y en cuanto les meto el require con el menu me sale esto al entrar en algun enlace:

Warning: require(menu/menui.php) [function.require]: failed to open stream: No such file or directory in C:\AppServ\www\sich2\ed1\edI.php on line 142

Fatal error: require() [function.require]: Failed opening required 'menu/menui.php' (include_path='.;C:\php5\pear') in C:\AppServ\www\sich2\ed1\edI.php on line 142

¿Que pasa o que estoy haciendo mal?

Gracias de antemano os poseteo los codigos

idex:

Código PHP:
<html>
<head>
<!--Prueba superada--> 
<title>SALON INTERNACIONAL DEL COMIC DE HUELVA 2.0</title>
<script language="Javascript"> 

var BrowserDetect = { 
          init: function () { 
              this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; 
              this.version = this.searchVersion(navigator.userAgent) 
                 || this.searchVersion(navigator.appVersion) 
                 || "an unknown version"; 
              this.OS = this.searchString(this.dataOS) || "an unknown OS"; 
          }, 
       searchString: function (data) { 
           for (var i=0;i<data.length;i++)    { 
              var dataString = data[i].string; 
              var dataProp = data[i].prop; 
              this.versionSearchString = data[i].versionSearch || data[i].identity; 
              if (dataString) { 
                 if (dataString.indexOf(data[i].subString) != -1) 
                    return data[i].identity; 
              } 
              else if (dataProp) 
              return data[i].identity; 
           } 
       }, 
       searchVersion: function (dataString) { 
           var index = dataString.indexOf(this.versionSearchString); 
           if (index == -1) return; 
           return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); 
       }, 
       dataBrowser: [ 
           { string: navigator.userAgent, 
              subString: "OmniWeb", 
              versionSearch: "OmniWeb/", 
              identity: "OmniWeb" 
           }, 
        { 
           string: navigator.vendor, 
           subString: "Apple", 
           identity: "Safari" 
        }, 
        { 
           prop: window.opera, 
           identity: "Opera" 
        }, 
        { 
           string: navigator.vendor, 
           subString: "iCab", 
           identity: "iCab" 
        }, 
        { 
           string: navigator.vendor, 
           subString: "KDE", 
           identity: "Konqueror" 
        }, 
        { 
           string: navigator.userAgent, 
           subString: "Firefox", 
           identity: "Firefox" 
        }, 
        { 
           string: navigator.vendor, 
           subString: "Camino", 
           identity: "Camino" 
        }, 
        {     // for newer Netscapes (6+) 
           string: navigator.userAgent, 
           subString: "Netscape", 
           identity: "Netscape" 
        }, 
        { 
           string: navigator.userAgent, 
           subString: "MSIE", 
           identity: "Explorer", 
           versionSearch: "MSIE" 
        }, 
        { 
           string: navigator.userAgent, 
           subString: "Gecko", 
           identity: "Mozilla", 
           versionSearch: "rv" 
        }, 
        { // for older Netscapes (4-) 
           string: navigator.userAgent, 
           subString: "Mozilla", 
           identity: "Netscape", 
           versionSearch: "Mozilla" 
        } 
       ], 
       dataOS : [ 
        { 
           string: navigator.platform, 
           subString: "Win", 
           identity: "Windows" 
        }, 
        { 
           string: navigator.platform, 
           subString: "Mac", 
           identity: "Mac" 
        }, 
        { 
           string: navigator.platform, 
           subString: "Linux", 
           identity: "Linux" 
        } 


}; 
BrowserDetect.init(); 

if (BrowserDetect.browser == "Firefox") { 
    document.write("<LINK REL='stylesheet' HREF='estilos/style md v.css'>"); 

else { 
       if (BrowserDetect.browser == "Explorer"){ 
       if (BrowserDetect.version>=7){ 
              document.write("<LINK REL='stylesheet' HREF='estilos/style ie v.css'>"); 
           }else{ 
              document.write("<LINK REL='stylesheet' HREF='estilos/style ie v.css'>"); 
           } 
       }else{ 
           if (BrowserDetect.browser == "Opera"){ 
              if (BrowserDetect.version<9){ 
                 document.write("<LINK REL='stylesheet' HREF='estilos/style ie v.css'>"); 
              }else{ 
                 document.write("<LINK REL='stylesheet' HREF='estilos/style ie v.css'>"); 
              } 
           }else{ 
              document.write("<LINK REL='stylesheet' HREF='estilos/style v.css'>"); 
           } 
       } 

</script></head>
<body>
<ul class="navbar">

<?php

require ('menu/menui.php');
?>
</ul>
<ul class="navbar2">
<?php
require ('menu/menud5.php');
?>
</ul>
<div id="cabecera"><a href="index.html"><img src="img/LOGO V SICH copia.gif" width="466" height="130" border=0></a></img></div>
<div id="contenido">
<img src="img/SICH V Generico web.gif" width=340 height=400>


</div>

</body>
</html>
menui.php

Código PHP:
<li><a href="ed5/edV.php"><img src="img/ed5.png" width=90 height=18  border=0></a>
<
li><a href="ed4/edIV.php"><img src="img/ed4.png" width=90 height=18  border=0></a>
<
li><a href="ed3/edIII.php"><img src="img/ed3.png" width=90 height=18  border=0></a>
<
li><a href="ed2/edII.php"><img src="img/ed2.png" width=90 height=18  border=0></a>
<
li><a href="ed1/edI.php"><img src="img/ed1.png" width=90 height=18  border=0></a>
<
li><a href="fijas/contacto.php"><img src="img/contacto.png" width=90 height=18 border=0></a>
<
li><a href="actividades.php"><img src="img/actrel.png" width=90 height=18 border=0></a
  #2 (permalink)  
Antiguo 11/02/2012, 11:57
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Movida con require

Bueno, pues sin conocer la estructura de tus archivos es difícil adivinar, pero el mensaje es claro:
require(menu/menui.php) [function.require]: failed to open stream

eso quiere decir que tu estás llamando al archivo menui.php que se encuentra dentro de la carpeta menu, pero no lo encuentra en donde le indicas, ya que quizá esté mal la ruta relativa. Por tanto el script desde donde haces el require debe estar más o menos así:

Código directorio:
Ver original
  1. archivox.php
  2. archivoy.php
  3. index.php//donde haces el require
  4.      /menu
  5.               menui.php
  #3 (permalink)  
Antiguo 11/02/2012, 15:29
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Movida con require

el archivo menui.php esta dentro de la carpeta menu, lo que no hace es abrir los enlaces de menui.php, comprobé una y otra vez que estuvieran esos archivos en sus carpetas correspondientes y lo están, por eso es la cosa de que ya no se por donde tirar para arreglarlo
  #4 (permalink)  
Antiguo 12/02/2012, 10:17
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Movida con require

Tienes un problema con la definición de como funcionan las URL, supongamos que tu estructura es la siguiente

Código:
raiz
|-index.php
|-menu
|  |-menui.php
|ed5
|  |-edV.php
|ed4
|  |edIV.php
Cuando tu estas en index.php tienes la url de esta forma localhost/index.php, y tus links apuntan a localhost/ed5/edV.php y localhost/ed5/edIV.php, pero cuando das click y te vas a edV.php tu url se convierte a localhost/ed5/edV.php y tus url del menu dentro de edV.php se transforman a: localhost/ed5/ed5/edV.php y localhost/ed5/ed4/edIV.php ya que no estas indicando que las carpetas se ubican en raiz y no donde se encuentra el archivo donde estas haciendo el include...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #5 (permalink)  
Antiguo 12/02/2012, 14:50
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Movida con require

Cita:
Iniciado por Nemutagk Ver Mensaje
Tienes un problema con la definición de como funcionan las URL, supongamos que tu estructura es la siguiente

Código:
raiz
|-index.php
|-menu
|  |-menui.php
|ed5
|  |-edV.php
|ed4
|  |edIV.php
Cuando tu estas en index.php tienes la url de esta forma localhost/index.php, y tus links apuntan a localhost/ed5/edV.php y localhost/ed5/edIV.php, pero cuando das click y te vas a edV.php tu url se convierte a localhost/ed5/edV.php y tus url del menu dentro de edV.php se transforman a: localhost/ed5/ed5/edV.php y localhost/ed5/ed4/edIV.php ya que no estas indicando que las carpetas se ubican en raiz y no donde se encuentra el archivo donde estas haciendo el include...
acabo de perderme, te refieres a que en el include ponga localhost/menu/menui.php?
  #6 (permalink)  
Antiguo 12/02/2012, 15:04
 
Fecha de Ingreso: febrero-2012
Mensajes: 11
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Movida con require

prueba dejarlo de la siguiente manera:

Código PHP:
<?php 

require ('./menu/menui.php'); 
?> 
</ul> 
<ul class="navbar2"> 
<?php 
require ('./menu/menud5.php'); 
?>
  #7 (permalink)  
Antiguo 12/02/2012, 15:15
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Movida con require

Cita:
Iniciado por JaviCN Ver Mensaje
acabo de perderme, te refieres a que en el include ponga localhost/menu/menui.php?
Lo que me refiero es que las url que has creado siempre se basan en el path en el que se encuentran, lee documentación sobre url, para que lo entiendas mas facil....

Como lo interpreta el servidor estando en index.php
Código:
raiz
|--index.php
|--menu
|   |--menui.php
|--ed5
|   |--edV.php
|--ed4
|   |--edIV.php
|--img
|   |--ed5.png
|   |--ed4.png
Como lo interpreta el servidor estando en edV.php
Código:
raiz
|--index.php
|--menu
|   |--menui.php
|--ed5
|   |--edV.php
|   |   |--index.php
|   |   |--menu
|   |   |   |--menui.php
|   |   |--ed5
|   |   |   |--edV.php
|   |   |--ed4
|   |   |   |--edIV.php
|   |   |--img
|   |   |   |--ed5.png
|   |   |   |--ed4.png
|--ed4
|   |--edIV.php
|--img
|   |--ed5.png
|   |--ed4.png
Para evitar eso, tienes que especificar que te refieres siempre a raiz...

Código HTML:
Ver original
  1. <li><a href="/ed5/edV.php"><img src="img/ed5.png" width=90 height=18  border=0></a>
  2. <li><a href="/ed4/edIV.php"><img src="img/ed4.png" width=90 height=18  border=0></a>
  3. <li><a href="/ed3/edIII.php"><img src="img/ed3.png" width=90 height=18  border=0></a>

Con poner una diagonal (/) al comienzo del url indicas que index.php se encuentra en raiz (localhost/index.php)
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 12/02/2012, 15:37
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Movida con require

Cita:
Iniciado por Nemutagk Ver Mensaje
Lo que me refiero es que las url que has creado siempre se basan en el path en el que se encuentran, lee documentación sobre url, para que lo entiendas mas facil....

Como lo interpreta el servidor estando en index.php
Código:
raiz
|--index.php
|--menu
|   |--menui.php
|--ed5
|   |--edV.php
|--ed4
|   |--edIV.php
|--img
|   |--ed5.png
|   |--ed4.png
Como lo interpreta el servidor estando en edV.php
Código:
raiz
|--index.php
|--menu
|   |--menui.php
|--ed5
|   |--edV.php
|   |   |--index.php
|   |   |--menu
|   |   |   |--menui.php
|   |   |--ed5
|   |   |   |--edV.php
|   |   |--ed4
|   |   |   |--edIV.php
|   |   |--img
|   |   |   |--ed5.png
|   |   |   |--ed4.png
|--ed4
|   |--edIV.php
|--img
|   |--ed5.png
|   |--ed4.png
Para evitar eso, tienes que especificar que te refieres siempre a raiz...

Código HTML:
Ver original
  1. <li><a href="/ed5/edV.php"><img src="img/ed5.png" width=90 height=18  border=0></a>
  2. <li><a href="/ed4/edIV.php"><img src="img/ed4.png" width=90 height=18  border=0></a>
  3. <li><a href="/ed3/edIII.php"><img src="img/ed3.png" width=90 height=18  border=0></a>

Con poner una diagonal (/) al comienzo del url indicas que index.php se encuentra en raiz (localhost/index.php)
Acabo de probarlo y sigue en las mismas
  #9 (permalink)  
Antiguo 12/02/2012, 18:23
Avatar de JaviCN  
Fecha de Ingreso: abril-2009
Ubicación: Huelva, España
Mensajes: 76
Antigüedad: 15 años
Puntos: 2
Respuesta: Movida con require

Cita:
Iniciado por XenonPlus Ver Mensaje
prueba dejarlo de la siguiente manera:

Código PHP:
<?php 

require ('./menu/menui.php'); 
?> 
</ul> 
<ul class="navbar2"> 
<?php 
require ('./menu/menud5.php'); 
?>
tampoco funciona, probé tambien a ponerlo todo donde esta el index y solo ponerle el nombre del archivo y casca tambien y de la misma forma, esto ya es algo rarisimo, lo curioso de todo esto es que si le pongo el contenido de menui.php y menud5.php en vez de los require lo que me sale es el contenido de la pagina pero sin imagenes y como si no tuviera css, estoy pensando que mi web se esta quedando conmigo o algo jejeje

Etiquetas: html, imagenes, movida, require
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 13:43.