Foros del Web » Programando para Internet » PHP »

Tengo un problema con el php

Estas en el tema de Tengo un problema con el php en el foro de PHP en Foros del Web. Tengo este codigo: Cita: <?php if (is_dir('images/fichas/'))//programacion a la defensiva { if ($dir = opendir('images/fichas/'))//abrimos la gestion del directorio { while (($archivo = readdir($dir)) != ...
  #1 (permalink)  
Antiguo 12/12/2010, 13:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 19
Antigüedad: 13 años, 4 meses
Puntos: 0
Tengo un problema con el php

Tengo este codigo:

Cita:
<?php
if (is_dir('images/fichas/'))//programacion a la defensiva
{
if ($dir = opendir('images/fichas/'))//abrimos la gestion del directorio
{
while (($archivo = readdir($dir)) != false)
{
if ($archivo != "." && $archivo != "..")//directorios que no queremos contar
{
$array[] = $archivo;//guardamos el nombre del directorio en una variable
}
}
closedir($dir);//cerramos la gestion del directorio
}
}


$cont = count($array);//contamos el nº de directorios

/*GENERAMOS LOS Nº ALEATORIOS, TODOS DIFERENTES UNOS DE OTROS- FLIPAD COMO HE SIMPLIFICADO EL PROCESO DEL AÑO PASADO A ESTE JAJA*/
$naleatorio = rand(1, $cont);

do
{
$naleatorio2 = rand(1, $cont);
}
while ($naleatorio2 == $naleatorio);

do
{
$naleatorio3 = rand(1, $cont);
}
while ($naleatorio3 == $naleatorio || $naleatorio3 == $naleatorio2);
do
{
$naleatorio4 = rand(1, $cont);
}
while ($naleatorio4 == $naleatorio || $naleatorio4 == $naleatorio2 || $naleatorio4 == $naleatorio3);
do
{
$naleatorio5 = rand(1, $cont);
}
while ($naleatorio5 == $naleatorio || $naleatorio5 == $naleatorio2 || $naleatorio5 == $naleatorio3 || $naleatorio5 == $naleatorio4);
do
{
$naleatorio6 = rand(1, $cont);
}
while ($naleatorio6 == $naleatorio || $naleatorio6 == $naleatorio2 || $naleatorio6 == $naleatorio3 || $naleatorio6 == $naleatorio4 || $naleatorio6 == $naleatorio5);

/*--------------------Y AKI LA GRANDEZA DE PHP-------------------*/
$foto1= $array[$naleatorio-1];//-1 PORQ HAY QUE CONTEMPLAR LA POSICION 0.
$link1= '<div class="contenedorfoto"><a href="http://www.cuadrillasdetudela.com/hh948/fichas/' . $foto1 . '.php"><img title=" '. $foto1. '" src="http://www.cuadrillasdetudela.com/hh948/images/fichas/' . $foto1 . '/perfil.png" width="79" height="79"/><br></a></div>';

$foto2= $array[$naleatorio2-1];
$link2= '<div class="contenedorfoto"><a href="http://www.cuadrillasdetudela.com/hh948/fichas/' . $foto2 . '.php"><img title=" '. $foto2. '" src="http://www.cuadrillasdetudela.com/hh948/images/fichas/' . $foto2 . '/perfil.png" width="79" height="79"/><br></a></div>';

$foto3= $array[$naleatorio3-1];
$link3= '<div class="contenedorfoto"><a href="http://www.cuadrillasdetudela.com/hh948/fichas/' . $foto3 . '.php"><img title=" '. $foto3. '" src="http://www.cuadrillasdetudela.com/hh948/images/fichas/' . $foto3 . '/perfil.png" width="79" height="79"/><br></a></div>';

$foto4= $array[$naleatorio4-1];
$link4= '<div class="contenedorfoto"><a href="http://www.cuadrillasdetudela.com/hh948/fichas/' . $foto4 . '.php"><img title=" '. $foto4. '" src="http://www.cuadrillasdetudela.com/hh948/images/fichas/' . $foto4 . '/perfil.png" width="79" height="79"/><br></a></div>';

$foto5= $array[$naleatorio5-1];
$link5= '<div class="contenedorfoto"><a href="http://www.cuadrillasdetudela.com/hh948/fichas/' . $foto5 . '.php"><img title=" '. $foto5. '" src="http://www.cuadrillasdetudela.com/hh948/images/fichas/' . $foto5 . '/perfil.png" width="79" height="79"/><br></a></div>';

$foto6= $array[$naleatorio6-1];
$link6= '<div class="contenedorfoto"><a href="http://www.cuadrillasdetudela.com/hh948/fichas/' . $foto6 . '.php"><img title=" '. $foto6. '" src="http://www.cuadrillasdetudela.com/hh948/images/fichas/' . $foto6 . '/perfil.png" width="79" height="79"/><br></a></div>';

echo $link1;
echo $link2;
echo $link3;
echo $link4;
echo $link5;
echo $link6;

?>

http://www.cuadrillasdetudela.com/hh948/index.php

Ahi podeis ver, en el sidebar de la derecha van saliendo las fichas aleatoriamente, pero solo en los archivos que estan dentro del root (index, contacto, informacion, multimedia).

Si haces click a una ficha, entrara a ella, pero ahi el problema es que no carga el php porque no encuentra la ruta del dir.

El problema se que es este:

Cita:
if (is_dir('images/fichas/'))//programacion a la defensiva
{
if ($dir = opendir('images/fichas/'))//abrimos la gestion del directorio
{
Si pones las rutas de esta forma funciona:

Cita:
if (is_dir(../'images/fichas/'))//programacion a la defensiva
{
if ($dir = opendir('../images/fichas/'))//abrimos la gestion del directorio
{

Se como se haria en la practica, con un if y un else, el problema es que no se donde situarlo, porque si lo pongo de la manera que lo puse cargaba dos veces.

¿Alguien sabe como puedo arreglarlo?

Gracias por la ayuda.
  #2 (permalink)  
Antiguo 12/12/2010, 13:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Tengo un problema con el php

usa una ruta absoluta siempre!!

puedes valerte de la variable $_SERVER['DOCUMENT_ROOT']

así no importa donde te ubiques, siempre la ruta apuntará al mismo lugar...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/12/2010, 02:18
 
Fecha de Ingreso: diciembre-2010
Mensajes: 19
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Tengo un problema con el php

He puesto esto al inicio del php y ya me funciona:

$urlArray = explode('/', $_SERVER['PHP_SELF']);
if ($urlArray[2]=='fichas' || $urlArray[2]=='noticias')

Gracias por la ayuda ^^

Etiquetas: Ninguno
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 00:47.