Foros del Web » Programando para Internet » PHP »

Pagina Index de Php

Estas en el tema de Pagina Index de Php en el foro de PHP en Foros del Web. Hola a todos, tengo la siguiente consulta: cuando uno ingresa a una url y la pagina index no existe, php automáticamente nos crea una pagina ...
  #1 (permalink)  
Antiguo 04/06/2012, 09:13
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Pagina Index de Php

Hola a todos, tengo la siguiente consulta:
cuando uno ingresa a una url y la pagina index no existe, php automáticamente nos crea una pagina donde nos muestra el contenido del directorio, en esta pagina que crea php puedo navergar viendo los archivos o los subdirectorios y su contenido, mi consulta es como puedo crear una pagina que trabaje de la misma menara que el index que me crea php, por que he buscado en google y aparece el OpenDir() lo he probado y efectivamente me muestra el contenido de la carpeta que le indico pero no trabaja igual al index creado por php, lo que quiero es poder explorar una carpeta e ir abriendo los archivos que contiene o si tiene algún subdirectorio poder explorarlo y abrir los archivos y subdirectorio que este tenga, espero haberme explicado bien en lo que quiero.
Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 04/06/2012, 09:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Pagina Index de Php

De hecho la página que lista los archivos no es generada con php, eso lo hace Apache automáticamente si la opción Indexes está habilitada.

Evidentemente la función opendir() funciona para ir listando los archivos de cierta carpeta, pero no esperes a que haga toda la magia como imaginabas.

Debes implementar tu propio mecanismo de listado usando dicho conjunto de funciones y sobre todo tu ingenio, has uso de la lógica y no dudes en consultar las FAQ's, Wiki y manual de PHP en caso de que te atores.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/06/2012, 10:03
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Pagina Index de Php

prueba poniendo esto en tu htaccess


Options All +Indexes


saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #4 (permalink)  
Antiguo 05/06/2012, 09:21
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Pregunta Respuesta: Pagina Index de Php

hola a todos nuevamente y gracias por las respuesta, como dice el amigo pateketrueke comence a crear mi propio codigo, pero tengo algunos problemas para seguir avanzando, no se como saber si el contenido de mi carpeta es un subdirectorio o un archivo, con el codigo que puse segun lo que busuqe en Internet se supone que solo me debe mostrar los subdirectorios, pero no se por que no funciona, me sigue mostrando los archivos que existen en la carpeta, me pueden ayudar con esto por favor, ¿ como diferenciar los subdirectorios de los archivos?

Desde ya Gracias!!

Código PHP:
<?php
$path 
"CARPETA";
if (
is_dir($path)) {     
        
$dir opendir($path);
        while ($
$elemento readdir($dir))
    { 
     if (!
is_dir($path.$elemento) && $elemento!="." && $elemento!="..")
               { 
                   echo 
"<br>$elemento"
               } 
    }
closedir($dir); 
}
?>
  #5 (permalink)  
Antiguo 05/06/2012, 09:28
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Pagina Index de Php

Código PHP:
Ver original
  1. while ($$elemento = readdir($dir))


veo que ahi usas el $$, quiero saber si es error de dedo o es intencional

saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #6 (permalink)  
Antiguo 05/06/2012, 14:44
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Pagina Index de Php

Cita:
Iniciado por p414 Ver Mensaje
Código PHP:
Ver original
  1. while ($$elemento = readdir($dir))


veo que ahi usas el $$, quiero saber si es error de dedo o es intencional

saludos

ops!!! como tu dices p414 fue error de dedo
  #7 (permalink)  
Antiguo 05/06/2012, 14:47
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Pagina Index de Php

y funciona?????
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #8 (permalink)  
Antiguo 05/06/2012, 15:46
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Pagina Index de Php

no maestro, es que el error de escritura fue al pasar el code acá al foro, pero en mi computador esta bien escrito.
  #9 (permalink)  
Antiguo 05/06/2012, 15:47
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Pagina Index de Php

muchas gracias por lo de maestro... eheheheheheh y ya probaste con el htaccess????
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #10 (permalink)  
Antiguo 05/06/2012, 16:01
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Pagina Index de Php


si ya probé con el htaccess, pero lo que consigo al modificar ese archivo es personalizar el index que me crea apache y lo que yo quiero es hacer yo una pagina que haga lo mismo que hace ese index, pero no puedo
  #11 (permalink)  
Antiguo 05/06/2012, 16:19
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Pagina Index de Php

