Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: newinl en 20 Mayo 2007, 01:35 am



Título: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: newinl en 20 Mayo 2007, 01:35 am
Saludos a todos.
La cuestion es la siguiente. Tengo una galeria (coppermine) en un host gretuito. tiene de todo, base de datos, php, cgi etc. Menos control panel. No me hace tanta falta por ahora porque calculo que aun tengo espacio.
La cosa es que quiero saber si alguien sabe de un escript o algo que me deje ver la cantidad de espacio restante y utilizado, de menos pues el restante.
Oajalá y me puedan ayudar,
Esta sobre linux.
Buen gracias por adelantado


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: newinl en 21 Mayo 2007, 06:33 am
Algun panel que pueda instalar??????


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: SERBice en 30 Mayo 2007, 23:51 pm
Puedes usar una fncion que desarrolle el año pasado apra medir el espacio ocupado, en base al espacio ocupado simplemente s lo restas a la capacidad y obtienes el espacio libre.

La funcion esta aqui (http://foro.elhacker.net/index.php/topic,127340.msg662046.html#msg662046)


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: newinl en 13 Junio 2007, 22:46 pm
Saludos comapeon. muchas gracias por la respuesta bien intencionada, buscando ya había visto tu codigo, me parecio muy interesante.
Lo probe pero no me funciono.
Me marcaba un error:
Citar
Fatal error: Cannot redeclare scandir() in /users/1gb.at/f/fa/famliax/spacefree.php on line 13
Lo intente probar en varios servers pero en los demás me salia en blanco la pagina.
Debo aclarar que son hostings gratuitos.
Si soportan php verision 5
De todas formas gracias


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: SERBice en 14 Junio 2007, 06:44 am
el tema es asi, si el servidor soporta php 4 o anteriores necesitas poner este codigo adicional

Código:
<?php 
Function scandir ($dir)
{
$dir = opendir($dir);
$resultado=Array();
$i=-1;
while ($file = readdir($dir)) {
    $i++;
    $resultado[$i]=$file;
}
closedir($dir);
return $resultado;
}
?>

pero, si el servidor sooprta php 5 ese codigo no va, ese es el error que te da.

por lo de la pagina en blanco, te da en blanco l pagina porque no estas llamando a la funcion.

Usando la funcion MeDir (debes respetar mayusculas ya que php es case sensitive, osea, reconoce mayusculas y minusculas) podras obtener la cantidad de espacio utilizadod e tu host.


el codigo ed la funcion es:

Código:
<?php
/* <!--
/*############################################################################
#                                                                            #
#Nombre de la funcion: MeDir                                                 #
#Version de la funcion:  1.0.0.11                                             #  
#Fecha de la funcion (Creacion):  01/06/2006                                 #  
#Fecha de la funcion (revision 1.0.0.4):  19/08/2006                         #
#Fecha de la funcion (ultima revision):  16/09/2006                          #
#                                                                            #
#Autor: SERBice#
#                                                                            #
#Descripcion de la funcion: Recorre un directorio midiendo todos los         #
#                           archivos que contiene (incluso en sus            #
#                           subdirectorios, hasta el ultimo).                #
#                                                                            #
#Parametros de la funcion: El parametro $dir, establece el directorio sobre el#
#                          cual actuara la funcion, es decir, que establece  #
#                          el directorio del cual se obtendra informacion de #
#                          su tamaño.                                        #
#                          Si $dir no se establece se utilizara el directorio#
#                          donde se encuentra el archivo que llamo a la      #
#                          funcion                                              #  
#                          $subdirs es el parametro que establece si vamos   #
#                          o no a medir en subdirectorios o no. Si $subdirs  #
#                           no se establece su valor por defaul sera 1 y     #
#                           medira los subdirectorios                   #
#                                                                            #
#Este Software se distribuye bajo Licencia GPL, por lo cual se solicita que  #
#se utilice con fines no lucrativos, es decir, que sea de uso Personal y No  #
#Comercial. Que se conserven los derechos de autor y que cualquier           #
#modificacion le sea notifiacda al autor, para saber y estar al tanto de     #
#los avances del software en cuestion; y de esta manera enriquezer aun mas   #
#esta peque?a herramienta                                                    #
#                                                                            #
#Atentamente: SERBice(r)                                                     #
#                                                                            #
############################################################################*/
function MeDir($dir=".",$subdirs=1)
    {
        /* Creamos un array con todos los nombres de directorios y
        archivos contenidos dentro del directorio inicial */
        $arr = scandir($dir);

        /* establecemos que la variable $sizedir es igual a cero */
        $sizedir = 0;

        /* YA NO Recorremos el array saltando los directorios . y .. */
        for ($i=0; $i<count($arr); $i++)
            {
                /* Comprobamos que el archivo/directorio actual no sea "." ni ".." */
              if ($arr[$i]!="." && $arr[$i]!="..")
               {
                /* Si es un directorio hacer..... */
                if (is_dir($dir ."/". $arr[$i]))
                    {
                        /* Establecemos que la variable $sizedir es igual
                        a ella misma m?s el valor devuelto por MeDir */
                        if ($subdirs==1) $sizedir += MeDir($dir . "/" . $arr[$i]);
                    }
                /* Si es un archivo hacer ... */
                else
                    {
                        /* Establecemos que la variable $sizedir es igual
                        a ella misma m?s el tama?o del fichero $dir ."/". $arr[$i] */
                        $sizedir += filesize($dir ."/". $arr[$i]);
                    }
               }
            }
        /* Devolvemos el valor total de $sizedir */
        return $sizedir;
    }
?>

ahora bien, para llamar a la funcion, simplemente haces esto:

Código:
<?php
  echo MeDir(".",1);
?>

eso te imprimirá la cantidad de bytes que esta ocupando el directorio desde el cual uses ese codigo, si, ese codigo lo pones e el archivo midiendo.php supongamos, en la raiz de tu servidor medira el tamaño de todo lo que tngas dentro ed el, opr ende te dará el espacio ocupado y si queires saber el espacio libre has una simple cuenta: (espacio total)-(espacio ocupado devuelto por la funcion) = (espacio libre)

espero que te haya servidor de ayuda, si queres que te de una mano mas detallada cntactame por mail/msn


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: newinl en 14 Junio 2007, 21:11 pm
Vas a decir que que latoso soy pero pues parece que el erro lo estoy cometiendo en algo muy básico.
esta es al version del php PHP Version 5.2.2-dev la saque haciendo un phpinfo.php ya que como te dije no hay panel de control.
La cosa es que parece que me debería de funcionar pero ahora me surge la duda, si son dos los archivos que debo subir a mi directorio raíz?
porque dices
Código:
para llamar a la funcion, simplemente haces esto:
Código:
<?php
  echo MeDir(".",1);
?>
Pero antes me pones la función completa. Entonces son dos los php que debo subir uno con la función y otro para llamarla o como? Si me explicas por favor.
Dentro de las comillas que estan dentro del parentesis no debo poner nada o si? leí o me parecio entender que no porque de esa forma leera todos los directorios.
Bueno espero tu ayuda y gracias por el interes.


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: .Carlos en 14 Junio 2007, 23:01 pm
En un solo archivo metes la funcion(el primer codigo que puso SERBice) y al final de este pones el echo para llamar a la funcion, claro antes de cerrar el tag php.

Código:
<?php
/* <!--
/*############################################################################
#                                                                            #
#Nombre de la funcion: MeDir                                                 #
#Version de la funcion:  1.0.0.11                                             #  
#Fecha de la funcion (Creacion):  01/06/2006                                 #  
#Fecha de la funcion (revision 1.0.0.4):  19/08/2006                         #
#Fecha de la funcion (ultima revision):  16/09/2006                          #
#                                                                            #
#Autor: SERBice(r) ()#
#                                                                            #
#Descripcion de la funcion: Recorre un directorio midiendo todos los         #
#                           archivos que contiene (incluso en sus            #
#                           subdirectorios, hasta el ultimo).                #
#                                                                            #
#Parametros de la funcion: El parametro $dir, establece el directorio sobre el#
#                          cual actuara la funcion, es decir, que establece  #
#                          el directorio del cual se obtendra informacion de #
#                          su tamaño.                                        #
#                          Si $dir no se establece se utilizara el directorio#
#                          donde se encuentra el archivo que llamo a la      #
#                          funcion                                              #  
#                          $subdirs es el parametro que establece si vamos   #
#                          o no a medir en subdirectorios o no. Si $subdirs  #
#                           no se establece su valor por defaul sera 1 y     #
#                           medira los subdirectorios                   #
#                                                                            #
#Este Software se distribuye bajo Licencia GPL, por lo cual se solicita que  #
#se utilice con fines no lucrativos, es decir, que sea de uso Personal y No  #
#Comercial. Que se conserven los derechos de autor y que cualquier           #
#modificacion le sea notifiacda al autor, para saber y estar al tanto de     #
#los avances del software en cuestion; y de esta manera enriquezer aun mas   #
#esta peque?a herramienta                                                    #
#                                                                            #
#Atentamente: SERBice(r)                                                     #
#                                                                            #
############################################################################*/
function MeDir($dir=".",$subdirs=1)
    {
        /* Creamos un array con todos los nombres de directorios y
        archivos contenidos dentro del directorio inicial */
        $arr = scandir($dir);

        /* establecemos que la variable $sizedir es igual a cero */
        $sizedir = 0;

        /* YA NO Recorremos el array saltando los directorios . y .. */
        for ($i=0; $i<count($arr); $i++)
            {
                /* Comprobamos que el archivo/directorio actual no sea "." ni ".." */
              if ($arr[$i]!="." && $arr[$i]!="..")
               {
                /* Si es un directorio hacer..... */
                if (is_dir($dir ."/". $arr[$i]))
                    {
                        /* Establecemos que la variable $sizedir es igual
                        a ella misma m?s el valor devuelto por MeDir */
                        if ($subdirs==1) $sizedir += MeDir($dir . "/" . $arr[$i]);
                    }
                /* Si es un archivo hacer ... */
                else
                    {
                        /* Establecemos que la variable $sizedir es igual
                        a ella misma m?s el tama?o del fichero $dir ."/". $arr[$i] */
                        $sizedir += filesize($dir ."/". $arr[$i]);
                    }
               }
            }
        /* Devolvemos el valor total de $sizedir */
        return $sizedir;
    }

  echo MeDir(".",1);

?>

Este archivo lo metes en el directorio raiz para que te mida toda la web(cada archivo en cada directorio y subdirectorio).

MOD: Removida info personal


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: SERBice en 15 Junio 2007, 02:53 am
Vas a decir que que latoso soy pero pues parece que el erro lo estoy cometiendo en algo muy básico.
esta es al version del php PHP Version 5.2.2-dev la saque haciendo un phpinfo.php ya que como te dije no hay panel de control.
La cosa es que parece que me debería de funcionar pero ahora me surge la duda, si son dos los archivos que debo subir a mi directorio raíz?
porque dices
Código:
para llamar a la funcion, simplemente haces esto:
Código:
<?php
  echo MeDir(".",1);
?>
Pero antes me pones la función completa. Entonces son dos los php que debo subir uno con la función y otro para llamarla o como? Si me explicas por favor.
Dentro de las comillas que estan dentro del parentesis no debo poner nada o si? leí o me parecio entender que no porque de esa forma leera todos los directorios.
Bueno espero tu ayuda y gracias por el interes.

yo te puse: la funcion MeDir que y mismo diseñé, la funcion "scandir suplente", para que si no tienes php5 el script n te de error y te puse la frma de llamar a MeDir, no son 3 archivos, ni 2 archivos ni un archivo, son solo codigos, la forma de la cual tu elijas configurarlo, cmopilarlo, subirlo es decicion tuya, y no puedo influir en eso a menos que me pidas exactamente que te ayude a crear el archivo php. Yo solo te di las instrucciones apra utilizar la funcion.


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: newinl en 16 Junio 2007, 00:38 am
haber bajo el riesgo de empezar a ser irritante mi actuar les comento.
Lo que me dijeron
Código:
En un solo archivo metes la funcion(el primer codigo que puso SERBice) y al final de este pones el echo para llamar a la funcion, claro antes de cerrar el tag php.
Y eso hice, luego SErbice me dijo que no eran archivos sino codigos, entiendo que lo debía incorporar algun pagina php. Subi una pagina en donde hiba el codigo como me la dijo el carlo que se incorporban y el error es:
Código:
Warning: scandir() [function.scandir]: open_basedir restriction in effect. File(.) is not within the allowed path(s): (/users/1gb.at/f/fa/faxxxx/:/users/common) in /users/1gb.at/f/fa/faxxxx/space.php on line 43

Warning: scandir(.) [function.scandir]: failed to open dir: Operation not permitted in /users/1gb.at/f/fa/faxxxxx/space.php on line 43

Warning: scandir() [function.scandir]: (errno 1): Operation not permitted in /users/1gb.at/f/fa/faxxxx/space.php on line 43
19250285

Ahora, esto parece que me estan negando usar esas funciones en el server lo que entonces me lleva a pensar que no lo hice mal sino que solamente el servidor no me dejrá ejecutar la funcion.
Si estoy mal pues espero no molestar si pido que me digan en que estoy mal.


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: SERBice en 16 Junio 2007, 00:50 am
2 cosas, en primero, seria muchisimo mas facil si nos pasas el codigo que estas usando (ya se que es mi funcion, pero hay que ver el entorno en el cual la llamas y la forma de la cual la llamas). y en segundo te puedo decir que intentes con esta version modificada:

Código:
<?php 
Function scandir2 ($dir)
{
$dir = opendir($dir);
$resultado=Array();
$i=-1;
while ($file = readdir($dir)) {
    $i++;
    $resultado[$i]=$file;
}
closedir($dir);
return $resultado;
}

/* <!--
/*############################################################################
#                                                                            #
#Nombre de la funcion: MeDir                                                 #
#Version de la funcion:  1.0.0.11                                             #  
#Fecha de la funcion (Creacion):  01/06/2006                                 #  
#Fecha de la funcion (revision 1.0.0.4):  19/08/2006                         #
#Fecha de la funcion (ultima revision):  16/09/2006                          #
#                                                                            #
#Autor: SERBice#
#                                                                            #
#Descripcion de la funcion: Recorre un directorio midiendo todos los         #
#                           archivos que contiene (incluso en sus            #
#                           subdirectorios, hasta el ultimo).                #
#                                                                            #
#Parametros de la funcion: El parametro $dir, establece el directorio sobre el#
#                          cual actuara la funcion, es decir, que establece  #
#                          el directorio del cual se obtendra informacion de #
#                          su tamaño.                                        #
#                          Si $dir no se establece se utilizara el directorio#
#                          donde se encuentra el archivo que llamo a la      #
#                          funcion                                              #  
#                          $subdirs es el parametro que establece si vamos   #
#                          o no a medir en subdirectorios o no. Si $subdirs  #
#                           no se establece su valor por defaul sera 1 y     #
#                           medira los subdirectorios                   #
#                                                                            #
#Este Software se distribuye bajo Licencia GPL, por lo cual se solicita que  #
#se utilice con fines no lucrativos, es decir, que sea de uso Personal y No  #
#Comercial. Que se conserven los derechos de autor y que cualquier           #
#modificacion le sea notifiacda al autor, para saber y estar al tanto de     #
#los avances del software en cuestion; y de esta manera enriquezer aun mas   #
#esta peque?a herramienta                                                    #
#                                                                            #
#Atentamente: SERBice(r)                                                     #
#                                                                            #
############################################################################*/
function MeDir($dir=".",$subdirs=1)
    {
        /* Creamos un array con todos los nombres de directorios y
        archivos contenidos dentro del directorio inicial */
        $arr = scandir2($dir);

        /* establecemos que la variable $sizedir es igual a cero */
        $sizedir = 0;

        /* YA NO Recorremos el array saltando los directorios . y .. */
        for ($i=0; $i<count($arr); $i++)
            {
                /* Comprobamos que el archivo/directorio actual no sea "." ni ".." */
              if ($arr[$i]!="." && $arr[$i]!="..")
               {
                /* Si es un directorio hacer..... */
                if (is_dir($dir ."/". $arr[$i]))
                    {
                        /* Establecemos que la variable $sizedir es igual
                        a ella misma m?s el valor devuelto por MeDir */
                        if ($subdirs==1) $sizedir += MeDir($dir . "/" . $arr[$i]);
                    }
                /* Si es un archivo hacer ... */
                else
                    {
                        /* Establecemos que la variable $sizedir es igual
                        a ella misma m?s el tama?o del fichero $dir ."/". $arr[$i] */
                        $sizedir += filesize($dir ."/". $arr[$i]);
                    }
               }
            }
        /* Devolvemos el valor total de $sizedir */
        return $sizedir;
    }

  echo MeDir(".",1);

?>

si aun asi sigues teniendo problemas, simplemente dinos en que servidor estas (en caso de ser gratuito) y pasanos el codigo para ver si hay algun problema en el; aunque or lo visto es ua restriccion del servidor a la funcion scandir o al directorio en cuestion; haz la prueba cno la funcion modificada que te di (son 2 funcioens en realidad), si te da error de nvo, intenta medir una subcarpeta especificando en lugar de "." poniendo "./nombre_directorio" como primer parametro de MeDir al llamarla.

Si encesitas algo mas solo hazlo saber, aqui estamos.

Y por favor
Citar
bajo el riesgo de empezar a ser irritante mi actuar
trata ed no irritarte, solo estamos dandote ua mano amigable, si las cosas no salen como esperas ten paciencia, hay muchos factores que peuden estar alterando el resultado esperado. Yo la funcion l he diseñado y probado con exito en muchos servidores, quizas tu problema sea el servidor,quien sabe.... hay que esperar a que hagas las pruebas que te dije y si no funciona es el servidor.

PD: El chivo: yo vendo host bueno!


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: newinl en 16 Junio 2007, 16:51 pm
Pues nuevamente me mando lo mismo errores pero ahora refiriendose a la carpeta especifica que puse.
Bueno agradezco la ayuda parece que el problema es o mas bien la limitación es del server.
Estes es por si te interesa averiguar más sobre él. Te darás cuenta que no tiene control pane. Dice que maneja estadisticas pero pues yo no le veo por donde además de que no tendría problemas de instalar un webanalyzer, pero eso no me interesa por ahora.
Código:
freepage.ro
Asi te advierto que está en rumano.


Título: Re: Como saber la cantidad de espacio de mi cuenta en host gratuito.
Publicado por: SERBice en 22 Junio 2007, 23:18 pm
en lugar de llamarla asi:

Código:
<?php
echo MeDir(".",1);
?>

intenta llamandola asi:

Código:
<?php
echo MeDir(dirname(__FILE__),1);
?>

y a ver si asi te funciona.

NOTA: al llamarla con "MeDir(dirname(__FILE__),1);" le estas indicando el directorio con su ruta completa y no con su ruta relativa, quizas asi funcione. Si aun asi te da error de acceso es problema de la politica de seguridad del servidor. Te recomendaria probar en MI@ o algun otro servidor que permita la ejecucion de este script y el cual (el servidor) conozcamos para poder ayudarte.