ahhhh ya comprendo... pues aquí hay algo sobre eso
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #12 (permalink)  
Antiguo 05/06/2012, 17:07
 
Fecha de Ingreso: junio-2012
Mensajes: 5
Antigüedad: 11 años, 10 meses
Puntos: 1
Sonrisa Respuesta: Pagina Index de Php

ummmm quieres algo así
Código:
<?
$host=$_SERVER['HTTP_HOST'];
/*
Directory Listing Script - Version 2
====================================
Script Author: Ash Young <[email protected]>. www.evoluted.net
Layout: Manny <[email protected]>. www.tenka.co.uk
*/
$startdir = '.';
$showthumbnails = false; 
$showdirs = true;
$forcedownloads = false;
$hide = array(
				'dlf',
				'public_html',				
				'index.php',
				'Thumbs',
				'.htaccess',
				'.htpasswd'
			);
$displayindex = false;
$allowuploads = false;
$overwrite = false;

$indexfiles = array (
				'index.html',
				'index.htm',
				'default.htm',
				'default.html'
			);
			
$filetypes = array (
				'png' => 'jpg.gif',
				'jpeg' => 'jpg.gif',
				'bmp' => 'jpg.gif',
				'jpg' => 'jpg.gif', 
				'gif' => 'gif.gif',
				'zip' => 'archive.png',
				'rar' => 'archive.png',
				'exe' => 'exe.gif',
				'setup' => 'setup.gif',
				'txt' => 'text.png',
				'htm' => 'html.gif',
				'html' => 'html.gif',
				'php' => 'php.gif',				
				'fla' => 'fla.gif',
				'swf' => 'swf.gif',
				'xls' => 'xls.gif',
				'doc' => 'doc.gif',
				'sig' => 'sig.gif',
				'fh10' => 'fh10.gif',
				'pdf' => 'pdf.gif',
				'psd' => 'psd.gif',
				'rm' => 'real.gif',
				'mpg' => 'video.gif',
				'mpeg' => 'video.gif',
				'mov' => 'video2.gif',
				'avi' => 'video.gif',
				'eps' => 'eps.gif',
				'gz' => 'archive.png',
				'asc' => 'sig.gif',
			);
			
error_reporting(0);
if(!function_exists('imagecreatetruecolor')) $showthumbnails = false;
$leadon = $startdir;
if($leadon=='.') $leadon = '';
if((substr($leadon, -1, 1)!='/') && $leadon!='') $leadon = $leadon . '/';
$startdir = $leadon;

if($_GET['dir']) {
	//check this is okay.
	
	if(substr($_GET['dir'], -1, 1)!='/') {
		$_GET['dir'] = $_GET['dir'] . '/';
	}
	
	$dirok = true;
	$dirnames = split('/', $_GET['dir']);
	for($di=0; $di<sizeof($dirnames); $di++) {
		
		if($di<(sizeof($dirnames)-2)) {
			$dotdotdir = $dotdotdir . $dirnames[$di] . '/';
		}
		
		if($dirnames[$di] == '..') {
			$dirok = false;
		}
	}
	
	if(substr($_GET['dir'], 0, 1)=='/') {
		$dirok = false;
	}
	
	if($dirok) {
		 $leadon = $leadon . $_GET['dir'];
	}
}



$opendir = $leadon;
if(!$leadon) $opendir = '.';
if(!file_exists($opendir)) {
	$opendir = '.';
	$leadon = $startdir;
}

clearstatcache();
if ($handle = opendir($opendir)) {
	while (false !== ($file = readdir($handle))) { 
		//first see if this file is required in the listing
		if ($file == "." || $file == "..")  continue;
		$discard = false;
		for($hi=0;$hi<sizeof($hide);$hi++) {
			if(strpos($file, $hide[$hi])!==false) {
				$discard = true;
			}
		}
		
		if($discard) continue;
		if (@filetype($leadon.$file) == "dir") {
			if(!$showdirs) continue;
		
			$n++;
			if($_GET['sort']=="date") {
				$key = @filemtime($leadon.$file) . ".$n";
			}
			else {
				$key = $n;
			}
			$dirs[$key] = $file . "/";
		}
		else {
			$n++;
			if($_GET['sort']=="date") {
				$key = @filemtime($leadon.$file) . ".$n";
			}
			elseif($_GET['sort']=="size") {
				$key = @filesize($leadon.$file) . ".$n";
			}
			else {
				$key = $n;
			}
			$files[$key] = $file;
			
			if($displayindex) {
				if(in_array(strtolower($file), $indexfiles)) {
					header("Location: $file");
					die();
				}
			}
		}
	}
	closedir($handle); 
}

//sort our files
if($_GET['sort']=="date") {
	@ksort($dirs, SORT_NUMERIC);
	@ksort($files, SORT_NUMERIC);
}
elseif($_GET['sort']=="size") {
	@natcasesort($dirs); 
	@ksort($files, SORT_NUMERIC);
}
else {
	@natcasesort($dirs); 
	@natcasesort($files);
}

//order correctly
if($_GET['order']=="desc" && $_GET['sort']!="size") {$dirs = @array_reverse($dirs);}
if($_GET['order']=="desc") {$files = @array_reverse($files);}
$dirs = @array_values($dirs); $files = @array_values($files);


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Welcome to <? print $host; ?></title>
<link rel="stylesheet" type="text/css" href="http://www.000webhost.com/images/index/styles.css" />
</head>
<body>
<div id="container">
  <h1>Your  website is up and running!</h1>
  <div id="breadcrumbs">
    <p>Website <strong><? print $host; ?></strong> has been successfully installed on
      server.<br />
      Please delete file &quot;<strong>default.php</strong>&quot; from <strong>public_html</strong> folder and upload your website by using FTP or web based File Manager.<br />
      <br />
      - Your account information can be found on <a href="http://members.000webhost.com/"><u>http://members.000webhost.com/</u></a><br />
      - If you need help, please check our <a href="http://www.000webhost.com/forum/" target="_blank"><u>forums</u></a> and and <a href="http://www.000webhost.com/faq.php"><u>FAQ List</u></a> or submit a ticket.<br />    
      - Please review our <a href="http://www.000webhost.com/includes/tos.php" target="_blank"><u>Terms Of Service</u></a> to see what is not allowed to upload.<br />
    </p>
    <p><span class="style3">If you  are going to violate our <a href="http://www.000webhost.com/includes/tos.php" target="_blank"><u>TOS</u></a>, please read this text until it's not too late!<br /> 
      Do not waste your time with 000webhost.com, if you are going to upload any illegal website here! All websites are manually reviewed by humans, so if we will notice anything illegal, your account will be terminated. So don't waste your time in promoting your scams, hacking websites, or anything else malicious - your account will be terminated in 5 minutes after we will receive first abuse report or anything abusive will be detected by our staff. We also report <strong>all</strong> illegal activities to  local and international authorities.</span>
	</p>      
  	<p>Below you can see your current files in <strong>public_html</strong> folder.</p>
  </div>
  <div id="listingcontainer">
    <div id="listingheader"> 
	<div id="headerfile">File</div>
	<div id="headersize">Size</div>
	<div id="headermodified">Last Modified</div>
	</div>
    <div id="listing">
	<?
	$class = 'b';
	if($dirok) {
	?>
	<div><a href="<?=$dotdotdir;?>" class="<?=$class;?>"><img src="http://www.000webhost.com/images/index/dirup.png" alt="Folder" /><strong>..</strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($dotdotdir));?></a></div>
	<?
		if($class=='b') $class='w';
		else $class = 'b';
	}
	$arsize = sizeof($dirs);
	for($i=0;$i<$arsize;$i++) {
	?>
	<div><a href="<?=$leadon.$dirs[$i];?>" class="<?=$class;?>"><img src="http://www.000webhost.com/images/index/folder.png" alt="<?=$dirs[$i];?>" /><strong><?=$dirs[$i];?></strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$dirs[$i]));?></a></div>
	<?
		if($class=='b') $class='w';
		else $class = 'b';	
	}
	
	$arsize = sizeof($files);
	for($i=0;$i<$arsize;$i++) {
		$icon = 'unknown.png';
		$ext = strtolower(substr($files[$i], strrpos($files[$i], '.')+1));
		$supportedimages = array('gif', 'png', 'jpeg', 'jpg');
		$thumb = '';
				
		if($filetypes[$ext]) {
			$icon = $filetypes[$ext];
		}
		
		$filename = $files[$i];
		if(strlen($filename)>43) {
			$filename = substr($files[$i], 0, 40) . '...';
		}
		
		$fileurl = $leadon . $files[$i];
	?>
	<div><a href="<?=$fileurl;?>" class="<?=$class;?>"<?=$thumb2;?>><img src="http://www.000webhost.com/images/index/<?=$icon;?>" alt="<?=$files[$i];?>" /><strong><?=$filename;?></strong> <em><?=round(filesize($leadon.$files[$i])/1024);?>KB</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$files[$i]));?><?=$thumb;?></a></div>
	<?
		if($class=='b') $class='w';
		else $class = 'b';	
	}	
	?></div>
  </div>
</div>
<div id="copy">Free <a href="http://www.hosting24.com/">Web Hosting</a> by <a href="http://www.000webhost.com/">www.000webhost.com</a></div>
</body>
</html>
  #13 (permalink)  
Antiguo 06/06/2012, 10:53
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Pagina Index de Php

wow... ya le hiciste la tarea hahahahaha
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #14 (permalink)  
Antiguo 07/06/2012, 09:17
 
Fecha de Ingreso: junio-2008
Ubicación: Osorno
Mensajes: 155
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: Pagina Index de Php

muchas gracias a todos por su ayuda, bueno de tantas pude hacer mi pagina de explorador de archivos viendo los ejemplos que ustedes compartieron :), aquí dejo mi código por si le sirve a alguien, no esta muy pulcro pero al menos hace lo que quiero, seguramente alguien lo mejorara, también dejo el link de los iconos que utilice por si alguien los quiere descargar.

Código PHP:
<?php
$direc
=$_GET['path'];
listar_directorios_ruta($direc); 
function 
listar_directorios_ruta($ruta){ 
   if (
is_dir($ruta)) { 
      if (
$dh opendir($ruta)) { 
               if(
$ruta!='SCADA/')
                {
                  
$up substr($ruta0, (strrpos(dirname($ruta."/."),"/"))); 
                  echo 
"<br><a href='Frm_exp.php?path=$up/'><img src='img/iconos explorador/up.png' border='0'/></a><br>";    
                }
         while ((
$file readdir($dh)) !== false) { 
               if (
is_dir($ruta $file) && $file!="." && $file!=".."){ 
               echo 
"<br><img src='img/iconos explorador/carpeta.png'/><a href='Frm_exp.php?path=$ruta$file/'> $file</a>"
            }
            elseif(
$file!="." && $file!=".."
                {
                
$trozos explode("."$file); 
                
$extension end($trozos);     
                if( 
$extension=='png' || $extension=='gif' || $extension=='jpg' || $extension=='jpeg' || $extension=='tif')
                    {
                 echo 
"<br><img src='img/iconos explorador/image.png'/><a href='$ruta$file'> $file</a>";
                    }
                if( 
$extension=='xlsx' || $extension=='xlsm' || $extension=='xlsb' || $extension=='xls' || $extension=='xml' || $extension=='xltm' || $extension=='xlt' || $extension=='mht' || $extension=='mhtml' || $extension=='csv' || $extension=='prn')
                    {
                 echo 
"<br><img src='img/iconos explorador/excel.png'/><a href='$ruta$file'> $file</a>";
                    }
                if( 
$extension=='docx' || $extension=='docm' || $extension=='doc' || $extension=='dotx' || $extension=='dotm' || $extension=='dot' || $extension=='xlt' || $extension=='rtf')
                    {
                 echo 
"<br><img src='img/iconos explorador/word.png'/><a href='$ruta$file'> $file</a>";
                    }        
                if( 
$extension=='pdf')
                    {
                 echo 
"<br><img src='img/iconos explorador/pdf.png'/><a href='$ruta$file'> $file</a>";
                    }
                if( 
$extension=='txt')
                    {
                 echo 
"<br><img src='img/iconos explorador/txt.png'/><a href='$ruta$file'> $file</a>";
                    }        
                if( 
$extension=='htm' || $extension=='html')
                    {
                 echo 
"<br><img src='img/iconos explorador/html.png'/><a href='$ruta$file'> $file</a>";
                    }
                if( 
$extension=='rar' || $extension=='zip' || $extension=='tar')
                    {
                 echo 
"<br><img src='img/iconos explorador/comprimido.png'/><a href='$ruta$file'> $file</a>";
                    }                
                 }
         } 
      
closedir($dh); 
      } 
   }else 
      echo 
"<br>No es ruta valida"

?>

iconos:
https://rapidshare.com/files/3672258...explorador.rar

Gracias!!!!
  #15 (permalink)  
Antiguo 07/06/2012, 11:25
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Pagina Index de Php

gracias por compartirlo... saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!

Etiquetas: index
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 14:55.